Physics-first. AI-assisted. Not a black box.
Every number this app shows traces back to a published equation, a measured input, or a documented assumption. AI lives at the edges — it helps engineers author, tune, and explain simulations. It does not run the core physics.
What the solver actually does
Every row below is the live answer to "which equation produced this result?" — pulled from the same source of truth the kernel reads. Tier shows where each module sits on the analytical → DDM → fully-coupled ladder.
| Module | Tier | Today |
|---|---|---|
| Fracture mechanics | DDM / P3D | Cell-based Pseudo-3D, fixed height, LEFM tip + Charles power-law growth (Planar-3D Newton step + front-motion coupling landed @ Phase 4.5, beta — Sneddon-asymptote K_I inversion drives Charles V_n into the level-set tip propagator) + Phase 7 inc 1–5 tip-kernel… |
| Fluid–solid coupling | Fully coupled | Fully-coupled Newton-Raphson via `coupledNewtonStep` is the DEFAULT path for every live-kernel surface (DFIT registry's `kgd-width`/`pkn-length`/`carter-falloff` entries, all proppant-validation runners, KGD/PKN moving-tip wrappers); |
| Leak-off | DDM / P3D | Carter √t baseline + kernel-coupled PDL & dynamic filter-cake + two-phase α_s throttle (Planar-3D Newton step consumes Carter·(1+α·Δp)/(1+κ·√t)·(1−α_s/α_pack)^n as a per-cell sink @ Phase 5 inc 6, beta) + DFIT validation harness with /dfit-benchmarks dashboard… |
| Proppant transport | DDM / P3D | Single-phase concentration advection (RZ settling, conv., slumping, MPM bedload, K-D rheology) + Eulerian-Granular two-phase scaffold with K-D μ_eff(α_s) coupling, PLA shear-induced migration + bridging/screen-out gate, hybrid Eulerian-Lagrangian particle trac… |
| Simulator backend | — | Internal kernel only — no external reservoir-sim bridge (ECLIPSE / tNavigator / INTERSECT / CMG). |
| Coupling direction | Fully coupled | Two-way *within the frac* (Newton-Raphson width↔pressure via `coupledNewtonStep`, default live-kernel path @ Phase 7 inc 16) **AND** two-way frac↔reservoir solved JOINTLY each timestep, **now default-ON @ Phase 16** via `reservoirCouplingStore` + `blackOil3PCo… |
| Wellbore flow | DDM / P3D | Steady-state hydrostatic + frictional pressure drop (`slurryHydrostatic.ts`: 0.052·ρ_eff·TVD + Σ ΔP_friction, with slurry+proppant ρ_eff cascade). |
| Perforation erosion & clearance | Analytical | Asymmetric time-evolving erosion model (upstream/downstream/side/dynamic discharge coefficients Du/Ds/Dd/Cd) with a spatially-correlated α field (mulberry32 + Box-Muller, operator-tunable σ_α and correlation length). |
| Parent-child interference | Analytical | Analytical first-order screening via `parentChildInterference.ts` — log-radial Δp depletion kernel summed over producing parents + Eaton/poroelastic Δσ_h = α·(1−2ν)/(1−ν)·Δp + per-stage frac-half-length asymmetry from the lateral-normal Δp gradient + bashing-r… |
| Poroelastic depletion (full tensor) | Analytical | Geertsma-style 2D poroelastic kernel via `poroelasticDepletion.ts` — each producing parent treated as a circular drained patch (radius = drainageRadiusFt) with stress-path coefficient A = α·(1−2ν)/(1−ν); |
| Thermo-mechanical-hydraulic (3-D voxel) | DDM / P3D | Phase 9 T-M-H 3-D voxel stepper via `src/lib/reservoir/thermoPoroGrid3D.ts` — segregated implicit-Euler timestepping on a regular voxel grid that solves a TPFA conduction temperature equation (SPD CG via `src/lib/linalg/cg.ts`) with prescribed-T Dirichlet boun… |
| Non-planar 3D fracture solver | DDM / P3D | Fully-3D non-planar fracture geometry via `src/lib/nonPlanar3D/{surfaceMesh,ddm3D,tipKinking,nfBranching,pipeline,mtsPropagation,stressFieldSampler}.ts` — quad surface mesh with per-face propagation history, 3-D DDM influence operator (Okada-style half-space),… |
| UFM / Fully-3D DFN | DDM / P3D | UFM-class discrete fracture network (DFN) shipped — a true mutable topology engine + literature-grade HF↔NF crossing criteria layered on top of the non-planar 3D DDM solver. |
| Fleet-cohort driver analysis | — | Pure-library Spearman rank-correlation driver finder via `src/lib/fleetCohortDrivers.ts` — across N similar stages in a fleet, ranks candidate input features by |ρ| against a chosen outcome metric, with operator-tunable cohort filters (basin / play / σh band /… |
| Autopilot closed loop (advisory + opt-in auto-apply) | — | Phase G — bounded autopilot stack: `src/lib/autopilot/jobPilotFusion.ts` fuses DAS-cluster-efficiency, TLP traffic-light, screen-out leading-indicator, and live-HM RMSE signals into a single ranked `PilotAction`, with priority ladder shut-in > rate-cut > monit… |
| Multi-pad coordination (shared fleet) | — | Phase H — pure `src/lib/multiPad/multiPadCoordination.ts` greedy priority-first event-driven scheduler. |
| CCS / CO₂ injection physics | — | Span-Wagner CO₂ EOS + hydrate-risk screen via `src/lib/co2InjectionPhysics.ts` — density / phase / Joule-Thomson cooling on a (p, T) grid plus a Sloan-Koh hydrate-margin classifier (`safe | watch | risk`). |
| Auto-RTA surveillance loop | — | Rolling Arps fit + regime-break detector via `src/lib/autoRtaLoop.ts` — flags transient → BDF transitions and emits alerts when fitted b / Di drift outside operator bands. |
| Surface network solver (steady-state) | — | Multi-well steady-state pipeline solver via `src/lib/surfaceNetworkSolver.ts` — node-pressure Newton with Hazen-Williams / Darcy-Weisbach branch closures, choke + compressor primitives, and per-node mass-balance residuals. |
| Boundary conditions | Fully coupled | Typed boundary-condition bundle for the depletion + fracture solver via `src/lib/boundaryConditions.ts` (`BoundaryConditions` discriminated union: far-field Dirichlet σ-tensor / Neumann Δσ_shadow(t) / Robin compliance / no-flow; |
| State-spec multiphase flash (PT + PH + PS) | — | PT (pressure-temperature) flash is shipped through the existing PR-EOS pipeline; |
| Flow diagnostics (TOF + tracer partition + Lorenz) | — | **v9 Gap C** ships forward/backward time-of-flight, injector/producer tracer partition, allocation matrix, Lorenz coefficient + sweep-efficiency estimate via `src/lib/reservoir/flowDiagnostics.ts` — cheap pre-simulation drainage picture matching MRST `diagnost… |
| FDI bidirectional loop (parent depletion ↔ child growth) | Analytical | Sprint 1b — pure analytical timestep loop `runFdiBidirectionalLoop` in `src/lib/fdi/bidirectionalLoop.ts` couples parent depletion into child fracture propagation each step. |
Per-module proof on rock, fluid, and basin
Each card answers the field-engineer scan test in 30 seconds: proof level · error band on measured data · basin coverage · validity envelope · failure modes. Unlisted modules render as Research until they earn a band — honest by default.
Cell-Pseudo-3D + Planar-3D Newton step against Sneddon + KGD/PKN analytics.
DFIT registry kgd-width / pkn-length / carter-falloff, live-kernel path
| Closure stress | 4 – 12 kpsi |
| Treating pressure | p > σ_h_min (vertical mode) |
| Window | Pre-screenout pumping + post-closure ≤ 100 s |
- Post-screen-out tip-screenout regimes (mode IV)
- Layered E′ contrasts > 3× without per-vertex moduli enabled
- Bedding-plane horizontal mode (use bedding-plane card instead)
Fully-coupled Newton-Raphson is the DEFAULT live path; explicit split kept as regression reference.
Window-sweep tightened from 0.20 → 0.15 @ Phase 7 inc 21
| Newton convergence | ≤ 25 outer iters, residual ≤ 1e-6 |
| Mesh | Cell-strip Planar-3D; tip-refined opt-in |
- Aggressive `kic-clamped` tipBC overruns the 0.15 ceiling (drift-guarded)
- Carter window > 100 s drifts without per-step injection sizing
Carter √t + kernel-coupled PDL + filter-cake + two-phase α_s throttle.
Per-step mass-balance vs kernel's discrete encoding 2·C_L·(√t_n − √t_o)/dt
| C_L range | 1e-5 – 1e-2 m/√s |
| Falloff window | [1, 100] s post-shut-in |
| Filtrate | Newtonian (no rheological skin) |
- Spurt-dominated systems where C_L does not lump spurt cleanly
- Multi-phase filtrate without α_s feedback
Single-phase + Eulerian-Granular two-phase scaffold; wellbore proppant cascade is a preview, not field-validated.
| Concentration | 0 – 8 ppa (above 8 ppa untested) |
| Mesh size | 20/40, 30/50, 40/70, 100-mesh slickwater |
- Wellbore preview has no proppant-vs-fluid slip (carrier-tracking only)
- No bridging / screen-out gate inside the wellbore cascade
- Gel-load and temperature-dependent settling not in preview
Research-grade — not yet field-validated.
- No published error band yet — use with engineering judgment.
Research-grade — not yet field-validated.
- No published error band yet — use with engineering judgment.
Steady hydrostatic + Swamee-Jain friction + opt-in transient drift-flux with DAK Z(p,T).
α stability frontier sweep recommends α=0.5; sour-gas via Wichert-Aziz
| Rate | 10 – 120 bpm |
| Multiphase | α ∈ (0, 1) bubbly / slug / churn / annular |
| Pressure | Standing-Katz / DAK valid 0.1 ≤ p_r ≤ 30, 1.05 ≤ T_r ≤ 3 |
- OLGA-class transient multiphase (out of scope today)
- Highly inclined laterals where Beggs-Brill exceeds drift-flux validity
Research-grade — not yet field-validated.
- No published error band yet — use with engineering judgment.
Analytical screening (log-radial Δp + Eaton Δσ_h + asymmetry) + microseismic ingest.
Permian-Wolfcamp + Bakken-Middle pilot pads, 2025-2026 vintage
| Spacing | 300 – 1,500 ft well spacing |
| Drawdown | Time-resolved via per-parent τ_years + production start |
| Drainage radius | Fit from microseismic catalog or regional preset |
- Sparse / shallow microseismic coverage drops drainage-radius fit confidence
- Multi-bench parents without TVD-aware Mindlin layering
Geertsma 2-D + 3-D Mindlin layered + thermo-poroelastic + runtime stress-coupled propagation.
M2 SHmax→geometry t-loop drift-guard parity sweep
| Drawdown | ≤ 3,000 psi (2-D closed form); unbounded for 3-D Mindlin |
| Biot α | 0.5 – 0.9 (default 0.7 unconventionals) |
| Geometry | Parent treated as oblate disc |
- Highly anisotropic E_h / E_v (TIV) — use bench-aware per-layer ν, α
- Time-varying thermal patches without diffusivity calibration
Phase 9 T-M-H 3-D voxel: implicit T → P → σ_h with bench-aware E′/α and convective transport.
TrustRollupChip aggregate over /numerics-validation SI + FI scenarios
| Mesh | Regular voxel grid; TPFA-conduction, CG-SPD |
| Coupling | Segregated implicit-Euler; chained AFTER blackOil3PCoupling |
| Bench-aware E′/α | Opt-in per-K-layer via benchLayeredProps |
- Highly anisotropic conduction (only isotropic k_T today)
- Phase-change latent heat not in T equation
Research-grade — not yet field-validated.
- No published error band yet — use with engineering judgment.
Research-grade — not yet field-validated.
- No published error band yet — use with engineering judgment.
Research-grade — not yet field-validated.
- No published error band yet — use with engineering judgment.
Research-grade — not yet field-validated.
- No published error band yet — use with engineering judgment.
Research-grade — not yet field-validated.
- No published error band yet — use with engineering judgment.
Research-grade — not yet field-validated.
- No published error band yet — use with engineering judgment.
Research-grade — not yet field-validated.
- No published error band yet — use with engineering judgment.
Research-grade — not yet field-validated.
- No published error band yet — use with engineering judgment.
Research-grade — not yet field-validated.
- No published error band yet — use with engineering judgment.
Research-grade — not yet field-validated.
- No published error band yet — use with engineering judgment.
Research-grade — not yet field-validated.
- No published error band yet — use with engineering judgment.
Research-grade — not yet field-validated.
- No published error band yet — use with engineering judgment.
Four marquee equations, in plain sight
Each card carries the formula, what it means, the assumptions that make it valid, where it stops being valid, and which surfaces in the app consume it.
1-D fluid loss across the fracture face since first exposure at time τ. The single most-tuned knob in any fracture model.
- Planar fracture, 1-D linear leak-off
- Carter coefficient C_L lumps spurt, filtrate, and pore-pressure transient
- Newtonian filtrate (no rheological skin)
Pre-screenout pumping + Carter II falloff window in DFIT post-closure analysis.
Live mode classification: I (flat, radial) · II (negative, height growth) · III (shallow positive, tip-screenout precursor) · IV (steep positive, true screen-out).
- Single dominant fracture (no parallel banks)
- ISIP cleanly identifiable
- Closure pressure pickable from G-function or √t plot
Live pumping window between pad start and ISIP. Not valid post-shut-in.
Eaton / Geertsma 2-D Lamé inside/outside-disc stress drop in a depleted zone. Drives parent-child interference, frac-hit bashing, and SHmax rotation under depletion.
- Linear poroelastic medium, isotropic elastic moduli
- Biot α from rock-physics; default 0.7 for unconventionals
- Depleted compartment approximated as an oblate disc
Drawdown ≤ ~3,000 psi for the 2-D closed form. 3-D Mindlin layered extension lifts the depth limit.
1-D fractional flow + Welge tangent construction for the multiphase saturation shock. The trust gate every IMPES black-oil solver gets compared against.
- Corey rel-perm with picked endpoints
- Incompressible immiscible 2-phase flow
- No capillary pressure (or Pc applied as a post-process)
1-D core-flood scale; 2-D/3-D solvers are compared in L1/L∞ norm against this analytic.
The honest boundary
Fracture mechanics, leak-off, proppant transport, poroelastic depletion, wellbore hydraulics, black-oil reservoir, thermo-mechanical-hydraulic coupling — every computation is deterministic, equation-based, drift-guarded by automated tests.
- • No ML models in the inner loop
- • No statistical surrogates substituting for physics
- • Bit-identical results across runs given the same inputs
Large-language models speed up authoring and answer engineer questions in context. The output is always a proposal the engineer reviews before it touches a simulation.
- • Design Copilot — narrows factor bounds before optimization
- • AI Author — drafts a full deck from a plain-English brief
- • ⌘K command palette — natural-language routing
- • Engineer Copilot — explains the active Builder panel
How we check our own work
Every workspace can run field-validation campaigns: upload measured gauge logs (t, P, T) or gradient surveys (MD, P, T), attach DFIT residuals and Pressure-Advisor cross-checks, and the app emits an honest pass/watch/fail verdict per measurement.
Beyond field data, the solver is continuously gated against four analytical benchmarks: Buckley-Leverett shock speed, McWhorter-Sunada imbibition, Morel-Seytoux 5-spot sweep, and Theis radial pressure transient. Any regression fails CI before it can ship.
Team & credentials
Built by domain engineers with combined decades of completions, reservoir, and geomechanics experience. Full team credentials and academic references available on request for procurement review.
Contact team@wellboregenius.com for a credentials packet or a technical deep-dive call.