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 and provide a framework to foster research of new ideas as well as incentivize broader adoption and usability. Developed from the ground up, it revolves around the following main libraries:

  • pressio-rom: a C++ library for constructing and solving reduced-order models (ROMs), with or without hyper-reduction. It also includes modular components for time integration and nonlinear solvers. Through the adoption of generic programming and well-defined interfaces, the library is agnostic to the underlying application and data types, enabling seamless integration with diverse numerical solvers and HPC environments.

  • pressio-ops: a lightweight C++ linear algebra library offering a unified interface to a variety of backend libraries—including Eigen, Kokkos, and Trilinos—enabling high-performance, portable computations across different architectures.

  • tools and workflows: a Python library comprising 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).

  • 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.

Pinned Loading

  1. pressio-rom Public

    core C++ library

    C++ 47 7

  2. pressio-ops Public

    traits, expression and linear algebra kernels

    C++ 1

  3. rom-tools-and-workflows Public

    Python 4

  4. pressio-demoapps Public

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

    C++ 9 2

  5. pressio-tutorials Public

    Tutorials for the C++ pressio library

    C++ 6

  6. SHAW Public

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

    C++ 13 2

Repositories

Showing 10 of 19 repositories
  • pressio-developer-guide Public

    Instructions for developing in the Pressio ecosystem

    0 0 0 0 Updated Apr 22, 2025
  • spack Public Forked from spack/spack

    A flexible package manager that supports multiple versions, configurations, platforms, and compilers.

    Python 0 2,419 0 0 Updated Apr 22, 2025
  • pressio-log Public

    Logging functionality for Pressio repositories

    C++ 0 0 1 0 Updated Apr 22, 2025
  • .github Public
    0 0 0 0 Updated Apr 17, 2025
  • pressio-rom Public

    core C++ library

    C++ 47 7 9 1 Updated Apr 17, 2025
  • pressio-ops Public

    traits, expression and linear algebra kernels

    C++ 1 0 3 1 Updated Apr 17, 2025
  • 0 0 0 0 Updated Apr 4, 2025
  • pressio-demoapps Public

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

    C++ 9 2 25 0 Updated Apr 3, 2025
  • pressio-tutorials Public

    Tutorials for the C++ pressio library

    C++ 6 0 12 0 Updated Apr 3, 2025
  • Dockerfile 0 0 1 0 Updated Apr 3, 2025

Top languages

Loading…

Most used topics

Loading…