Anonymous
×
Create a new article
Write your page title here:
We currently have 106 articles on MOR Wiki. Type your article name above or click on one of the titles below and start writing!



PyMOR: Difference between revisions

No edit summary
m remove link to list of abbrev
Line 6: Line 6:
[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]].
[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.
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 PDE solver packages but also offers Python-based discretizations for getting started easily.


== Features ==
== Features ==
Line 14: Line 14:
* 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 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 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.
* Balanced-based and interpolation-based reduction methods for first-order and second-order linear time-invariant systems.
* Model order reduction using artificial neural networks.
* Model order reduction using artificial neural networks.
Line 26: Line 26:
* Time-dependent parameters.
* 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 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]

Revision as of 12:22, 11 May 2023


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, Eigensystem Realization, parametric AAA.
  • 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:

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

Links

Contact

For assistance with, and contributions to pyMOR, the developers can be contacted via GitHub discussions.