Skip to content

feat(network): qualify field-scale injection topology - #4279

Merged
EvenSol merged 1 commit into
masterfrom
feat/4228-field-scale-qualification
Oct 9, 2026
Merged

EvenSol merged 1 commit into
masterfrom
feat/4228-field-scale-qualification

Conversation

@EvenSol

@EvenSol EvenSol commented Oct 9, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Advances #4228 after merged #4276 with the next dependency-ready canonical-topology increment.

  • adds typed FieldNetworkTopology builders for chokes, fixed-outlet and differential-pressure pumps, and compressors
  • preserves the existing LoopedPipeNetwork as the single pressure/flow graph and delegates to its existing equations
  • assigns stable field/equipment identity, service, flow direction, and named ports on the same canonical edge
  • validates semantic metadata before hydraulic mutation, so invalid definitions cannot leave a half-created edge
  • preserves serializable element type/settings across topology JSON replay
  • adds representative production and injection acceptance cases without hard-coding hydraulics into the topology

No parallel topology, solver, well model, pump model, compressor model, or hydraulic abstraction is introduced.

Field-scale acceptance evidence

  • Production: 12 wells across three daisy-chained templates, a brownfield satellite tie-in, PLEM, PLET, and host riser; differing compatible source fluids; mixed Darcy, Beggs–Brill, and two-fluid edges on one topology; conservative mixing, mass conservation, and replayed operating point
  • Water injection: 6 kg/s through a fixed-outlet pump to a 160 bara shared header, split to three 2 kg/s deeper injectors; verifies pump power and the expected hydrostatic pressure gain below the header
  • CO2-rich gas injection: explicit 180 bara compressor-discharge boundary feeding a 3 kg/s shared header and two 1.5 kg/s injectors
  • Scale: 50 wells across five templates completed in approximately 3.0 s locally, guarded by a broad 60 s CI limit

The CO2 fixture deliberately starts at a compressor-discharge boundary. The generic compressor builder is identity/replay-tested, but this PR does not qualify a compressor train, compressor map, dense-phase CO2 compression, pump map, reservoir injectivity, or field-specific operating envelope.

Validation

Validated locally on tree 64d4dd6f835bd5d97b0de5665edbe7389b304588, remote commit e46a8d1db09bb9b02c79c4a8051e20e234695965, based directly on master ffde2f43443ae65d57d02497e31fefb71b637555:

  • focused and adjacent network portfolio: 39 tests, 0 failures, 0 errors, 0 skips
  • 12-well mixed-fidelity/replay case: approximately 15.2 s in the focused run
  • 50-well scale case: approximately 3.0 s
  • Spotless apply/check
  • Checkstyle
  • PMD
  • documentation search: 787 Markdown pages and 1 standalone HTML page
  • engineering coverage regeneration and --check
  • agent-skill references (one unrelated orphan-skill warning)
  • skill API references
  • git diff --check

Local Javadoc could not run because this runner provides a Java 17 JRE but no javac or javadoc executable. The pre-commit executable is also unavailable; the mandatory direct gates above were run. Exact-head hosted CI remains authoritative.

VALIDATION PENDING EXACT-HEAD CI — KEEP DRAFT.

Coordination and scope boundary

Next dependency

Connect this field-scale topology to live multi-template production/injection WellSystem/WellFlow cases with qualified pump/compressor maps, shared host power/capacity, controlled reservoir pressure, and branch/loop outage and brownfield-impact scenarios coordinated with #4275/#4188/#3154. Then map the same geometry/equipment into SubseaProductionSystem SURF design/cost and optimization.

Five-of-ten exact-head coordination — 2026-10-09

Exact head e46a8d1db09bb9b02c79c4a8051e20e234695965 remains open, draft, mergeable, review-free, and thread-free. Eight auxiliary workflow groups pass; Build/Test/Javadoc has 13/14 successful jobs with Java 8 Windows active. Keep draft pending completion of the exact-head matrix and independent engineering/domain review.

Current master is ea7d61ac1cbfc4b25689a4e81406a7bef248ae64 after merged #4272. Positively identified autonomous implementation occupancy is 5/10: #4274, #4275, #4277, #4279, and #4280. Ten remains both target and absolute global ceiling.

Package 3 for #3153 remains unaccepted and unstarted because #4275, #4277, #4279, and #4280 own src/main/resources/neqsim/mcp/engineering-coverage.json; this PR and #4275 also overlap in the SURF guide. No campaign source mutation, workflow retry, rebase, synchronization, force-push, replacement, closure, merge, readiness transition, or peer-head mutation was performed.

Single failed-job retry — 2026-10-09

The initial Java 8 Windows job completed with one failure in FieldToFacilityOptimizationAcceptanceTest.evaluatesReversibleMultiWellFieldToFacilityEnvelope: a fail-closed optimizer constraint verdict after the candidate values and reverse-order restoration matched exactly and the baseline reconverged. This PR does not change that optimizer test, ProcessAutomation, or the field-to-facility acceptance implementation; the other 13 jobs passed.

A single failed-job-only retry was requested for workflow run 37897335811 after re-verifying unchanged exact head e46a8d1db09bb9b02c79c4a8051e20e234695965. The replacement Java 8 Windows job is queued. No source, head, base, branch history, full-workflow rerun, rebase, synchronization, readiness state, or peer PR was changed.

Isolated retry completion and portfolio rotation — 2026-10-09

The failed-job-only retry of Java 8 Windows completed successfully on unchanged exact head e46a8d1db09bb9b02c79c4a8051e20e234695965. All nine workflow groups and the 14/14 build/test/Javadoc matrix now pass. The PR remains open and draft with no reviews or unresolved threads. GitHub reports it non-mergeable against advanced master; preserve the exact head and defer integration to maintainers.

#4275 merged as current master 8d52025524c0df5f47dae13838648db8025787ec. Positively identified autonomous implementation occupancy remains 5/10: #4274, #4277, #4279, #4280, and #4282. Ten remains both target and absolute global ceiling.

Package 3 for #3153 remains unaccepted and unstarted because #4277, #4279, #4280, and #4282 own src/main/resources/neqsim/mcp/engineering-coverage.json. No source, head, base, branch history, full-workflow rerun, rebase, synchronization, readiness transition, merge, closure, or peer-head mutation was performed.

Mergeability recalculation — 2026-10-09

GitHub's final recalculation now reports this unchanged exact head mergeable against current master 8d52025524c0df5f47dae13838648db8025787ec. This supersedes the transient non-mergeable statement above. The PR remains open and draft; no head, base, source, workflow, rebase, synchronization, readiness state, or peer PR changed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant