This repository contains the companion code to the publication
Data-Driven Model Order Reduction with pyMOR (2026)
by
- Hendrik Kleikamp (https://orcid.org/0000-0003-1264-5941)
- Petar Mlinarić (https://orcid.org/0000-0002-9437-7698)
- Stephan Rave (https://orcid.org/0000-0003-0439-7212)
- Felix Schindler (https://orcid.org/0000-0003-1582-7118)
Compiling the LaTeX files in figures/ will take the current output/ data into account and generate PDF files. This repository already contains the reference PDFs generated for the publication.
Re-compiling the LaTeX files will re-generate similar PDFs. After getting started (and optionally running the code), run
source 01_activate_env.bash
bash 03_generate_figures_from_output.bashto re-generate new figures/ PDFs.
Running the Python scripts in code/ will generate the output/ data. This repository already contains the reference data generated for the publication.
Re-running the script will re-generate similar data, though timings and speedup may differ. After getting started, run
source 01_activate_env.bash
bash 02_generate_output_from_code.bashto re-generate new output/ data.
Note, that this requires a significant amount of time and memory!
We support two setups:
-
native execution runs the code on the machine as-is
-
dockerised execution runs the code inside a fixed docker environment
Both require this repository to be checked out:
git clone https://github.com/pymor/2026_paper_code.gitThis requires an x86_64 system with a Bash shell and curl (or wget).
With bash and curl present, execute:
cd 2026_paper_code
bash 00_setup.bashThis downloads Miniforge, installs it locally, creates the conda environment from the
lockfile, and verifies all imports. While this is enough to run the code,
you will also need latexmk, texlive-fonts-recommended, texlive-latex-extra,
texlive-luatex, texlive-pictures to generate the figures and tables
(these are package names to sudo apt-get install -y --no-install-recommends on Debian-based systems,
see also our Dockerfile).
We ship tests which execute the code on a simplified setup and compare the output against expected results. See tests/README.md for more information. Execute
cd 2026_paper_code
pytest -vEach time you open a new shell:
cd 2026_paper_code
source 01_activate_env.bashThis requires an x86_64 system with rootless Docker or rootless Podman installed and configured. See docker/README.md for more information.
With rootless docker or podman, execute
cd 2026_paper_code
docker compose -f docker/docker-compose.yml buildto build the image locally, or
cd 2026_paper_code
docker compose -f docker/docker-compose.yml pullto instead pull the latest image.
We ship tests which execute the code on a simplified setup and compare the output against expected results. See tests/README.md for more information. Execute
cd 2026_paper_code
docker compose -f docker/docker-compose.yml run --rm dev pytest -vPrepend all COMMANDs with:
docker compose -f docker/docker-compose.yml run --rm dev COMMANDThis will mount the projects directory inside the container, source the env and run COMMAND.
Sourcing the 01_activate_env.bash is thus not required in this execution mode.
Different parts of this repository are released under different licenses, appropriate to the type of content:
| Content | License | File |
|---|---|---|
| code/ — Python source code | BSD-2-Clause | code/LICENSE |
| output/ — computed numerical results | CC0-1.0 | output/LICENSE |
| figures/ — LaTeX figures, plots, tables | CC-BY-4.0 | figures/LICENSE |
Everything else — the repository infrastructure such as the top-level Bash
scripts (*.bash), the Docker setup (docker/), the GitHub Actions
workflows (.github/), the test suite (tests/) and the
configuration/lock files — is released under the MIT License; see the
top-level LICENSE.
The code/ license matches that of pyMOR,
on which this code builds. Some files under figures/ are third-party logos or
publisher-provided typesetting resources that are not covered by CC-BY-4.0;
see figures/LICENSE for details.