Open test suite for CFD verification & validation.
1.1K
An open test suite for verification and validation (V&V) of computational fluid dynamics codes. 51 cases: 1D/2D/3D, laminar/turbulent, Newtonian/non-Newtonian, stationary/moving bodies.
cfd-vv-suite provides a standardized, reproducible, solver-agnostic toolkit for testing CFD solver accuracy. It works with any solver (OpenFOAM, SU2, Fluent, custom code) — the user provides simulation results as CSV and the CLI tool compares them against reference data, computes error norms, and generates reports.
# From PyPI (recommended — no clone needed, all cases included)
pip install cfdvv
# Or from source (for development)
git clone https://github.com/vvp-cfd/cfd-vv-suite.git
cd cfd-vv-suite
pip install -e tools/
# Docker images
docker pull vvpcfd/cfdvv # Docker Hub
docker pull ghcr.io/vvp-cfd/cfd-vv-suite # GitHub Container Registry
# List available cases
cfdvv list
cfdvv list -c validation
# Compare your results against reference
cfdvv compare poiseuille-2d \
--result my_results.csv --norm L2 --plot
# OpenFOAM: ready-to-run Poiseuille case (from cloned repo)
cd cases/verification/incompressible/poiseuille-2d/openfoam && ./Allrun
# Generate analytical solution on a given mesh
python cases/verification/incompressible/poiseuille-2d/scripts/generate_solution.py 10 20 my.csv
# See expected output format
cfdvv example-output poiseuille-2d
# Run all verification self-tests
cfdvv benchmark
# Generate HTML report
cfdvv report poiseuille-2d \
--result my_results.csv -o report.html
Full guide: vvp-cfd.github.io/cfd-vv-suite/
Verification cases include ready-to-run OpenFOAM setups. You need OpenFOAM 11+ installed.
pip install cfdvv # or pip install -e tools/ from the cloned repo
cd cases/verification/incompressible/poiseuille-2d/openfoam
./Allrun
Pull the pre-built image from either registry:
docker pull vvpcfd/cfdvv-openfoam # Docker Hub
docker pull ghcr.io/vvp-cfd/cfd-vv-suite-openfoam # GitHub Container Registry
docker run --rm -v $(pwd)/cases:/cases vvpcfd/cfdvv-openfoam
| Category | Subcategory | Examples |
|---|---|---|
| verification/incompressible | Steady, Unsteady, 3D | Poiseuille, Couette, Taylor-Green, Beltrami, MMS, Lid-Driven, Blasius, Convection |
| verification/compressible | — | Sod Shock Tube, Oblique Shock, Double Mach Reflection |
| verification/non-newtonian | — | Power-Law, Bingham |
| verification/moving-bodies | — | Taylor-Couette, Pitching Airfoil |
| validation/laminar | — | Cylinder Re=20,40,100, BFS Armaly |
| validation/turbulent | — | Flat Plate TBL, Channel DNS, NACA0012, RAE2822, BFS Driver, NASA Hump, Cylinder Re=3900 |
| validation/non-newtonian | — | Oldroyd-B 4:1 Contraction |
| validation/complex-geometry | — | Ahmed Body, FSI Turek-Hron, VIV Cylinder |
See vvp-cfd.github.io/cfd-vv-suite/ for the complete listing.
cfdvv importBeyond the 51 built-in cases, cfd-vv-suite connects to external V&V databases:
cfdvv import --list # 35 external cases from 6 sources
cfdvv import flatplate # auto-detects source, downloads data
cfdvv import flatplate -r my.csv --plot # import + compare in one step
| Source | Cases | Type | Access |
|---|---|---|---|
| NASA TMR | 8 | Experimental | Direct download |
| ERCOFTAC | 14 | Experimental | Metadata + URLs |
| JHTDB | 3 | DNS | Python API (giverny) |
| CFDBench | 5 | Analytical | Metadata |
| MASA | 2 | MMS | pip install + script |
| ExactPack | 3 | Exact solutions | pip install + script |
See vvp-cfd.github.io/cfd-vv-suite/ for details.
If you use cfd-vv-suite in your research, please cite it as:
@misc{cfdvvsuite2026,
author = {Puzikova, Valeria},
title = {cfd-vv-suite: Open Test Suite for CFD Verification and Validation},
year = {2026},
publisher = {GitHub},
doi = {10.5281/zenodo.21462233},
howpublished = {\\url{https://github.com/vvp-cfd/cfd-vv-suite}}
}
When using a specific test case, also cite the original reference listed in the case's case.yaml and README.md.
Content type
Image
Digest
sha256:7f23ecb08…
Size
70.7 MB
Last updated
17 days ago
docker pull vvpcfd/cfdvv