Physics Validation Lab (day 24)¶
Is this model or result physically and numerically consistent? Live at https://validate.pinneapple.org.
Source: apps/validation_lab.

Upload predictions or simulation results. Describe the equations, parameters, units, bounds, boundary conditions
and reference data in a form, or upload a pinneapple check configuration,
or reference a zoo model with query points. The lab runs the physics checks and reports them in three groups that
answer different questions:
| Group | Question |
|---|---|
| Numerical verification | Were the equations solved right? Residuals, finite values, intact artefacts, method status |
| Validation against data | Does it match trusted data, inside the range the data covers? Reference error, QoIs, out-of-range queries |
| Physical consistency | Conservation, boundary and initial conditions, bounds and constraints, units |
For each target, the report says which groups did not run (for example, no reference means no validation against
data). Each check that ran has an evidence record: the SHA-256 of its inputs, its outputs, and start and finish
times (evidence ledger). The report also holds the configuration and the hash of
every input file, so pinneapple check --config pinneapple-check.toml reproduces it.
No single test guarantees that a model represents reality, and neither does this set of tests. A pass means only that the listed checks ran and held on these inputs, with these tolerances.

On the mesh (3-D results)¶
When a result is 3-D and lives on a mesh (an OpenFOAM case zip, a VTU/VTK file with cells) and has a reference, the
report adds a 3-D view of what the reference check (PC701) compared: the prediction, the reference and
|prediction − reference| on the mesh, each with a colour bar. A displacement field deforms the body (scale factor,
true scale). Declared boundary conditions are marked (OpenFOAM patches, planes such as x=min). A list gives the
regions with the largest error: connected points in the top 10 % of the error, with their maximum and mean, size,
share of the squared error and the faces of the domain they touch. Click a row to zoom to it. The relative L2 shown
is the PC701 number. 2-D results, tables and models keep the current views. Library:
pinneapple_veriphysics.mesh_views, pinneapple_analysis.validation.error_map, pp.viz.field_view.
The 3-D example is chosen to fail: the ROM Lab's POD + GPR model (4.4 % mean held-out error) at its worst held-out design, near the edge of its training box. It shows a failing reference check, not the ROM's typical quality.


Automate it¶
POST /api/validatetakes files plusconfig(TOML) orspec(JSON) and returns the report. The interactive docs are at/docs.- In CI, the GitHub Action
PINNeAPPle-Labs/PINNeAPPle@mainruns the same checks on every pull request. - The report JSON, with its ledger, feeds the Engineering Evidence Report (day 30).

Limits¶
- Python models and checkpoints are not run on the server. Upload their predictions, or use the Action.
- The default tolerances of
pinneapple checkdecide pass or fail unless you set them per target. - The report is
pinneapple-validation-lab/v1. Export tovalidation-report/v1(pp.validate) and its credibility levels will follow once those PRs are merged.
Monetization: validations per model, dataset or version, with private projects and CI history for teams.