Wellbore Genius
Help

Perforation erosion & clearance

shipped
Analytical
Research
id: perf-erosion-clearance

Research-grade — validation in progress.

Today

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). Per-cluster evolution surfaces on the `/live-pumping` `LiveErosionPanel` and in the `PerfClusterDesignerCard` EOJ projection subcard. Δp_friction half of the live wiring lives in `computeWellborePressureLive.ts` (splices `equivalentPerfDpFromErodedClusters` into `FlowSpec.perfs.precomputedDpPsi`, drift-guarded by `computeWellborePressureLive.test.ts` + `liveErodedPerfDp.test.ts`). **Phase 8 perf-erosion promotion — bottomhole-concentration feedback** via the new pure helper `src/lib/wellbore/wellboreErosionFeedback.ts` (`computeWellboreErosionFeedback` + `applyErosionFeedbackToPreview`): walks the live `ActualSample[]` through the same §8.12 evolution to emit a per-frame `{ areaScale, cdScale, imbalance, carryEfficiency, dpPerfPsi }` series and rescales `bottomPpa` while preserving `bottomPpaLegacy`. **Phase 8 perf-erosion-clearance PROMOTION to in-Newton wiring** via `src/lib/planar3d/newtonPerfErosionCoupling.ts` (`NewtonPerfErosionCoupling` + `subStepPerfErosion` + `seedPerfErosionStates` + `perfErosionDpPsiToPa`) and the new opt-in `perfErosionCoupling` field on `coupledNewtonStep`: once per accepted Newton iterate the per-cluster Du/Ds/Dd/Cd is advanced by a single forward-Euler substep of length `dtSec / maxIter` using the CURRENT kernel injection rate (wellbore bottom-face rate when `wellboreCoupling.twoWay: true`, otherwise the prescribed `injectionRateM3PerS`). When BOTH `wellboreCoupling` and `perfErosionCoupling` are supplied, the Newton loop splices the eroded Δp_perf into the wellbore substep's bottomhole Dirichlet BC as `p_wf = p_frac + Δp_perf(erosion)` so the wellbore solver sees the higher pressure the pump must overcome to push slurry through eroded perfs. Result surfaces `perfErosionStates` / `perfErosionDpPsi` / `perfErosionCarryEfficiency` / `perfErosionAreaScale` (null / 0 / 1 / 1 when uncoupled — byte-identical to legacy). Drift-guards: `wellboreErosionFeedback.test.ts` (7) + `coupledStepPerfErosion.test.ts` (4 — default-off neutral surface, zero-rate pass-through, pump+proppant growth, wellbore BHP splice raises BHP vs erosion-off).

Roadmap

Phase 8 perf-erosion-clearance promotion CLOSED end-to-end — Δp_friction (via `computeWellborePressureLive` + `FlowSpec.perfs.precomputedDpPsi`), bottomhole concentration (via `wellboreErosionFeedback.applyErosionFeedbackToPreview`), AND the in-Newton wellbore BHP splice (via `perfErosionCoupling` on `coupledNewtonStep`) all respond to the time-varying Du/Ds/Dd/Cd field during pumping. Remaining work is field validation against post-job gauge-log Δp_perf trends — shared with the `/projects/$p/workspaces/$w/field-validation` ingest path.

Shipping history
  1. Phase 8
    shipped

    st.ts` + `liveErodedPerfDp.test.ts`). **Phase 8 perf-erosion promotion — bottomhole-concentration feedback** via the new pure helper `src/lib/wellbore/wellboreErosionFeedback.ts` (`computeWellboreErosionFeedback` + `applyErosionFeedbackToP…

  2. Phase 8
    planned

    Phase 8 perf-erosion-clearance promotion CLOSED end-to-end — Δp_friction (via `computeWellborePressureLive` + `FlowSpec.perfs.precomputedDpPsi`), bottomhole concentration (via `wellboreErosionFeedback.applyE

Validation
Failure modes
  • No published error band yet — use with engineering judgment.
Last reviewed 2026-06-01