cfd-vv-suite

case.yaml Format Specification

Required Fields

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

Optional Fields

Field Type Description
subcategory string Subcategory
parameters list[dict] Adjustable parameters
tolerances dict Thresholds for pass/fail
notes string Additional remarks

physics

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

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

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

quantities:
  - name: u                     # field name
    type: profile               # profile | field | scalar
    location: "outlet"          # measurement location
    norm: L2                    # comparison norm (L1, L2, Linf, Relative_L2)

solver_requirements (optional)

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

parameters:
  - name: Re
    description: "Reynolds number"
    default: 100
    range: [1, 1000]

tolerances

tolerances:
  L2: 1e-6
  Linf: 1e-5
  Relative_L2: 0.01

Full Example

See templates/case-template/case.yaml.