→References: update ref |
Updates |
||
| Line 3: | Line 3: | ||
== Synopsis == | == Synopsis == | ||
[ | [https://pymor.org pyMOR] is a [https://opensource.org/licenses/BSD-2-Clause BSD-licensed] software library for building model order reduction applications in the [[:Wikipedia:Python_(programming_language)|Python programming language]]. | ||
Implemented algorithms include reduced basis methods for parametric linear and non-linear problems, as well as system-theoretic methods such as balanced truncation and iterative rational Krylov algorithm. | |||
'''pyMOR''' is designed from the ground up for easy integration with external [[List_of_abbreviations#PDE|PDE]] solver packages but also offers Python-based discretizations for getting started easily. | '''pyMOR''' is designed from the ground up for easy integration with external [[List_of_abbreviations#PDE|PDE]] solver packages but also offers Python-based discretizations for getting started easily. | ||
== Features == | == Features == | ||
Currently the following model reduction algorithms are provided by '''pyMOR''': | Currently, the following model reduction algorithms are provided by '''pyMOR''': | ||
* A generic reduction routine for projection of arbitrary high-dimensional discretizations onto reduced spaces, preserving (possibly nested) affine decompositions of operators and functionals for efficient offline/online decomposition. | * A generic reduction routine for projection of arbitrary high-dimensional discretizations onto reduced spaces, preserving (possibly nested) affine decompositions of operators and functionals for efficient offline/online decomposition. | ||
* Efficient error estimation for linear affinely decomposed problems. | * Efficient error estimation for linear affinely decomposed problems. | ||
* Empirical interpolation of arbitrary operators (with efficient evaluation of projected interpolated operators if the operator supports restriction to selected degrees of freedom). | * Empirical interpolation of arbitrary operators (with efficient evaluation of projected interpolated operators if the operator supports restriction to selected degrees of freedom). | ||
* Parallel adaptive greedy and [[List_of_abbreviations#POD|POD]] algorithms for reduced space construction. | * Parallel adaptive greedy and [[List_of_abbreviations#POD|POD]] algorithms for reduced space construction. | ||
* Empirical-Interpolation-Greedy and [[List_of_abbreviations#DEIM|DEIM]] algorithms for generation of interpolation data for empirical operator interpolation. | * Empirical-Interpolation-Greedy and [[List_of_abbreviations#DEIM|DEIM]] algorithms for generation of interpolation data for empirical operator interpolation. | ||
* Balanced-based and interpolation-based reduction methods for first-order and second-order linear time-invariant systems. | |||
* | * [[:Wikipedia:Gram_schmidt|Gram-Schmidt algorithm]] supporting re-orthogonalization for improved numerical accuracy. | ||
* Time-stepping and Newton algorithms, as well as generic iterative linear solvers. | * Time-stepping and Newton algorithms, as well as generic iterative linear solvers. | ||
* Low-rank alternating direction implicit (LR ADI) method for large-scale Lyapunov equations and bindings for matric equations solvers in [http://slicot.org SLICOT] (via [https://github.com/python-control/Slycot slycot]) and [https://www.mpi-magdeburg.mpg.de/projects/mess Py-M.E.S.S]. | |||
All these algorithms are formulated in terms of abstract interfaces for seamless integration with external high-dimensional [[List_of_abbreviations#PDE|PDE]] solvers. | All these algorithms are formulated in terms of abstract interfaces for seamless integration with external high-dimensional [[List_of_abbreviations#PDE|PDE]] solvers. | ||
Bindings for the following PDE solver libraries are available: | Bindings for the following PDE solver libraries are available: | ||
* [http://www.dealii.org/ deal.II] | * [http://www.dealii.org/ deal.II] | ||
* [http://dune-project.org/ DUNE] | * [http://dune-project.org/ DUNE] | ||
* [http://fenicsproject.org/ FEniCS] | * [http://fenicsproject.org/ FEniCS] | ||
* [http://sourceforge.net/projects/ngsolve/ NGSolve] | |||
Pure Python implementations of discretizations using the [https://www.scipy.org NumPy/SciPy] scientific computing stack are implemented to provide an easy to use sandbox for experimentation with new model reduction approaches. '''pyMOR''' offers: | |||
* Structured 1D and 2D grids, as well as an experimental Gmsh-based grid, implementing the same abstract grid interface. | |||
Pure Python implementations of discretizations using the [ | |||
* Structured 1D | |||
* [[:Wikipedia:Finite_element|Finite element]] and [[:Wikipedia:Finite_volume|finite volume]] operators based on this interface. | * [[:Wikipedia:Finite_element|Finite element]] and [[:Wikipedia:Finite_volume|finite volume]] operators based on this interface. | ||
* SciPy/[http://crd-legacy.lbl.gov/~xiaoye/SuperLU SuperLU] based iterative and direct solvers for sparse systems. | |||
* SciPy/[http://crd-legacy.lbl.gov/~xiaoye/SuperLU SuperLU] | |||
* Algebraic multigrid solvers through pyAMG bindings. | * Algebraic multigrid solvers through pyAMG bindings. | ||
* [[:Wikipedia:Opengl|OpenGL]] and [http://matplotlib.org matplotlib] based visualizations of solutions. | |||
* [[:Wikipedia:Opengl|OpenGL]] | |||
== References == | == References == | ||
* M. Ohlberger, S. Rave, S. Schmidt, S. Zhang. "[http://dx.doi.org/10.1007/978-3-319-05591-6_69 A Model Reduction Framework for Efficient Simulation of Li-Ion Batteries]". Springer Proceedings in Mathematics & Statistics Vol. 78: Finite Volumes for Complex Applications VII-Elliptic, Parabolic and Hyperbolic Problems, Berlin, June 2014. | * M. Ohlberger, S. Rave, S. Schmidt, S. Zhang. "[http://dx.doi.org/10.1007/978-3-319-05591-6_69 A Model Reduction Framework for Efficient Simulation of Li-Ion Batteries]". Springer Proceedings in Mathematics & Statistics Vol. 78: Finite Volumes for Complex Applications VII-Elliptic, Parabolic and Hyperbolic Problems, Berlin, June 2014. | ||
* R. Milk, S. Rave, F. Schindler. "[https://doi.org/10.1137/15M1026614 pyMOR - Generic Algorithms and Interfaces for Model Order Reduction]". SIAM Journal on Scientific Computing 38(5): S194--S216, 2016. | * R. Milk, S. Rave, F. Schindler. "[https://doi.org/10.1137/15M1026614 pyMOR - Generic Algorithms and Interfaces for Model Order Reduction]". SIAM Journal on Scientific Computing 38(5): S194--S216, 2016. | ||
== Links == | == Links == | ||
* Official website https://pymor.org | |||
* Official website | * Development of '''pyMOR''' can be tracked on [https://github.com/pymor/pymor GitHub], | ||
* Development of '''pyMOR''' can be tracked on [https://github.com/pymor/pymor | * Online [https://pymor.readthedocs.io documentation] | ||
* Online [ | |||
== Contact == | == Contact == | ||
For assistance with, and contributions to '''pyMOR''', the developers can be contacted via [http://listserv.uni-muenster.de/mailman/listinfo/pymor-dev pymor-dev@listserv.uni-muenster.de] | For assistance with, and contributions to '''pyMOR''', the developers can be contacted via [http://listserv.uni-muenster.de/mailman/listinfo/pymor-dev pymor-dev@listserv.uni-muenster.de] | ||
Revision as of 11:04, 27 May 2019
Synopsis
pyMOR is a BSD-licensed software library for building model order reduction applications in the Python programming language. Implemented algorithms include reduced basis methods for parametric linear and non-linear problems, as well as system-theoretic methods such as balanced truncation and iterative rational Krylov algorithm. pyMOR is designed from the ground up for easy integration with external PDE solver packages but also offers Python-based discretizations for getting started easily.
Features
Currently, the following model reduction algorithms are provided by pyMOR:
- A generic reduction routine for projection of arbitrary high-dimensional discretizations onto reduced spaces, preserving (possibly nested) affine decompositions of operators and functionals for efficient offline/online decomposition.
- Efficient error estimation for linear affinely decomposed problems.
- Empirical interpolation of arbitrary operators (with efficient evaluation of projected interpolated operators if the operator supports restriction to selected degrees of freedom).
- Parallel adaptive greedy and POD algorithms for reduced space construction.
- Empirical-Interpolation-Greedy and DEIM algorithms for generation of interpolation data for empirical operator interpolation.
- Balanced-based and interpolation-based reduction methods for first-order and second-order linear time-invariant systems.
- Gram-Schmidt algorithm supporting re-orthogonalization for improved numerical accuracy.
- Time-stepping and Newton algorithms, as well as generic iterative linear solvers.
- Low-rank alternating direction implicit (LR ADI) method for large-scale Lyapunov equations and bindings for matric equations solvers in SLICOT (via slycot) and Py-M.E.S.S.
All these algorithms are formulated in terms of abstract interfaces for seamless integration with external high-dimensional PDE solvers. Bindings for the following PDE solver libraries are available:
Pure Python implementations of discretizations using the NumPy/SciPy scientific computing stack are implemented to provide an easy to use sandbox for experimentation with new model reduction approaches. pyMOR offers:
- Structured 1D and 2D grids, as well as an experimental Gmsh-based grid, implementing the same abstract grid interface.
- Finite element and finite volume operators based on this interface.
- SciPy/SuperLU based iterative and direct solvers for sparse systems.
- Algebraic multigrid solvers through pyAMG bindings.
- OpenGL and matplotlib based visualizations of solutions.
References
- M. Ohlberger, S. Rave, S. Schmidt, S. Zhang. "A Model Reduction Framework for Efficient Simulation of Li-Ion Batteries". Springer Proceedings in Mathematics & Statistics Vol. 78: Finite Volumes for Complex Applications VII-Elliptic, Parabolic and Hyperbolic Problems, Berlin, June 2014.
- R. Milk, S. Rave, F. Schindler. "pyMOR - Generic Algorithms and Interfaces for Model Order Reduction". SIAM Journal on Scientific Computing 38(5): S194--S216, 2016.
Links
- Official website https://pymor.org
- Development of pyMOR can be tracked on GitHub,
- Online documentation
Contact
For assistance with, and contributions to pyMOR, the developers can be contacted via pymor-dev@listserv.uni-muenster.de