
Wellbore Genius
Performance modeling
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. |
| 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, implicit-Eul… |
| 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`, `relationInvaria… |
| 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 t… |
| 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 + Δσ… |
| 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 (`src/lib/stageParallel/deplet… |
| 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 / 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 — 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.
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.
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.