PL3D Fracture-Validation Comparator
Visually compare the fully-planar 3D propagation model's predicted aperture and height-vs-time curves against analytic reference benchmarks.
Visual + residual check of propagatePlanar3D() vs analytic Sneddon references. Picks aperture per bench and height-vs-time growth.
Single bench (PKN-like) — Thick homogeneous pay, no barriers — collapses to PKN-style growth. Source: Analytical Sneddon plane-strain (this lib).
——Aperture w_max [in] vs depth [ft TVD]
Residual Δw_max [in] vs depth [ft TVD] — NP3D − PL3D
Height H [ft] vs time t [min]
| Curve | N | MAE | RMSE | |max| | bias | R² |
|---|---|---|---|---|---|---|
| Aperture [in] | 1 | 0.00000 | 0.00000 | 0.00000 | 0.00000 | 1.0000 |
| Height [ft] | 25 | 341.628 | 428.084 | 1000.000 | 341.628 | -1.7538 |
Δ taken relative to the final (t = t_max) step — shows how each geometric output converges over pump time. 12 steps.
Combined benchmark summary
Pick any subset of shipped benchmarks. Each row reports headline residuals plus the single worst-layer aperture mismatch (depth, |Δ|, relative).
| Benchmark | H [ft] | L [ft] | Ap MAE [in] | Ap RMSE [in] | Ap R² | H MAE [ft] | H R² | Worst TVD [ft] | Worst |Δw| [in] | Worst |Δw|/ref |
|---|---|---|---|---|---|---|---|---|---|---|
| Single bench (PKN-like) | 1000.0 | 128.7 | 0.00000 | 0.00000 | 1.0000 | 341.628 | -1.7538 | — | 0.00000 | — |
Results scoreboard: planar-3D vs PKN · KGD · Radial
PL3D is the reference (rank 1, by definition). Classic closed-forms run on the SAME equivalent (q, E', μ, h) reduction and are ranked by |ΔL| vs PL3D.
| Rank | Model | L (or R) [ft] | w_w [in] | p_net [psi] | |ΔL| [ft] | Δ% | Δ% bar |
|---|---|---|---|---|---|---|---|
| 1 | PL3D (live) reference | 128.7 | 6.0000 | — | 0.0 | 0.0% | |
| 2 | PKN closest | 526.6 | 0.2848 | 88 | 397.9 | 309.2% | |
| 3 | Radial | 530.7 | 0.2493 | 23 | 402.1 | 312.5% | |
| 4 | KGD | 541.2 | 0.2850 | 44 | 412.5 | 320.6% |
Bars are normalized to the worst Δ% (relative error) in the current run, so the closest classic wins the visual race even at sub-percent residuals. Ranking key: Δ% (relative).
Per-layer σ_h influence on PL3D vs PKN · KGD · Radial gap
For each σ_h layer we replace its stress with the contained-thickness-weighted mean of the OTHER layers (E' fixed), re-run PL3D, and report how much the |L_PL3D − L_classic| gap shrinks. Positive Δ% means the layer drives the discrepancy; negative means it masks an even larger gap.
| Layer | Top TVD [ft] | h [ft] | σ_h [psi] | σ_h flat [psi] | L_PL3D' [ft] | Δgap PKN [ft] (Δ%) | Δgap KGD [ft] (Δ%) | Δgap Radial [ft] (Δ%) |
|---|---|---|---|---|---|---|---|---|
| 1 | 9000.0 | 200.0 | 6000 | 6000 | 128.7 | 0.0 (0%) | 0.0 (0%) | 0.0 (0%) |
Baseline L_PL3D = 128.7 ft · L_PKN = 526.6 ft · L_KGD = 541.2 ft · L_Radial = 530.7 ft. Rows sorted by Σ |Δgap|.
Non-planar 3D (M4) vs PL3D benchmark comparison
Drives runNonPlanar3DPipeline on the same benchmark and reports ΔL / ΔH / Δw_max vs PL3D, plus M4 totals (branched / welded / max tilt).
Planar-3D assumptions & notes (click to expand)
Aperture kernel. Per-bench plane-strain Sneddon: w_max(L) = 2·max(0, p − σ_h,L)·H / E'_L, with H solved implicitly from K_I = K_IC at the top/bottom tips using the Tada/Sneddon piecewise-constant kernel [1, 5].
Vertical profile. Upper-half-ellipse aperture across each contained bench, integrated as A_xs = Σ (π/4)·w_max(L)·t_L. Two symmetric wings about the wellbore.
Length growth. Leakoff-free volume balance L(t) = q·t / (2·A_xs); Carter leakoff is stubbed off in v1, so PL3D vs PKN/KGD/Radial residuals isolate the layered-σ_h upgrade [6].
Classic baselines. PKN [2] and KGD [3] reduce the layered stack to a single equivalent (q, E', μ, h) tuple (badges above); Radial [4] ignores the contained-height constraint. Single-bench PL3D collapses byte-identically to PKN — drift-guarded in planar3DBenchmarks.test.ts.
Out of scope (v1). Proppant transport, fluid-lag tip region, poroelastic back-stress, and time-varying μ. See /solver-spec §11 for the full inputs / assumptions / limits matrix.