{
  "schema": "courant.site.verdicts/2",
  "source": "courant verify --json over certification/corpus; labels and splits from courant.ctest",
  "verdict_schema": "courant.verdict/2: each run's verdict as courant prints it, re-verified at this bake",
  "tool": {
    "name": "courant",
    "version": "0.5.0"
  },
  "card": {
    "accuracy": {
      "n": 31,
      "of": 31,
      "lo": 0.8897,
      "hi": 1.0
    },
    "far": {
      "n": 0,
      "of": 23,
      "lo": 0.0,
      "hi": 0.1431
    },
    "frr": {
      "n": 0,
      "of": 8,
      "lo": 0.0,
      "hi": 0.3244
    },
    "top2": {
      "n": 23,
      "of": 23,
      "lo": 0.8569,
      "hi": 1.0
    },
    "abstain": {
      "n": 0,
      "of": 31,
      "lo": 0.0,
      "hi": 0.1103
    }
  },
  "runs": [
    {
      "id": "buoyantPimpleFoam_hotRoom::healthy",
      "family": "buoyantPimpleFoam_hotRoom",
      "solver": "buoyantPimpleFoam",
      "fault": "healthy",
      "truth": "healthy",
      "relabelled": false,
      "verdict": "accept",
      "basis": "validity",
      "grade": "A",
      "rule": "VER-5.6",
      "split": "held_out",
      "correct": true,
      "expects": null,
      "top2": null,
      "causes": [
        "NUM.MISSING_ADJUSTABLE_DT",
        "NUM.CFL_VIOLATION"
      ],
      "reason": null,
      "reasons": 0
    },
    {
      "id": "buoyantPimpleFoam_hotRoom::cfl_blowup",
      "family": "buoyantPimpleFoam_hotRoom",
      "solver": "buoyantPimpleFoam",
      "fault": "cfl_blowup",
      "truth": "faulted",
      "relabelled": false,
      "verdict": "reject",
      "basis": "validity",
      "grade": "D",
      "rule": "VER-5.2",
      "split": "held_out",
      "correct": true,
      "expects": "NUM.CFL_VIOLATION",
      "top2": true,
      "causes": [
        "NUM.MISSING_ADJUSTABLE_DT",
        "NUM.CFL_VIOLATION"
      ],
      "reason": {
        "code": "run.crash",
        "summary": "The solver did not complete (fatal_signal)",
        "value": "SIGFPE",
        "threshold": null,
        "input": "buoyantPimpleFoam_hotRoom__cfl_blowup.log.gz"
      },
      "reasons": 6
    },
    {
      "id": "buoyantPimpleFoam_hotRoom::laminar_on_turbulent",
      "family": "buoyantPimpleFoam_hotRoom",
      "solver": "buoyantPimpleFoam",
      "fault": "laminar_on_turbulent",
      "truth": "faulted",
      "relabelled": false,
      "verdict": "reject",
      "basis": "validity",
      "grade": "A",
      "rule": "VER-5.4",
      "split": "held_out",
      "correct": true,
      "expects": "PHYS.LAMINAR_TURBULENT",
      "top2": true,
      "causes": [
        "PHYS.LAMINAR_TURBULENT",
        "NUM.MISSING_ADJUSTABLE_DT"
      ],
      "reason": {
        "code": "physics.laminar_unstable",
        "summary": "Laminar model with unstable residuals: laminar turbulence type, Courant number within its stability limit, and the solve never reached tolerance",
        "value": null,
        "threshold": null,
        "input": "thermophysicalProperties"
      },
      "reasons": 1
    },
    {
      "id": "icoFoam_cavity::healthy",
      "family": "icoFoam_cavity",
      "solver": "icoFoam",
      "fault": "healthy",
      "truth": "healthy",
      "relabelled": false,
      "verdict": "accept",
      "basis": "validity",
      "grade": "A",
      "rule": "VER-5.6",
      "split": "held_in",
      "correct": true,
      "expects": null,
      "top2": null,
      "causes": [],
      "reason": null,
      "reasons": 0
    },
    {
      "id": "icoFoam_cavity::bad_initial_field",
      "family": "icoFoam_cavity",
      "solver": "icoFoam",
      "fault": "bad_initial_field",
      "truth": "faulted",
      "relabelled": false,
      "verdict": "reject",
      "basis": "validity",
      "grade": "D",
      "rule": "VER-5.2",
      "split": "held_in",
      "correct": true,
      "expects": "NUM.BAD_INITIAL_FIELD",
      "top2": true,
      "causes": [
        "NUM.CFL_VIOLATION",
        "NUM.BAD_INITIAL_FIELD"
      ],
      "reason": {
        "code": "run.crash",
        "summary": "The solver did not complete (fatal_signal)",
        "value": "SIGFPE",
        "threshold": null,
        "input": "icoFoam_cavity__bad_initial_field.log.gz"
      },
      "reasons": 5
    },
    {
      "id": "icoFoam_cavity::cfl_blowup",
      "family": "icoFoam_cavity",
      "solver": "icoFoam",
      "fault": "cfl_blowup",
      "truth": "faulted",
      "relabelled": false,
      "verdict": "reject",
      "basis": "validity",
      "grade": "C",
      "rule": "VER-5.3",
      "split": "held_in",
      "correct": true,
      "expects": "NUM.CFL_VIOLATION",
      "top2": true,
      "causes": [
        "NUM.CFL_VIOLATION",
        "NUM.MISSING_ADJUSTABLE_DT"
      ],
      "reason": {
        "code": "cfl.max",
        "summary": "Courant number exceeds stability limit: max Co=9.66 at t=0.15 exceeds limit 1.0; still 8.92 over the final fifth of the run",
        "value": "9.66086",
        "threshold": "1.0",
        "input": "icoFoam_cavity__cfl_blowup.log.gz (t = 0.15)"
      },
      "reasons": 3
    },
    {
      "id": "icoFoam_cavity::extreme_aspect_ratio",
      "family": "icoFoam_cavity",
      "solver": "icoFoam",
      "fault": "extreme_aspect_ratio",
      "truth": "faulted",
      "relabelled": false,
      "verdict": "reject",
      "basis": "validity",
      "grade": "D",
      "rule": "VER-5.2",
      "split": "held_in",
      "correct": true,
      "expects": "MESH.ASPECT_RATIO",
      "top2": true,
      "causes": [
        "NUM.CFL_VIOLATION",
        "MESH.ASPECT_RATIO"
      ],
      "reason": {
        "code": "run.crash",
        "summary": "The solver did not complete (fatal_signal)",
        "value": "SIGFPE",
        "threshold": null,
        "input": "icoFoam_cavity__extreme_aspect_ratio.log.gz"
      },
      "reasons": 7
    },
    {
      "id": "icoFoam_cavity::high_skewness",
      "family": "icoFoam_cavity",
      "solver": "icoFoam",
      "fault": "high_skewness",
      "truth": "faulted",
      "relabelled": false,
      "verdict": "reject",
      "basis": "validity",
      "grade": "D",
      "rule": "VER-5.2",
      "split": "held_in",
      "correct": true,
      "expects": "MESH.SKEWNESS",
      "top2": true,
      "causes": [
        "NUM.CFL_VIOLATION",
        "MESH.SKEWNESS"
      ],
      "reason": {
        "code": "run.crash",
        "summary": "The solver did not complete (fatal_signal)",
        "value": "SIGFPE",
        "threshold": null,
        "input": "icoFoam_cavity__high_skewness.log.gz"
      },
      "reasons": 7
    },
    {
      "id": "icoFoam_cavity::missing_dict",
      "family": "icoFoam_cavity",
      "solver": "icoFoam",
      "fault": "missing_dict",
      "truth": "faulted",
      "relabelled": false,
      "verdict": "reject",
      "basis": "validity",
      "grade": "D",
      "rule": "VER-5.2",
      "split": "held_in",
      "correct": true,
      "expects": "ENV.MISSING_DICT",
      "top2": true,
      "causes": [
        "ENV.MISSING_DICT"
      ],
      "reason": {
        "code": "run.crash",
        "summary": "The solver did not complete (foam_fatal)",
        "value": "FOAM FATAL ERROR",
        "threshold": null,
        "input": "icoFoam_cavity__missing_dict.log.gz"
      },
      "reasons": 3
    },
    {
      "id": "icoFoam_cavity::transport_units",
      "family": "icoFoam_cavity",
      "solver": "icoFoam",
      "fault": "transport_units",
      "truth": "faulted",
      "relabelled": false,
      "verdict": "reject",
      "basis": "validity",
      "grade": "A",
      "rule": "VER-5.4",
      "split": "held_in",
      "correct": true,
      "expects": "PHYS.TRANSPORT_UNITS",
      "top2": true,
      "causes": [
        "PHYS.TRANSPORT_UNITS"
      ],
      "reason": {
        "code": "physics.nu",
        "summary": "Suspicious viscosity value: nu=1e-09 m^2/s is outside typical fluid range [1e-8, 1e-2]",
        "value": "1e-09",
        "threshold": null,
        "input": "thermophysicalProperties"
      },
      "reasons": 1
    },
    {
      "id": "interFoam_damBreak::cfl_blowup",
      "family": "interFoam_damBreak",
      "solver": "interFoam",
      "fault": "cfl_blowup",
      "truth": "healthy",
      "relabelled": true,
      "verdict": "accept",
      "basis": "validity",
      "grade": "A",
      "rule": "VER-5.6",
      "split": "held_in",
      "correct": true,
      "expects": null,
      "top2": null,
      "causes": [
        "NUM.CFL_VIOLATION",
        "PHYS.LAMINAR_TURBULENT"
      ],
      "reason": null,
      "reasons": 0
    },
    {
      "id": "interFoam_damBreak::healthy",
      "family": "interFoam_damBreak",
      "solver": "interFoam",
      "fault": "healthy",
      "truth": "healthy",
      "relabelled": false,
      "verdict": "accept",
      "basis": "validity",
      "grade": "A",
      "rule": "VER-5.6",
      "split": "held_in",
      "correct": true,
      "expects": null,
      "top2": null,
      "causes": [
        "PHYS.LAMINAR_TURBULENT"
      ],
      "reason": null,
      "reasons": 0
    },
    {
      "id": "interFoam_damBreak::fixed_dt_on_adaptive_solver",
      "family": "interFoam_damBreak",
      "solver": "interFoam",
      "fault": "fixed_dt_on_adaptive_solver",
      "truth": "faulted",
      "relabelled": false,
      "verdict": "reject",
      "basis": "validity",
      "grade": "C",
      "rule": "VER-5.3",
      "split": "held_in",
      "correct": true,
      "expects": "NUM.MISSING_ADJUSTABLE_DT",
      "top2": true,
      "causes": [
        "NUM.MISSING_ADJUSTABLE_DT",
        "NUM.CFL_VIOLATION"
      ],
      "reason": {
        "code": "cfl.max",
        "summary": "Courant number exceeds stability limit: max Co=7.37 at t=0.01 exceeds limit 1.0; still 6.05 over the final fifth of the run",
        "value": "7.37424",
        "threshold": "1.0",
        "input": "interFoam_damBreak__fixed_dt_on_adaptive_solver.log.gz (t = 0.01)"
      },
      "reasons": 3
    },
    {
      "id": "pimpleFoam_planarContraction::healthy",
      "family": "pimpleFoam_planarContraction",
      "solver": "pimpleFoam",
      "fault": "healthy",
      "truth": "healthy",
      "relabelled": false,
      "verdict": "accept",
      "basis": "validity",
      "grade": "A",
      "rule": "VER-5.6",
      "split": "held_in",
      "correct": true,
      "expects": null,
      "top2": null,
      "causes": [
        "PHYS.LAMINAR_TURBULENT"
      ],
      "reason": null,
      "reasons": 0
    },
    {
      "id": "pimpleFoam_planarContraction::cfl_blowup",
      "family": "pimpleFoam_planarContraction",
      "solver": "pimpleFoam",
      "fault": "cfl_blowup",
      "truth": "faulted",
      "relabelled": false,
      "verdict": "reject",
      "basis": "validity",
      "grade": "C",
      "rule": "VER-5.3",
      "split": "held_in",
      "correct": true,
      "expects": "NUM.CFL_VIOLATION",
      "top2": true,
      "causes": [
        "NUM.CFL_VIOLATION",
        "PHYS.LAMINAR_TURBULENT"
      ],
      "reason": {
        "code": "convergence.residual",
        "summary": "transient solve judged on stability rather than a residual threshold \u2014 Courant number settled at 1.76, above the stability limit of 1 \u2014 a transient solve that does not respect its timestep criterion is not converged, whatever the residuals say (final worst residual 1.54e-02)",
        "value": "0.015446261",
        "threshold": null,
        "input": "pimpleFoam_planarContraction__cfl_blowup.log.gz"
      },
      "reasons": 2
    },
    {
      "id": "pimpleFoam_planarContraction::fixed_dt_on_adaptive_solver",
      "family": "pimpleFoam_planarContraction",
      "solver": "pimpleFoam",
      "fault": "fixed_dt_on_adaptive_solver",
      "truth": "faulted",
      "relabelled": false,
      "verdict": "reject",
      "basis": "validity",
      "grade": "C",
      "rule": "VER-5.3",
      "split": "held_in",
      "correct": true,
      "expects": "NUM.MISSING_ADJUSTABLE_DT",
      "top2": true,
      "causes": [
        "NUM.MISSING_ADJUSTABLE_DT",
        "NUM.CFL_VIOLATION"
      ],
      "reason": {
        "code": "convergence.residual",
        "summary": "transient solve judged on stability rather than a residual threshold \u2014 Courant number settled at 1.76, above the stability limit of 1 \u2014 a transient solve that does not respect its timestep criterion is not converged, whatever the residuals say (final worst residual 1.54e-02)",
        "value": "0.015446261",
        "threshold": null,
        "input": "pimpleFoam_planarContraction__fixed_dt_on_adaptive_solver.log.gz"
      },
      "reasons": 3
    },
    {
      "id": "pisoFoam_RAS_cavity::healthy",
      "family": "pisoFoam_RAS_cavity",
      "solver": "pisoFoam",
      "fault": "healthy",
      "truth": "healthy",
      "relabelled": false,
      "verdict": "accept",
      "basis": "validity",
      "grade": "A",
      "rule": "VER-5.6",
      "split": "held_in",
      "correct": true,
      "expects": null,
      "top2": null,
      "causes": [],
      "reason": null,
      "reasons": 0
    },
    {
      "id": "pisoFoam_RAS_cavity::cfl_blowup",
      "family": "pisoFoam_RAS_cavity",
      "solver": "pisoFoam",
      "fault": "cfl_blowup",
      "truth": "faulted",
      "relabelled": false,
      "verdict": "reject",
      "basis": "validity",
      "grade": "C",
      "rule": "VER-5.3",
      "split": "held_in",
      "correct": true,
      "expects": "NUM.CFL_VIOLATION",
      "top2": true,
      "causes": [
        "NUM.CFL_VIOLATION",
        "NUM.MISSING_ADJUSTABLE_DT"
      ],
      "reason": {
        "code": "convergence.residual",
        "summary": "transient solve judged on stability rather than a residual threshold \u2014 Courant number settled at 2.33, above the stability limit of 1 \u2014 a transient solve that does not respect its timestep criterion is not converged, whatever the residuals say (final worst residual 7.09e-02)",
        "value": "0.070853",
        "threshold": null,
        "input": "pisoFoam_RAS_cavity__cfl_blowup.log.gz"
      },
      "reasons": 3
    },
    {
      "id": "pisoFoam_RAS_cavity::laminar_on_turbulent",
      "family": "pisoFoam_RAS_cavity",
      "solver": "pisoFoam",
      "fault": "laminar_on_turbulent",
      "truth": "faulted",
      "relabelled": false,
      "verdict": "reject",
      "basis": "validity",
      "grade": "D",
      "rule": "VER-5.2",
      "split": "held_in",
      "correct": true,
      "expects": "PHYS.LAMINAR_TURBULENT",
      "top2": true,
      "causes": [
        "PHYS.LAMINAR_TURBULENT"
      ],
      "reason": {
        "code": "run.crash",
        "summary": "The solver did not complete (fatal_signal)",
        "value": "SIGFPE",
        "threshold": null,
        "input": "pisoFoam_RAS_cavity__laminar_on_turbulent.log.gz"
      },
      "reasons": 4
    },
    {
      "id": "pisoFoam_RAS_cavity::loose_solver_tolerance",
      "family": "pisoFoam_RAS_cavity",
      "solver": "pisoFoam",
      "fault": "loose_solver_tolerance",
      "truth": "faulted",
      "relabelled": false,
      "verdict": "reject",
      "basis": "validity",
      "grade": "A",
      "rule": "VER-5.4",
      "split": "held_in",
      "correct": true,
      "expects": "NUM.SOLVER_TOLERANCE",
      "top2": true,
      "causes": [
        "NUM.SOLVER_TOLERANCE"
      ],
      "reason": {
        "code": "solver.loose_tolerance",
        "summary": "Linear solver tolerance far looser than any tutorial ships: p solved to tolerance 0.1 / relTol 0.1; OpenFOAM's own tutorials use 1e-06 to 1e-05",
        "value": "0.1",
        "threshold": "0.0001",
        "input": "fvSolution"
      },
      "reasons": 1
    },
    {
      "id": "pisoFoam_RAS_cavity::wrong_turbulence_model",
      "family": "pisoFoam_RAS_cavity",
      "solver": "pisoFoam",
      "fault": "wrong_turbulence_model",
      "truth": "faulted",
      "relabelled": false,
      "verdict": "reject",
      "basis": "validity",
      "grade": "D",
      "rule": "VER-5.2",
      "split": "held_in",
      "correct": true,
      "expects": "ENV.MISSING_DICT",
      "top2": true,
      "causes": [
        "ENV.MISSING_DICT"
      ],
      "reason": {
        "code": "run.crash",
        "summary": "The solver did not complete (foam_fatal)",
        "value": "FOAM FATAL ERROR",
        "threshold": null,
        "input": "pisoFoam_RAS_cavity__wrong_turbulence_model.log.gz"
      },
      "reasons": 3
    },
    {
      "id": "rhoPimpleFoam_RAS_cavity::healthy",
      "family": "rhoPimpleFoam_RAS_cavity",
      "solver": "rhoPimpleFoam",
      "fault": "healthy",
      "truth": "healthy",
      "relabelled": false,
      "verdict": "accept",
      "basis": "validity",
      "grade": "A",
      "rule": "VER-5.6",
      "split": "held_in",
      "correct": true,
      "expects": null,
      "top2": null,
      "causes": [
        "NUM.MISSING_ADJUSTABLE_DT"
      ],
      "reason": null,
      "reasons": 0
    },
    {
      "id": "rhoPimpleFoam_RAS_cavity::cfl_blowup",
      "family": "rhoPimpleFoam_RAS_cavity",
      "solver": "rhoPimpleFoam",
      "fault": "cfl_blowup",
      "truth": "faulted",
      "relabelled": false,
      "verdict": "reject",
      "basis": "validity",
      "grade": "D",
      "rule": "VER-5.2",
      "split": "held_in",
      "correct": true,
      "expects": "NUM.CFL_VIOLATION",
      "top2": true,
      "causes": [
        "NUM.MISSING_ADJUSTABLE_DT",
        "NUM.CFL_VIOLATION"
      ],
      "reason": {
        "code": "run.crash",
        "summary": "The solver did not complete (fatal_signal)",
        "value": "SIGFPE",
        "threshold": null,
        "input": "rhoPimpleFoam_RAS_cavity__cfl_blowup.log.gz"
      },
      "reasons": 6
    },
    {
      "id": "rhoPimpleFoam_RAS_cavity::missing_dict",
      "family": "rhoPimpleFoam_RAS_cavity",
      "solver": "rhoPimpleFoam",
      "fault": "missing_dict",
      "truth": "faulted",
      "relabelled": false,
      "verdict": "reject",
      "basis": "validity",
      "grade": "D",
      "rule": "VER-5.2",
      "split": "held_in",
      "correct": true,
      "expects": "ENV.MISSING_DICT",
      "top2": true,
      "causes": [
        "ENV.MISSING_DICT",
        "NUM.MISSING_ADJUSTABLE_DT"
      ],
      "reason": {
        "code": "run.crash",
        "summary": "The solver did not complete (foam_fatal)",
        "value": "FOAM FATAL ERROR",
        "threshold": null,
        "input": "rhoPimpleFoam_RAS_cavity__missing_dict.log.gz"
      },
      "reasons": 3
    },
    {
      "id": "simpleFoam_pitzDaily::healthy",
      "family": "simpleFoam_pitzDaily",
      "solver": "simpleFoam",
      "fault": "healthy",
      "truth": "healthy",
      "relabelled": false,
      "verdict": "accept",
      "basis": "validity",
      "grade": "B",
      "rule": "VER-5.6",
      "split": "held_in",
      "correct": true,
      "expects": null,
      "top2": null,
      "causes": [],
      "reason": {
        "code": "bounds.turbulence",
        "summary": "4 bounding excursions on ['epsilon', 'k'], all during startup",
        "value": "4.0",
        "threshold": null,
        "input": "simpleFoam_pitzDaily__healthy.log.gz"
      },
      "reasons": 1
    },
    {
      "id": "simpleFoam_pitzDaily::mass_imbalance",
      "family": "simpleFoam_pitzDaily",
      "solver": "simpleFoam",
      "fault": "mass_imbalance",
      "truth": "faulted",
      "relabelled": false,
      "verdict": "reject",
      "basis": "validity",
      "grade": "B",
      "rule": "VER-5.4",
      "split": "held_in",
      "correct": true,
      "expects": "NUM.SOLVER_TOLERANCE",
      "top2": true,
      "causes": [
        "NUM.SOLVER_TOLERANCE",
        "CONV.RESIDUAL_PLATEAU"
      ],
      "reason": {
        "code": "residual.not_converged",
        "summary": "Final residual above convergence criterion: final worst residual 0.0098 > 0.001",
        "value": "0.0097967",
        "threshold": "0.001",
        "input": "simpleFoam_pitzDaily__mass_imbalance.log.gz"
      },
      "reasons": 4
    },
    {
      "id": "simpleFoam_pitzDaily::oscillation",
      "family": "simpleFoam_pitzDaily",
      "solver": "simpleFoam",
      "fault": "oscillation",
      "truth": "faulted",
      "relabelled": false,
      "verdict": "reject",
      "basis": "validity",
      "grade": "D",
      "rule": "VER-5.2",
      "split": "held_in",
      "correct": true,
      "expects": "NUM.OVER_RELAXATION",
      "top2": true,
      "causes": [
        "NUM.OVER_RELAXATION"
      ],
      "reason": {
        "code": "run.crash",
        "summary": "The solver did not complete (fatal_signal)",
        "value": "SIGFPE",
        "threshold": null,
        "input": "simpleFoam_pitzDaily__oscillation.log.gz"
      },
      "reasons": 5
    },
    {
      "id": "simpleFoam_pitzDaily::over_relaxation",
      "family": "simpleFoam_pitzDaily",
      "solver": "simpleFoam",
      "fault": "over_relaxation",
      "truth": "faulted",
      "relabelled": false,
      "verdict": "reject",
      "basis": "validity",
      "grade": "D",
      "rule": "VER-5.2",
      "split": "held_in",
      "correct": true,
      "expects": "NUM.OVER_RELAXATION",
      "top2": true,
      "causes": [
        "NUM.OVER_RELAXATION"
      ],
      "reason": {
        "code": "run.crash",
        "summary": "The solver did not complete (fatal_signal)",
        "value": "SIGFPE",
        "threshold": null,
        "input": "simpleFoam_pitzDaily__over_relaxation.log.gz"
      },
      "reasons": 5
    },
    {
      "id": "simpleFoam_pitzDaily::overconstrained_pu",
      "family": "simpleFoam_pitzDaily",
      "solver": "simpleFoam",
      "fault": "overconstrained_pu",
      "truth": "faulted",
      "relabelled": false,
      "verdict": "reject",
      "basis": "validity",
      "grade": "B",
      "rule": "VER-5.4",
      "split": "held_in",
      "correct": true,
      "expects": "BC.OVERCONSTRAINED_PU",
      "top2": true,
      "causes": [
        "BC.OVERCONSTRAINED_PU"
      ],
      "reason": {
        "code": "bc.overconstrained",
        "summary": "Over-constrained pressure-velocity coupling: patches fix both p and U (fixedValue/fixedValue): ['outlet']",
        "value": null,
        "threshold": null,
        "input": " boundary conditions (outlet)"
      },
      "reasons": 2
    },
    {
      "id": "simpleFoam_pitzDaily::residual_plateau",
      "family": "simpleFoam_pitzDaily",
      "solver": "simpleFoam",
      "fault": "residual_plateau",
      "truth": "faulted",
      "relabelled": false,
      "verdict": "reject",
      "basis": "validity",
      "grade": "B",
      "rule": "VER-5.4",
      "split": "held_in",
      "correct": true,
      "expects": "CONV.RESIDUAL_PLATEAU",
      "top2": true,
      "causes": [
        "CONV.RESIDUAL_PLATEAU",
        "NUM.SOLVER_TOLERANCE"
      ],
      "reason": {
        "code": "residual.not_converged",
        "summary": "Final residual above convergence criterion: final worst residual 0.00186 > 0.001",
        "value": "0.00186427",
        "threshold": "0.001",
        "input": "simpleFoam_pitzDaily__residual_plateau.log.gz"
      },
      "reasons": 2
    },
    {
      "id": "simpleFoam_pitzDaily::unbounded_scheme",
      "family": "simpleFoam_pitzDaily",
      "solver": "simpleFoam",
      "fault": "unbounded_scheme",
      "truth": "faulted",
      "relabelled": false,
      "verdict": "reject",
      "basis": "validity",
      "grade": "C",
      "rule": "VER-5.3",
      "split": "held_in",
      "correct": true,
      "expects": "NUM.UNBOUNDED_SCHEME",
      "top2": true,
      "causes": [
        "NUM.UNBOUNDED_SCHEME",
        "CONV.RESIDUAL_PLATEAU"
      ],
      "reason": {
        "code": "bounds.turbulence",
        "summary": "208 bounding excursions on ['epsilon', 'k'], still clipping late on ['epsilon', 'k']",
        "value": "208.0",
        "threshold": null,
        "input": "simpleFoam_pitzDaily__unbounded_scheme.log.gz"
      },
      "reasons": 6
    }
  ],
  "splits": {
    "held_in": {
      "accuracy": {
        "n": 28,
        "of": 28,
        "lo": 0.8794,
        "hi": 1.0
      },
      "far": {
        "n": 0,
        "of": 21,
        "lo": 0.0,
        "hi": 0.1546
      },
      "frr": {
        "n": 0,
        "of": 7,
        "lo": 0.0,
        "hi": 0.3543
      },
      "top2": {
        "n": 21,
        "of": 21,
        "lo": 0.8454,
        "hi": 1.0
      },
      "families": [
        "icoFoam_cavity",
        "interFoam_damBreak",
        "pimpleFoam_planarContraction",
        "pisoFoam_RAS_cavity",
        "rhoPimpleFoam_RAS_cavity",
        "simpleFoam_pitzDaily"
      ]
    },
    "held_out": {
      "accuracy": {
        "n": 3,
        "of": 3,
        "lo": 0.4385,
        "hi": 1.0
      },
      "far": {
        "n": 0,
        "of": 2,
        "lo": 0.0,
        "hi": 0.6576
      },
      "frr": {
        "n": 0,
        "of": 1,
        "lo": 0.0,
        "hi": 0.7935
      },
      "top2": {
        "n": 2,
        "of": 2,
        "lo": 0.3424,
        "hi": 1.0
      },
      "families": [
        "buoyantPimpleFoam_hotRoom"
      ]
    }
  },
  "certified": {
    "tag": "v6",
    "date": "2026-10-11",
    "policy": "TRD 2.0: verdict/2 (GATE-1..3); VER-5 incl. VER-5.5 residual steps, VER-5.15 time markers; VER-13 per-case Courant limit with maxCo raising it only under PIMPLE outer correctors; verifier 0.5.0",
    "verifier": "0.5.0",
    "corpus": "Courant Test judge-v0: 31 real OpenFOAM v2406 runs (23 faulted, 8 healthy)",
    "relabelled": [
      "interFoam_damBreak::cfl_blowup"
    ]
  },
  "hypotheses": {
    "RM-01.H1": {
      "observed": "0 of 23",
      "result": "SUPPORTED",
      "statement": "at most 2 false accepts over the faulted runs",
      "threshold": "<= 2"
    },
    "RM-01.H2": {
      "observed": "0 of 8",
      "result": "SUPPORTED",
      "statement": "zero false alarms over the healthy runs",
      "threshold": "== 0"
    },
    "RM-02.H1.held_in": {
      "observed": "21 of 21",
      "result": "SUPPORTED",
      "statement": "fault in the top two on at least 18 held-in faulted tasks",
      "threshold": ">= 18"
    },
    "RM-02.H1.held_out": {
      "observed": "2 of 2",
      "result": "REFUTED",
      "statement": "fault in the top two on at least 3 held-out faulted tasks",
      "threshold": ">= 3"
    }
  },
  "locks": {
    "certification/RESULTS.json": "6f67ffab5cbed10ddc8e3763634d216915894d7b9dae1027e9e9652fb92f9b00",
    "courant/ctest/data/judge-v0.labels.jsonl": "207c35b8350ae1face456f146fdd5d8e17b58ce33c9cc5f298cda765fd3a3d3a",
    "courant/ctest/score.py": "452871b5230376edb381d1a1bf4a46ff941d2fe5ea061ca984540e4d39ec5c53",
    "courant/ctest/splits.py": "2eb270d55e1e9db57f7ec8a871b1b2736400991a7ca5ed0b78ff3fab6c3be397"
  }
}
