Dependency and toolchain matrix

Single-page summary of what this repository is tested against vs optional / site-specific stacks. Authoritative install steps: INSTALL.md. CMake switches: build_options.md.

Core build

Component

Reference / CI baseline

Notes

CMake

3.21+

Matches the top-level project requirement.

C++ standard

C++20

GCC

15.2.x (current Tohtori Open MPI module/preset)

Other compilers may work; match MPI/HeFFTe.

MPI

Open MPI 5.0.10 (Slurm / srun, PMI/PMIx); OPENMPI_ROOT when your prefix differs

Build and run with the same implementation (INSTALL.md). MPICH-only sites: build everything with that stack, not mixed with Open MPI.

HeFFTe

2.4.1 (CPU / CUDA / ROCm variants)

Separate install per backend; CMAKE_PREFIX_PATH (INSTALL.md §3). Optional FetchContent vendoring via CMake.

FFTW

Via HeFFTe / system

CPU spectral FFT path.

Catch2

Required when OpenPFC_BUILD_TESTS=ON

testing.md.

Optional / GPU

Component

When

Notes

CUDA

OpenPFC_ENABLE_CUDA

CUDA toolkit/driver enables CUDA kernel and finite-difference apps. CUDA spectral FFT targets additionally require a HeFFTe CUDA build (OpenPFC_ENABLE_CUDA_SPECTRAL=ON).

ROCm / HIP

OpenPFC_ENABLE_HIP

LUMI-G: INSTALL.LUMI.md.

HDF5

Profiling / some exports

e.g. OpenPFC_ENABLE_HDF5 where used (build_options.md).

GPU-aware MPI

Device FFT / large GPU jobs

Site-dependent; see INSTALL.LUMI.md, mpi_io_layout_checklist.md.

Documentation / QA tools

Tool

Role

clang-format

Pre-commit / CI formatting (styleguide.md).

REUSE

License header compliance (CI).

scripts/check_doc_links.py

Relative Markdown links in docs/, README.md, INSTALL.md, and related source pages.

scripts/check_examples_catalog.py

examples/CMakeLists.txt vs examples_catalog.md.

scripts/check_end_to_end_allen_cahn.py

Tutorial vs apps/allen_cahn/README.md example command.

scripts/check_doc_bash_syntax.py

bash -n on ```bash and ```sh fenced blocks under docs/.

Doxygen

Extract public C++ declarations and comments into XML.

Sphinx + MyST

Render the Markdown prose, navigation, cross-references, and final HTML site.

Breathe

Import Doxygen XML into the Sphinx API section.

Furo

Theme for the unified documentation site.

uv + docs/pyproject.toml

Reproducible Python documentation environment; see sphinx_preview.md.

scripts/build_docs.sh

Generate Doxygen XML and build or serve the unified Sphinx site.

scripts/build_handbook.sh

Optional Pandoc concatenation — handbook_build.md.

See also