Skip to content
@Pressio

Pressio

enabling model reduction for (large-scale) dynamical systems

Pressio is an ecosystem for developing, applying and using projection-based model reduction (pROM) methods. A key goal is to mitigate the intrusive nature of pROMs for large-scale codes, and providing a framework to foster research of new ideas as well as incentivize broader adoption and usability. We have been developing this ecosystem from the ground up and currently it encompasses the following main entities:

  • core C++ library: includes several "modules" providing specific capabilities (e.g., on-node and distributed linear algebra kernels, nonlinear solvers and optimization, time integration) that can be used independently and in a self-contained fashion, but collectively constitute the stack foundation of the ROM capability. Regardless of your interest in ROMs, you might find useful some of the components of the library.

  • demoapps: a collection of 1D, 2D and 3D problems of varying complexity (from linear advection, to reaction-diffusion and compressible Euler). It is being developed to be self-contained supporting both C++ and Python interfaces, exact Jacobians and built-in support for samples meshes. You can just use it for doing “standard” simulations, or just use the Python meshing scripts, or leverage the sample mesh capability to study function approximations, or testing the ROM capabilities that pressio provides.

  • tools and workflows: comprises a set of algorithms for constructing and exploiting ROMs that rely on abstract base classes that encapsulate all the information needed to run a given algorithm. This provides the so-called "outer loop" capabilities for exploiting ROMs, e.g. in UQ.

  • tutorials: tutorials and demos showing how to use the pressio C++ library, and also end-to-end ROMs using pressio-demoapps (we are also working towards integrating the tools-and-workflows library into this).

Pinned

  1. pressio pressio Public

    core C++ library

    C++ 40 5

  2. pressio-demoapps pressio-demoapps Public

    Suite of 1D, 2D, 3D demo apps of varying complexity with built-in support for sample mesh and exact Jacobians

    C++ 6 3

  3. rom-tools-and-workflows rom-tools-and-workflows Public

    Python 1

  4. pressio-tutorials pressio-tutorials Public

    Tutorials for the C++ pressio library

    C++ 5 1

  5. SHAW SHAW Public

    Performance-portable C++ code for simulating elastic shear waves in an axisymmetric domain.

    C++ 12 1

  6. pressio4py pressio4py Public

    Python bindings to pressio

    C++ 10

Repositories

Showing 10 of 15 repositories