Pressio

Pressio is an open-source project aimed at alleviating the intrusive nature of projection-based reduced-order models (pROMs) for large-scale codes. The core of the Pressio project is a header-only C++ library that leverages generic programming to interface with shared or distributed memory applications using arbitrary data-types and diverse programming models. Pressio provides several functionalities and solvers for performing model reduction, such as Galerkin and least-squares Petrov–Galerkin projections.

The name comes from the Latin compressionem: pressing together, squeezing.

Features of the Pressio C++ library include:
  • Numerous model reduction routines, including Galerkin, least-squares, and windowed least-squares projections
  • Support for arbitrary datatypes via generic programming and custom operations
  • Built-in support to use Eigen, Kokkos, and Trilinos (with more in progress)
  • Several time integration schemes
The Pressio ecosystem also offers:
  • pressio4py: Python bindings enabling Pressio’s C++ library to be used in pure-Python applications.
  • pressio-tools: A library to compute large-scale SVD, QR, and sample meshes.
  • pressio-demoapps: A suite of 1d, 2d, and 3d demo applications for testing pROMs and hyper-reduction.