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.
Wide table — scroll sideways to see every column.
| 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… |
| 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… |
| 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… |
| 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 + blackOil3PCouplingStore… |
| 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 +… |
| 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… |
| 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 > monitor… |
| 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 diagnostics +… |
| 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. |
| EDFM + MINC matrix–fracture transfer | Analytical | Closed-form Embedded Discrete Fracture Model face transmissibility (edfmTransmissibility, Li–Lee 2008 / Moinfar 2013 average matrix-to-fracture distance) plus a nested MINC subgrid transient (N shells, harmonic-mean inter-shell transmissibility,… |
| Metamorphic verification agent | — | Seeded metamorphic-relation fuzzer over the solver envelope: src/lib/verification/metamorphicRunner.ts (mulberry32 PRNG — every run is reproducible from { relationId, seed, cases }), relation authoring + invariants (relationAuthoring.ts,… |
| PGD-NO high-resolution surrogate | — | Proper-Generalized-Decomposition style separable operator surrogate: src/lib/operator/pgdno/pgdSeparableField.ts encodes a scalar field on a tensor-product grid as f(x,y,z) ≈ Σ_r w_r·Fx_r(x)·Fy_r(y)·Fz_r(z), touching the full tensor once at encode time and… |
| Whole-pad parallel stage solve (stage-parallel relaxation) | Analytical | Every stage on a pad is solved at once against a predicted interference field, then the field is corrected in a handful of sweeps: runStagesParallel in src/lib/stageParallel/stageParallelRun.ts with the shadow kernel in stageCoupling.ts (σmin → σmin + Δσ plus… |
| Cross-pad refrac / parent-child depletion coupling | Analytical | A stored depletion state — depleted parent wells on OTHER pads with drawdown, drainage radius, cooling, and elapsed production time — is turned into one signed Δσ per stage through the Phase-11 poroelastic + thermoelastic kernels… |
| Fiber digital twin — forward DAS / DTS model | Analytical | The fiber twin runs the inverse direction from every other DAS surface: given simulated geometry and pressure it PREDICTS what the fiber should have seen. |
| EDFM invariant verification report | — | The EDFM path carries its own metamorphic-style invariant suite instead of a single golden number: src/lib/reservoir/edfmInvariantReport.ts (schema + migrations + provenance), edfmInvariantTuning.ts, edfmPerfWorkloads.ts, and edfmCaseHeatmap.ts run the… |
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, live-kernel path (1 benchmark, 2 time samples; tolerance 0.115) — same row as /dfit-benchmarks
| Closure stress | 4 – 12 kpsi |
| Treating pressure | p > σ_h_min (vertical mode) |
| Window | Pre-screenout pumping + post-closure ≤ 100 s |
- Post-screen-out regimes after a tip screen-out (Nolte–Smith mode III, positive slope); mode IV (negative slope) is unrestricted height growth, not a screen-out
- 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.
DFIT registry pkn-length, raw kernel (1 benchmark, 2 time samples; tolerance 0.15) — same row as /dfit-benchmarks
| 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 — validation in progress.
- No published error band yet — use with engineering judgment.
Research-grade — validation in progress.
- 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 — validation in progress.
- 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
Non-planar tip kinking + NF branching ship with unit-level drift-guards only — no published error band against measured geometry.
| Geometry | Quad surface mesh, 3-D DDM half-space influence operator |
| Kinking | Erdogan-Sih maximum hoop stress with operator kink-angle clamp |
| Crossing | Renshaw-Pollard / Gu-Weng natural-fracture criteria |
- No error band against measured fracture geometry — treat predicted paths as scenarios, not forecasts
- Tip-kinking angle is clamp-sensitive; results move with the operator-set limit
- Curvature loop needs a live Δσ evaluator; isotropic stress collapses to a planar path
Research-grade — validation in progress.
- No published error band yet — use with engineering judgment.
Research-grade — validation in progress.
- No published error band yet — use with engineering judgment.
Research-grade — validation in progress.
- No published error band yet — use with engineering judgment.
Research-grade — validation in progress.
- No published error band yet — use with engineering judgment.
Research-grade — validation in progress.
- No published error band yet — use with engineering judgment.
Research-grade — validation in progress.
- No published error band yet — use with engineering judgment.
Research-grade — validation in progress.
- No published error band yet — use with engineering judgment.
Research-grade — validation in progress.
- No published error band yet — use with engineering judgment.
Research-grade — validation in progress.
- No published error band yet — use with engineering judgment.
Research-grade — validation in progress.
- No published error band yet — use with engineering judgment.
Research-grade — validation in progress.
- No published error band yet — use with engineering judgment.
Research-grade — validation in progress.
- No published error band yet — use with engineering judgment.
Research-grade — validation in progress.
- No published error band yet — use with engineering judgment.
Research-grade — validation in progress.
- No published error band yet — use with engineering judgment.
Research-grade — validation in progress.
- No published error band yet — use with engineering judgment.
Research-grade — validation in progress.
- No published error band yet — use with engineering judgment.
Research-grade — validation in progress.
- No published error band yet — use with engineering judgment.
Research-grade — validation in progress.
- No published error band yet — use with engineering judgment.
10 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 (shallow positive, confined extension) · II (flat, height growth into bounding layers) · III (steep positive, tip screen-out) · IV (negative, unrestricted growth — not a 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.
How fast the fracture tip actually advances. A fracture tip lives between two limits: toughness-dominated (rock strength controls) and viscosity-dominated (fluid drag controls). This asymptote picks the correct one — or the blend — per tip, per step.
- Dontsov–Peirce 2017 max-of-asymptotes blend, not an interpolation
- Newtonian fluid in the tip region
- LEFM toughness K_IC from the layer the tip is in
Tip region only; wrong when the tip crosses a stress barrier faster than the asymptote equilibrates.
Cold-water injection cools the rock and depletion drops pore pressure — both unload the minimum horizontal stress. This is why child wells frac at lower pressure after the parent has produced, and why long injection can re-open fractures.
- Linear poroelastic + thermoelastic superposition
- Uniaxial-strain boundary condition (laterally extensive reservoir)
- Constant Biot α_B, Poisson ν, Young's E, thermal expansion α_T per bench
Small to moderate ΔT and ΔP; the 3-D voxel stepper resolves the spatial field, the 2-D kernel assumes a uniform depleted disc.
Gas doesn't travel at liquid speed — it slips. The void fraction α from drift-flux, combined with a real-gas Z-factor, gives the true mixture density and hydrostatic head when gas is in the string (gas lift, flowback, energized-CO₂ jobs).
- Zuber–Findlay profile coefficient C₀ and drift velocity V_d per regime
- Dranchuk–Abou-Kassem Z with Sutton pseudo-criticals + Wichert–Aziz sour correction
- Steady-state slip (no transient slug tracking)
Single-phase collapse is byte-identical at j_g = 0. Not an OLGA-class transient multiphase solver — out of scope by declaration.
Frac fluids shear-thin — viscosity drops as they pump faster. Carreau–Yasuda captures the full curve where a power-law fit breaks (low-shear plateau, high-shear plateau), and the Weissenberg number flags when elastic effects (normal stresses, drag reduction) matter.
- a-transition parameter (a = 2 collapses to legacy Carreau exactly)
- Optional Maxwell multi-mode extension for first normal stress
- Shear-history damage integrates crosslinker breakdown over the pump schedule
Steady shear rheology; does not model extensional flow or gel degradation chemistry beyond the calibrated breaker half-life.
The direction a fracture tip turns when the local stress field rotates. Kinking is how a fracture leaves its plane — the basis of the non-planar 3-D solver, gated by Renshaw–Pollard / Gu–Weng criteria for whether it crosses or branches a natural fracture.
- Mixed-mode K_I/K_II from the 3-D DDM influence operator
- Operator-tunable kink-angle clamp per step
- Curvature limited per unit length (stress-driven curvature loop)
Brittle, isotropic rock at the tip scale; kink angles above the clamp are capped, not modelled.
When the fracture aperture narrows to a few grain diameters, proppant jams at the tip — the physical precursor to screen-out. The bridging criterion transfers net pressure into local rock stress where grains lock up.
- Aperture-to-grain ratio N_b at the leading edge
- Transfer efficiency η and critical ratio operator-tunable
- Hertz–Mindlin contact mechanics per bridging event
Proppant-laden stages only; a clean pad never bridges. Works with the settling-bed screen-out predictor, not in place of it.
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.
Two wells, predicted then measured
The inputs each run was given, what it predicted, and what the field measurement showed — including where the comparison is weak.
Hydraulic Fracturing Test Site 1 public dataset — cored slant well through 11 producing stages, published 2019.
What went in
- Core plug permeability and porosity per layer (published core report)
- Layer Young's modulus and Poisson's ratio from the same plugs
- As-pumped rate, fluid volume and proppant mass per stage
- Measured closure stress from the site DFIT
| Quantity | Predicted | Measured | Difference |
|---|---|---|---|
| Fractures intersecting the cored interval | 41 clusters contributing | 37 cored fracture intersections | +11% |
| Propped height above perforation | 112 ft | 98 ft (core + fibre) | +14% |
| Effective propped half-length | 186 ft | 198 ft | -6% |
Where this comparison is weak
- Core intersections count only what the slant hole cut — the true fracture count is a lower bound.
- Propped height from core is interpreted, not directly gauged.
Demonstration well built from typical Midland Basin published values (survey, DFIT, core and decline trends). No operator final numbers are on file — the "reference" column shows representative industry values, not a field measurement.
What went in
- Real deviation survey (station-by-station MD/inclination/azimuth)
- DFIT closure stress and reservoir pressure
- Well budget: per-foot drilling, per-stage completion, monthly lifting
- Core-derived permeability and PVT curves from the well's fluid sample
| Quantity | Predicted | Reference (not measured) | Difference |
|---|---|---|---|
| First-year oil | 168,000 STB | 159,400 STB allocated | +5% |
| Peak monthly rate | 742 STB/d | 710 STB/d | +5% |
| Break-even oil price (10% discount) | $44.10/bbl | $45.80/bbl on booked costs | -4% |
Where this comparison is weak
- Allocated production carries the operator's own allocation error.
- Booked costs include one workover the plan did not forecast.
Classic page-by-page route
144 clicks · 10 min
Fast lane here
36 clicks · 2 min
Saved
108 clicks · 75%
Minutes assume 4 seconds per interaction; the click counts themselves are measured. Change the assumption and the click saving still holds.
Technical contact
Every claim on this page traces to a route, a test, or a documented assumption you can open yourself — the proof is the software, not a résumé. If a derivation, validity envelope, or benchmark result needs explaining, ask directly.
Contact team@wellboregenius.com for a technical deep-dive call.
