Python Bindings for Pressio

Advancing reduced order models (ROMs) for dynamical systems in science and engineering.

This is the documentation of the Python library, one component of the Pressio ecosystem.

Start with why

Model reduction is a broad and very active field. Many methods exist, but there is no such thing as "one method to rule them all". We believe that evaluating the quality of a reduced model requires accounting for several factors, e.g., the reduction in degrees of freedom, training cost, evaluation cost, robustness, simplicity, predictive accuracy, etc. There is no single metric to rely on; it is always a tradeoff.

We believe that there is a lot to explore in this field both in terms of new research directions as well as assessing robustness of current state-of-the-art methods. There is no better way than an agile Python framework to incentivize and foster work to impact this field. Working towards this goal, pressio4py is our open source contribution to research novel fundamental ideas on model reduction as well as test state-of-the-art methods on problems of arbitrary complexity and from arbitrary disciplines. Python is a great language to do so because it benefits from a large community of developers, a large choice of available packages, and has become the de-facto choice for machine learning. This makes it an ideal framework to explore and merge ideas from different fields.

Components

NameDescription/ContentLinksModule(s)
logger
(dis)enable pressio logging

Doc Page
pressio4py.logger
solvers_nonlinear
general info
Newton-Raphson
Gauss-Newton
Levenberg-Marquardt

Doc Page
Doc Page
Doc Page
Doc Page
pressio4py.solvers
ode
explicit steppers
implicit steppers
advancers

Doc Page
Doc Page
Doc Page
pressio4py.ode
rom
general info
decoder
Galerkin
LSPG: steady
LSPG: unsteady
WLS

Doc Page
Doc Page
Doc Page
Doc Page
Doc Page
Doc Page
pressio4py.rom

Note that we intentionally keep pressio4py limited in scope for now. We don't provide bindings for all the functionalities in the pressio C++ library but only for the model reduction ones and those strictly auxiliary.

Installation

To avoid potential issues with mixed versions, make sure the version of pytest you use is compatible with the pip command you use to install. The Python commands must be from the same distribution.

License and Citation

The full license is available here.

We are working on publishing this: you can find our arXiv preprint at: https://arxiv.org/abs/2003.07798

Questions?

Find us on Slack: https://pressioteam.slack.com or open an issue on github.