(Improvements and update on pyMOR) |
|||
Line 23: | Line 23: | ||
* 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]. |
* 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]. |
||
* Eigenvalue/pole computation using the implicitly restarted Arnoldi method and the subspace accelerated dominant pole (SAMDP) algorithm. |
* Eigenvalue/pole computation using the implicitly restarted Arnoldi method and the subspace accelerated dominant pole (SAMDP) algorithm. |
||
− | * Modal truncation for |
+ | * Modal truncation for linear time-invariant systems. |
− | * |
+ | * Time-dependent parameters. |
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. |
||
Line 34: | Line 34: | ||
* [https://scikit-fem.readthedocs.io/ scikit-fem] (experimental) |
* [https://scikit-fem.readthedocs.io/ scikit-fem] (experimental) |
||
− | Pure Python implementations of discretizations using the [https://www.scipy.org NumPy/SciPy] scientific computing stack are implemented to provide an easy |
+ | 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. |
* Structured 1D and 2D grids, as well as an experimental Gmsh-based grid, implementing the same abstract grid interface. |
||
* [[: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] based iterative and direct solvers for sparse systems. |
||
− | * Algebraic multigrid solvers through pyAMG bindings. |
||
* [[:Wikipedia:Opengl|OpenGL]] and [http://matplotlib.org matplotlib] based visualizations of solutions. |
* [[:Wikipedia:Opengl|OpenGL]] and [http://matplotlib.org matplotlib] based visualizations of solutions. |
||
Revision as of 14:27, 21 July 2022
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.
- Model order reduction using artificial neural networks.
- Data-driven model order reduction with Dynamic Mode Decomposition
- 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.
- Eigenvalue/pole computation using the implicitly restarted Arnoldi method and the subspace accelerated dominant pole (SAMDP) algorithm.
- Modal truncation for linear time-invariant systems.
- Time-dependent parameters.
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:
- deal.II
- DUNE
- FEniCS
- NGSolve
- scikit-fem (experimental)
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.
- 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,
- Development of pyMOR can be tracked on GitHub,
- Online documentation.
Contact
For assistance with, and contributions to pyMOR, the developers can be contacted via GitHub discussions.