Physics Validation Suite
Runs 4 reference scenarios through the well solver and compares each metric against an expected value within an explicit tolerance.
CSV must include columns: depthFt, fluidDensityPpg, surfaceTempF, geothermalGradientFperKft, surfacePressurePsi, depletionPsi. Optional columns: label, youngsModulusPsi, poissonRatio, toughnessPsiSqrtIn, sigmaMinPsi, payZoneHeightFt. Each row is run through the well solver and merged with its outputs in the downloaded results.
Specify a range and distribution for each input. Each Monte Carlo draw is run through the well solver; the panel reports P5/P10/P50/P90/P95 confidence intervals and histograms for hydrostatic pressure, bottomhole temperature, and bottomhole pressure.
| Parameter | Mean | Min | Max | Distribution |
|---|---|---|---|---|
| Depth (ft) | ||||
| Fluid density (ppg) | ||||
| Surface temperature (°F) | ||||
| Geothermal gradient (°F/kft) | ||||
| Surface pressure (psi) | ||||
| Depletion (psi) |
Searches the input ranges with Latin Hypercube or Sobol' low-discrepancy samples, scoring each draw against your objectives. Lower score = better. The convergence plot tracks the best score found so far; the table lists the top candidate parameter sets.
| Output | Mode | Target | ± Tolerance | Weight | |
|---|---|---|---|---|---|
| psi | psi |
No hard constraints. Add one to discard candidates whose output falls outside a required range (e.g. BHP must stay below frac pressure).
Parameter ranges (6 — 6 varied, 0 locked)
| Lock | Parameter | Mean (locked value) | Min | Max |
|---|---|---|---|---|
| Depth (ft) | ||||
| Fluid density (ppg) | ||||
| Surface temperature (°F) | ||||
| Geothermal gradient (°F/kft) | ||||
| Surface pressure (psi) | ||||
| Depletion (psi) |
Locked parameters are pinned to their mean during optimization; only unlocked parameters are sampled within their min/max range.
| Metric | Actual | Expected | Δ | Tolerance | Status |
|---|---|---|---|---|---|
| Hydrostatic pressure (psi) | 7176.00 | 7176.00 | +0.00 | ±0.10 | pass |
| Bottomhole temperature (°F) | 88.00 | 88.00 | +0.00 | ±0.10 | pass |
| Bottomhole pressure (psi) | 7676.00 | 7676.00 | +0.00 | ±0.10 | pass |
| Metric | Actual | Expected | Δ | Tolerance | Status |
|---|---|---|---|---|---|
| Hydrostatic pressure (psi) | 13291.20 | 13291.20 | -0.00 | ±0.50 | pass |
| Bottomhole temperature (°F) | 119.20 | 119.20 | +0.00 | ±0.10 | pass |
| Bottomhole pressure (psi) | 15491.20 | 15491.20 | -0.00 | ±0.50 | pass |
| Metric | Actual | Expected | Δ | Tolerance | Status |
|---|---|---|---|---|---|
| Hydrostatic pressure (psi) | 12480.00 | 12480.00 | +0.00 | ±0.50 | pass |
| Bottomhole temperature (°F) | 73.00 | 73.00 | +0.00 | ±0.10 | pass |
| Bottomhole pressure (psi) | 13380.00 | 13380.00 | +0.00 | ±0.50 | pass |
| Metric | Actual | Expected | Δ | Tolerance | Status |
|---|---|---|---|---|---|
| Hydrostatic pressure (psi) | 10701.60 | 10701.60 | +0.00 | ±0.50 | pass |
| Bottomhole temperature (°F) | 139.10 | 139.10 | +0.00 | ±0.10 | pass |
| Bottomhole pressure (psi) | 12201.60 | 12201.60 | +0.00 | ±0.50 | pass |
| Metric | Observed | Predicted | Signed Δ | |Δ| | Rel % | log10 Δ | Tol | Status | Reason |
|---|---|---|---|---|---|---|---|---|---|
| Hydrostatic pressure [psi] | 7176.00 | 7176.00 | +0.00 | 0.00 | +0.000 | +0.0000 | ±0.10 | pass | Within tolerance (|Δ|=0.00e+0 ≤ 0.1) |
| Bottomhole temperature [°F] | 88.00 | 88.00 | +0.00 | 0.00 | +0.000 | +0.0000 | ±0.10 | pass | Within tolerance (|Δ|=0.00e+0 ≤ 0.1) |
| Bottomhole pressure [psi] | 7676.00 | 7676.00 | +0.00 | 0.00 | +0.000 | +0.0000 | ±0.10 | pass | Within tolerance (|Δ|=0.00e+0 ≤ 0.1) |
| Scenario aggregate | RMS Δ 0.0000 | RMS log10 Δ 0.0000 | |||||||
| Metric | Observed | Predicted | Signed Δ | |Δ| | Rel % | log10 Δ | Tol | Status | Reason |
|---|---|---|---|---|---|---|---|---|---|
| Hydrostatic pressure [psi] | 13291.20 | 13291.20 | -0.00 | 0.00 | -0.000 | +0.0000 | ±0.50 | pass | Within tolerance (|Δ|=1.82e-12 ≤ 0.5) |
| Bottomhole temperature [°F] | 119.20 | 119.20 | +0.00 | 0.00 | +0.000 | +0.0000 | ±0.10 | pass | Within tolerance (|Δ|=0.00e+0 ≤ 0.1) |
| Bottomhole pressure [psi] | 15491.20 | 15491.20 | -0.00 | 0.00 | -0.000 | +0.0000 | ±0.50 | pass | Within tolerance (|Δ|=1.82e-12 ≤ 0.5) |
| Scenario aggregate | RMS Δ 0.0000 | RMS log10 Δ 0.0000 | |||||||
| Metric | Observed | Predicted | Signed Δ | |Δ| | Rel % | log10 Δ | Tol | Status | Reason |
|---|---|---|---|---|---|---|---|---|---|
| Hydrostatic pressure [psi] | 12480.00 | 12480.00 | +0.00 | 0.00 | +0.000 | +0.0000 | ±0.50 | pass | Within tolerance (|Δ|=0.00e+0 ≤ 0.5) |
| Bottomhole temperature [°F] | 73.00 | 73.00 | +0.00 | 0.00 | +0.000 | +0.0000 | ±0.10 | pass | Within tolerance (|Δ|=0.00e+0 ≤ 0.1) |
| Bottomhole pressure [psi] | 13380.00 | 13380.00 | +0.00 | 0.00 | +0.000 | +0.0000 | ±0.50 | pass | Within tolerance (|Δ|=0.00e+0 ≤ 0.5) |
| Scenario aggregate | RMS Δ 0.0000 | RMS log10 Δ 0.0000 | |||||||
| Metric | Observed | Predicted | Signed Δ | |Δ| | Rel % | log10 Δ | Tol | Status | Reason |
|---|---|---|---|---|---|---|---|---|---|
| Hydrostatic pressure [psi] | 10701.60 | 10701.60 | +0.00 | 0.00 | +0.000 | +0.0000 | ±0.50 | pass | Within tolerance (|Δ|=0.00e+0 ≤ 0.5) |
| Bottomhole temperature [°F] | 139.10 | 139.10 | +0.00 | 0.00 | +0.000 | +0.0000 | ±0.10 | pass | Within tolerance (|Δ|=0.00e+0 ≤ 0.1) |
| Bottomhole pressure [psi] | 12201.60 | 12201.60 | +0.00 | 0.00 | +0.000 | +0.0000 | ±0.50 | pass | Within tolerance (|Δ|=0.00e+0 ≤ 0.5) |
| Scenario aggregate | RMS Δ 0.0000 | RMS log10 Δ 0.0000 | |||||||
Reference scenarios live in src/lib/calibrationScenarioRunner.ts. The same suite runs headlessly via scripts/testCalibrationScenarioRunner.mjs.