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



MOR Wiki

Difference between revisions of "PyMOR"

(→‎References: update ref)
(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]].
  +
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.
 
* 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]
   
 
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:
* [http://sourceforge.net/projects/ngsolve/ ngsolve] (experimental)
 
 
* 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
 
 
* Development of '''pyMOR''' can be tracked on [https://github.com/pymor/pymor GitHub],
* Official website http://pymor.org
 
 
* Online [https://pymor.readthedocs.io documentation]
* Development of '''pyMOR''' can be tracked on [https://github.com/pymor/pymor github],
 
* 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 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

Links

Contact

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