| Field | Type | Description |
|---|---|---|
id |
string | Unique case identifier (Latin, hyphens) |
name |
string | Human-readable name |
category |
string | verification or validation |
tags |
list[string] | Filterable tags |
physics |
dict | Physical model |
dimension |
string | 1D, 2D, 3D, axisymmetric |
reference |
dict | Reference data type and source |
quantities |
list[dict] | Quantities to compare |
mesh |
dict | Mesh requirements |
| Field | Type | Description |
|---|---|---|
subcategory |
string | Subcategory |
parameters |
list[dict] | Adjustable parameters |
tolerances |
dict | Thresholds for pass/fail |
notes |
string | Additional remarks |
physics:
type: incompressible # incompressible | compressible
regime: laminar # laminar | turbulent | transitional
convective: true # whether convective terms are present
equations: # list of governing equations
- continuity
- navier-stokes
mesh:
type: "uniform quadrilateral" # mesh type
recommended: [32, 32] # minimum recommended resolution [nx, ny, ...]
convergence_study: [[16,16],[32,32],[64,64],[128,128]] # mesh levels for GCI
wall_refinement: false # whether wall refinement is required
notes: "Uniform mesh in both directions"
reference:
type: analytical # analytical | numerical | experimental | dns | les | mms
# analytical = exact/closed-form; numerical = benchmark
# numerical solution (e.g. Ghia et al., Alves et al.)
solution: "u(y) = ..." # formula or description
source: "Author, Journal" # bibliographic reference
doi: "https://doi.org/10.xxxx/yyyy" # DOI/URL (optional but recommended)
quantities:
- name: u # field name
type: profile # profile | field | scalar
location: "outlet" # measurement location
norm: L2 # comparison norm (L1, L2, Linf, Relative_L2)
Machine-readable list of solver capabilities required to run the case in its recommended setup. If the block is absent, no special capabilities are required beyond the standard incompressible/compressible Navier-Stokes system.
solver_requirements:
periodic: [x, z] # periodic BCs in these directions (x | y | z)
moving_walls: true # walls/lids with non-zero prescribed velocity
moving_body: true # prescribed rigid-body motion (pitching, VIV, rotating mesh)
deformable_body: true # deforming body / FSI (moving mesh or immersed boundary)
momentum_source: true # volumetric momentum source / imposed pressure gradient
energy_equation: true # temperature (energy) transport equation
boussinesq: true # buoyancy via the Boussinesq approximation
axisymmetric: true # axisymmetric formulation expected/beneficial
immersed_boundary: true # curved boundary on a Cartesian grid (IB / cut-cell)
ground_suction: true # moving-ground simulation with boundary-layer suction
All flags are booleans and default to false; only include the keys that apply.
cfdvv info <case> prints the declared requirements.
parameters:
- name: Re
description: "Reynolds number"
default: 100
range: [1, 1000]
tolerances:
L2: 1e-6
Linf: 1e-5
Relative_L2: 0.01
See templates/case-template/case.yaml.