Synopsis
pyMOR is a BSD-licensed software library for building model order reduction applications in the Python programming language. 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 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).
- Greedy and POD algorithms for reduced space construction.
- Empirical-Interpolation-Greedy and DEIM algorithms for generation of interpolation data for empirical operator interpolation.
- A Gram-Schmidt algorithm algorithm supporting re-orthogonalization for improved numerical accuracy.
- Time-stepping and Newton algorithms, as well as generic iterative linear solvers.
All these algorithms are formulated in terms of abstract interfaces for seamless integration with external high-dimensional PDE solvers. Throughout pyMOR, parameter dependence is handled by a simple and flexible parameter type inheritance mechanism.
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". arXiv Preprint: cs.MS, 2015.
Links
- Official website http://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