(→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. |
||
− | Its main focus lies on the application of reduced basis methods to parametrized partial differential equations. |
||
'''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] |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
− | |||
− | |||
⚫ | |||
− | |||
⚫ | |||
− | |||
* [[: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. |
||
⚫ | |||
− | |||
⚫ | |||
− | |||
* Algebraic multigrid solvers through pyAMG bindings. |
* Algebraic multigrid solvers through pyAMG bindings. |
||
⚫ | |||
− | |||
⚫ | |||
== 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 == |
||
⚫ | |||
− | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
− | |||
== 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 13: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