Wellbore Genius
Help

Fracture mechanics

shipped
DDM 3-D
Benchmarked
id: fracture-mechanics

Cell-Pseudo-3D + Planar-3D Newton step against Sneddon + KGD/PKN analytics.

Today

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 upgrades, beta — opt-in Osher–Sethian Godunov upwind |∇φ| (`gradOperator: "godunov"` on `tipPropagationStep`), Garagash–Detournay viscous–toughness MK universal asymptote (`tipModel: "mk-universal"` on `frontMotionStep`, Dontsov–Peirce 2017 max-of-asymptotes blend of K-vertex Charles and M-vertex viscous V_M = (E'/μ')·(w/(β_m·s^{2/3}))^3), Sussman-Smereka-Osher 1994 level-set reinitialization (`reinitializeLevelSet` — fictitious-time march of φ_τ + sign(φ₀)·(|∇φ|−1) = 0 with smoothed sign S_ε(φ) = φ/√(φ²+ε²) and Engquist-Osher upwind branch select, optional narrow band) so repeated propagation steps stay near-SDF, AND auto-call reinit between front-motion steps in the live Newton loop via opt-in `reinit: { iterations, dtau, bandWidth }` on `frontMotionStep` (forwards verbatim to `reinitializeLevelSet`, surfaces `reinitMeanGradNorm` on the result, off by default so Phase 4.5 callers stay byte-identical); all four flags off by default so Phase 4.5 callers stay byte-identical + Phase 7 inc 15 — same `reinit: { iterations, dtau, bandWidth }` option now wired through the `kgdMovingTipRunner` MK moving-tip wrapper around `coupledNewtonStep` (1-D-extruded SDF φ(x, y) = activeHalfLenEnd − |x| fed verbatim to `reinitializeLevelSet`, surfaces `reinitMeanGradNorm` on each `KgdMovingTipDiagnostic`, drives the next step's front-conforming warm-start truncation via φ_reinit ≤ 0); on the 1-D KGD problem the reinit'd SDF zero-set coincides cell-for-cell with the legacy `|x|` truncation, so wellbore-cell widths are byte-identical to `mkTipFeedback: true` (rms ≈ 0.106 / 0.125 bun-vs-vitest), and reinit `iterations: 8` is now baked into the default `kgd-width` registry runner so the live-kernel rms drops from ≈0.1251 → ≈0.1063 vs the pre-Phase-7-inc-15 baseline (Δ ≈ 0.019 log-units, |∇φ| → 1.0005), AUTO-TIGHTENING the registry `toleranceLog` from 0.13 → 0.115 (≈0.0087 log-units of headroom, above the established ≥0.005 floor); the `runnerImpl: "newton-kernel"` override path keeps its own 0.13 ceiling because the fixed-tip Newton runner does NOT consume reinit; the wired option matches `frontMotionStep`'s API and gives 2-D extensions a drop-in front-tracking SDF + Phase 8 — fully-planar 3D propagation: `propagatePlanar3D` in `src/lib/planar3DPropagation.ts` extends `solveImplicitHeight` with a TRUE per-bench KGD-style aperture profile w_max(layer) = 2·max(0, p − σ_h_layer)·H/E′_layer (no E′_eff homogenisation), elliptic-prism cross-section A_xs = Σ (π/4)·w_max·t_contained, and leakoff-free volume-balance length L = q·t/(2·A_xs). Drift-guard `planar3DPropagation.test.ts` (8 tests: mass-balance, layered-pay aperture dominance, q-linear length, p-monotone height/width, containment exclusion, input validation) + benchmark suite `planar3DBenchmarks.ts` cross-checks per-bench Sneddon analytic + height-time growth (`planar3DBenchmarks.test.ts`, 4 tests). Comparator panel `Planar3DComparatorPanel` mounted at `/planar3d-validation`

Roadmap

All self-contained kernel items closed; remaining work is field validation against site DFITs and offset history (shared with proppant-transport row). Field-validation ingest path shipped @ Phase 7 inc 22 — `/projects/$p/workspaces/$w/field-validation` lets teams upload measured (t, P, T) gauge logs or (MD, P, T) gradient surveys and attach DFIT registry residuals + Pressure Advisor cross-checks; verdicts persist to `field_validation_campaigns` (team RLS) so kernel residuals can be challenged on real data without code changes. **Field-validation ingest UI wired end-to-end** — `FieldValidationReviewCard` (per-well status rollup + expandable rejected-row table with rejection reasons) mounted on the `/field-validation` route, and `src/lib/m2BarrierArrestIngest.ts` projects M2 barrier-arrest verdicts (per-probe K_I / K_Ic / containment gates / stepover affinity, summary rollup) onto the shared `VerdictExtras` object so the campaign flows through the existing `computeVerdict` pipeline without new schema. Drift-guards: `m2BarrierArrestIngest.test.ts` (9) + `fieldValidationReview.test.ts` (9). **Moat M2 (per-bench K_Ic barrier arrest) primitive + kernel wiring LIVE** — pure `src/lib/planar3d/perBenchBarrierArrest.ts` Tier-2 primer + opt-in `barrierPolicy` field on `tipPropagationStep` that gates per-active-tip V_n against the per-bench K_Ic barrier. Undefined ≡ byte-identical legacy propagation. Drift-guards: `perBenchBarrierArrest.test.ts` (19) + `tipPropagationBarrierPolicy.test.ts` (3).

Shipping history
  1. Phase 4.5
    shipped

    n 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 upgrades, beta — opt-in Osher–Sethian Godunov upwind |∇φ| (`gradOp…

  2. Phase 7 inc 1
    shipped

    _n into the level-set tip propagator) + Phase 7 inc 1–5 tip-kernel upgrades, beta — opt-in Osher–Sethian Godunov upwind |∇φ| (`gradOperator: "godunov"` on `tipPropagationStep`), Garagash–Detournay viscous–toughness MK universal asymptote (…

  3. Phase 7 inc 15
    shipped

    Phase 4.5 callers stay byte-identical + Phase 7 inc 15 — same `reinit: { iterations, dtau, bandWidth }` option now wired through the `kgdMovingTipRunner` MK moving-tip wrapper around `coupledNewtonStep` (1-D-extruded SDF φ(x, y) = activeHa…

  4. Phase 8
    shipped

    tensions a drop-in front-tracking SDF + Phase 8 — fully-planar 3D propagation: `propagatePlanar3D` in `src/lib/planar3DPropagation.ts` extends `solveImplicitHeight` with a TRUE per-bench KGD-style aperture profile w_max(layer) = 2·max(0, p…

  5. Phase 7 inc 22
    planned

    Field-validation ingest path shipped @ Phase 7 inc 22 — `/projects/$p/workspaces/$w/field-validation` lets teams upload measured (t, P, T) gauge logs or (MD, P, T) gradient surveys and attach DFIT registry residuals + Pressure Advisor cros…

Validation
RMSE
0.11 log-units (KGD width @ wellbore)
n = 3 · DFIT registry kgd-width / pkn-length / carter-falloff, live-kernel path
Valid when
Closure stress4 – 12 kpsi
Treating pressurep > σ_h_min (vertical mode)
WindowPre-screenout pumping + post-closure ≤ 100 s
Failure modes
  • 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)
Basins:
Synthetic Sneddon / KGD / PKN benchmarks
Last reviewed 2026-06-01