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

References: update ref
Mlinaric (talk | contribs)
Updates
Line 3: Line 3:
== Synopsis ==
== Synopsis ==


[http://pymor.org pyMOR] is a [[:Wikipedia:Bsd_license#2-clause_license_.28.22Simplified_BSD_License.22_or_.22FreeBSD_License.22.29|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]].
Its main focus lies on the application of reduced basis methods to parametrized partial differential equations.  
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.
* A [[:Wikipedia:Gram_schmidt|Gram-Schmidt algorithm]] algorithm supporting re-orthogonalization for improved numerical accuracy.
* [[: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]


* [http://sourceforge.net/projects/ngsolve/ ngsolve] (experimental)
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 [http://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.
 
* [[: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.
* 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.


== 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 http://pymor.org
* 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 github],
* Online [https://pymor.readthedocs.io documentation]
* Online [http://docs.pymor.org documentation]
 


== 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

Links

Contact

For assistance with, and contributions to pyMOR, the developers can be contacted via pymor-dev@listserv.uni-muenster.de