Repository navigation
Description
Purpose
Persistent roadmap for NeqSim's standard two-phase TPflash and multiphase TPmultiflash work. This issue is the durable campaign ledger: scope, frozen acceptance gates, completed increments, evidence, blockers, and the next dependency-ready hypothesis. Maintain at most one active implementation PR for this campaign.
Owned scope
- phase-stability testing and stable phase selection;
- phase appearance, disappearance, and tiny-phase handling;
- multiphase phase-fraction/equilibrium solution;
- initialization, continuation, retry, and fallback behavior;
- material-balance and equilibrium-residual diagnostics;
- flash-specific performance that preserves the accepted numerical path.
Coordinate instead of overlapping when Column Solver or Process Performance work touches shared thermodynamic-state initialization, caching, or flash call sites. Process-wide caching, column equations, and equipment solvers are excluded unless a minimal flash-owned interface change is agreed first.
Frozen campaign gates
Every implementation increment must freeze its case set and tolerances before editing and must retain a minimal deterministic reproducer.
- Component and total material balance: case-specific absolute/relative checks, with an ordinary-case target no weaker than
1e-10. - Phase fractions: finite, each in
[0,1], and normalized within1e-12. - Phase compositions: finite, non-negative within numerical noise, and normalized within
1e-12. - Equilibrium: maximum interphase log-fugacity residual no weaker than
1e-8for components present in the compared equilibrium phases; tighter baselines stay tighter. - Stability: returned topology must be the lowest defensible stable state found by the applicable stability test; do not accept a converged but unstable endpoint.
- Cross-algorithm consistency: for stable one- and two-phase states,
TPflashandTPmultiflashmust agree on phase topology, fractions, compositions, and properties within frozen per-case tolerances (normally1e-10for fractions/compositions and1e-8relative for derived properties). - Repeatability: repeated identical flashes must be deterministic; changed T/P/composition and nearby-state sweeps must not inherit stale solver state.
- Diagnostics: non-convergence and rejected phase trials must remain observable; no silent tolerance relaxation or hidden fallback.
- Performance: fixed environment, warmed deterministic inputs, alternating baseline/candidate order, solver-work counts where accessible, and multiple paired runs. Report complete-flash data even when a kernel benchmark is the only significant result.
The reproducible matrix must cover hydrocarbon gas/oil, water and hydrocarbon-water, CO2-rich, H2-rich, polar/associating CPA, electrolyte where the supported API permits, near-critical/phase-boundary, difficult K-value and large-volatility-contrast, trace-component/tiny-phase, one-/two-/three-phase, repeated-run, changed-state, and poor-initial-guess cases across applicable PR, SRK, CPA, and mixing rules.
Evidence basis
Method selection should be grounded in public evidence, distinguishing published method from NeqSim-specific inference. Core references:
- Michelsen, The isothermal flash problem. Part I. Stability and Part II. Phase-split calculation, Fluid Phase Equilibria 9 (1982), https://doi.org/10.1016/0378-3812(82)85001-2 and https://doi.org/10.1016/0378-3812(82)85002-4.
- Okuno, Johns, and Sepehrnoori, A New Algorithm for Rachford-Rice for Multiphase Compositional Simulation, SPE Journal 15 (2010), https://doi.org/10.2118/117752-PA.
Commercial-simulator material may be used only for publicly documented behavior or benchmarks; do not infer proprietary algorithms.
Completed ledger
2026-08-11 — compatible multiphase beta-objective cache
Merged #2930 as master commit c1cde6a1c47f from exact head 7eef7e1ca9c3849c36b2ecc732e6b38ac4116a42.
Verified evidence:
- retained the original floating-point operation order after an algebraically equivalent reciprocal cache caused two independent system regressions;
- 71/71 focused and adjacent tests passed, including the two exact system regressions;
- standard-vs-multiphase one/two-phase checksum difference
0.0; repeat checksum difference0.0; - three-phase max component-balance residual
6.36e-15, composition-normalization residual1.11e-16, and log-fugacity residual1.05e-13; - paired kernel medians improved 40.01% (2-component PR, 7/7 wins) and 25.59% (11-component SRK-CPA, 6/7 wins);
- complete three-phase flash changed only 0.47% with 2/7 wins, so no statistically robust end-to-end speedup was claimed;
- Spotless apply/check, documentation search, pre-commit, and pre-push gates passed.
- Documentation impact: none; private lookup optimization, unchanged equations, API, configuration, tolerances, and user-visible behavior.
2026-08-11 — reciprocal aqueous cross-algorithm fallback
Merged #2949 as master commit 9ac96819480d from exact head 541dce0fb751c45b0800202419fb1a7e7bdf74b4.
Verified evidence:
- rejected a deterministic PR-EOS GAS+AQUEOUS multiphase endpoint with log-fugacity residual
0.107605486827and Gibbs energy4611.366932614616 J; - selected the independently feasible lower-Gibbs endpoint with gas beta
0.9078491997365364, maximum component-balance residual1.109e-13, maximum log-fugacity residual1.356e-12, and Gibbs energy4401.583736753728 J; - preserved genuine OIL+AQUEOUS endpoints, chemical/electrolyte, solid/wax, and three-phase paths;
- covered poor beta, repeat execution, changed T/P, nearby-state continuity, bounded/normalized phase state, properties, balance and fugacity;
- all exact-head Java 8/21 Ubuntu/Windows fast suites, four slow shards, Javadocs, Spotless, pre-commit, documentation, CodeQL and PaperLab workflows passed;
- final diff was limited to
TPflash.java, its focused regression, and the TP-flash algorithm guide; - Documentation impact: Javadocs and
docs/thermodynamicoperations/TPflash_algorithm.mdupdated.
2026-08-12 — seeded water-rich phase-set recovery
Merged #2971 as master commit 879eeded8013 from exact head 6f4c61f1f29df41064e5e058ef1845c34b003682.
Verified evidence:
- repaired the deterministic classic-SRK 220 K/200 bara invalid OIL+OIL and collapsed one-OIL endpoints through both public paths;
- selected OIL+AQUEOUS with oil beta
0.90777480823834, maximum component-balance residual7.40e-14, maximum log-fugacity residual3.08e-13, and Gibbs energy1925.79587972 J; - standard and multiphase phase fractions/compositions agree within
1e-10, with deterministic repeat and nearby-state continuity; - the 828-comparison PR/SRK/CPA screen reduced disagreements from three to two and introduced none;
- exact-head Java 8/21 Ubuntu/Windows fast suites, all four slow shards, Javadocs, Spotless, pre-commit, documentation search, CodeQL, and PaperLab passed;
- final diff was limited to
TPflash.java, its focused regression, and the TP-flash algorithm guide; - Documentation impact: private-method Javadocs and
docs/thermodynamicoperations/TPflash_algorithm.mdupdated.
2026-08-13 — lower-Gibbs multiphase aqueous cubic-root refinement
Merged #2988 as master commit e0cb19cf1b1c from exact head 18dd49db721e682ee8196ab10b880975257e9d8e.
Verified evidence:
- reproduced neutral classic-SRK GAS+AQUEOUS endpoints at 260 K/100 bara that were both balanced and fugacity-equilibrated but used different cubic gas roots;
- replaced the multiphase gas Z
0.624988191317194, beta0.907824428129310, Gibbs4678.419740194126 Jendpoint with the ordinary lower-Gibbs root: Z0.301266657120460, beta0.907958440381479, Gibbs4446.598527443467 J; - after the guarded refinement, maximum component-balance residual was
6.16e-14and maximum log-fugacity residual was7.23e-13; - baseline focused suite passed 2/4 while patched passed 4/4, including exact, nearby-state continuation, PR control, deterministic repeat, and genuine three-phase exclusion;
- exactly GAS+AQUEOUS, neutral chemistry, strict feasibility/equilibrium, lower alternate root, and lower total-Gibbs gates prevent work on ordinary, one-phase, non-aqueous, three-phase, chemical/electrolyte, solid, and wax paths;
- exact-head Java 8/21 Ubuntu/Windows fast suites, all four slow shards, Javadocs, Spotless, pre-commit, documentation search, CodeQL, and PaperLab passed;
- Documentation impact: none; the change is a private numerical safeguard with complete private-method Javadocs and no API, configuration, unit, or usage change.
2026-08-14 — sour-gas endpoint consistency and phase-map repair
Merged #2990 as master commit 6e0464555bb7 from exact head 0e2856b73720a99ab5a995bd3871c30da79154cb.
Verified evidence:
- fresh PR/classic 81 × 101 map covered 8,181 states, including 824 genuine three-phase cells;
- applicable one-/two-phase agreement reached 7,346/7,357 (99.85%) with zero invalid multiphase endpoints;
- 80/80 focused and cross-algorithm tests passed;
- all exact-head Java 8/21 fast suites, four slow shards, Javadocs, Spotless, pre-commit, documentation search, CodeQL and PaperLab passed after two unchanged-head infrastructure/flaky reruns;
- no reviews, comments, requested changes or unresolved threads remained;
- Documentation impact: none; private endpoint safeguards and regression coverage only.
2026-08-14 — cold-feed sour-gas boundary recovery
Merged #3006 as master commit ab51f4b652d8 from exact head ef6cc975073d5fa0066a0f534c72c25d73e26509.
Verified evidence:
- repaired the 245 K/100.8 bara ordinary one-phase endpoint by normalizing the feed-composition Gibbs reference and retaining a cold pre-iteration seed;
- selected GAS+OIL with gas beta
0.330402477242444, Gibbs5204.65719950532 J, maximum balance residual6.25e-12, and maximum log-fugacity residual2.26e-9; - reduced Gibbs energy by
0.676595849896 Jrelative to the rejected ordinary endpoint; - exact and nearby-state ordinary/multiphase agreement, deterministic repeat, and focused 3/3 methods passed locally;
- exact-head Java build/test/Javadocs, CodeQL, Spotless, pre-commit, PaperLab, and documentation-search coverage all passed;
- no reviews, requested changes, comments, or unresolved threads remained;
- Documentation impact: none; private numerical safeguard with updated private Javadocs and no public contract change.
2026-08-15 — accepted cubic-root tie preservation
Merged #3015 as master commit dc3d907586a8 from exact head 5ee060f7190b22b0d3378b5c8c744a8d8504e17c.
Verified evidence:
- repaired the final applicable phase-class disagreement in the frozen 8,181-state PR/classic methane/CO2/H2S map at 225 K/95.81 bara;
- replaced the invalid ordinary GAS+OIL endpoint (Gibbs
4432.027120977371 J, log-fugacity residual1.1275360745622436) with the equilibrated OIL+OIL endpoint (Gibbs3877.865927361861 J); - corrected endpoint has beta
0.572813112145268 / 0.427186887854732, maximum component-balance residual2.42e-11, and maximum log-fugacity residual9.52e-9; - full fresh-state map reached 7,357/7,357 applicable one-/two-phase phase-class agreement; invalid ordinary endpoints fell 15 → 4, all four being two-phase projections inside the genuine 824-cell three-phase domain;
- focused 4/4 tests covered the exact state, three nearby states, changed pressure on the same object, and deterministic repeat;
- all exact-head Java 21 Ubuntu/Windows fast suites, four Java 21 slow shards, Java 8 Ubuntu/Windows suites, Javadocs, Spotless, pre-commit/documentation search, CodeQL, and PaperLab passed;
- no reviews, requested changes, or unresolved review threads remained;
- target timing changed +1.27%, treated as measurement noise; correctness only, with no speed claim;
- Documentation impact: none; private numerical tie-break and private Javadocs only, with no public API, configuration, unit, tolerance, or usage change.
Active increment
None. #3015 is merged and the frozen sour-gas map is complete for all applicable one-/two-phase phase-class comparisons.
Next dependency-ready hypothesis
- Rerun the broader frozen hydrocarbon, hydrocarbon-water, CO2-rich, H2-rich, CPA/polar, supported electrolyte, trace-component, large-volatility-contrast, and near-critical/phase-boundary matrix on master
dc3d907586a895dbac15db85643f4496be1645e9. - Rank only deterministic, applicable one-/two-phase discrepancies by feasibility, Gibbs-energy gap, residual severity, affected case breadth, and solver work; retain the smallest exact reproducer before selecting the next tranche.
- Include fresh, repeated, changed-state, poor-initial-guess, phase appearance/disappearance, tiny-phase, and nearby-state paths for any selected defect.
- Keep the four ordinary two-phase projections inside the genuine three-phase domain classified as a method limitation, not an applicable consistency defect.
- The rejected global convergence-tolerance experiment remains closed: it increased 1,100-flash work by 8.52% for negligible residual benefit.
Activity
EvenSol commentedon Aug 11, 2026
2026-08-11 run ledger — pre-composition init removal rejected
Authoritative master at selection:
c1cde6a1c47f34664c71ccab1ab2c53d85313860. No open TP-flash implementation PR was found.Frozen stop/go experiment
Hypothesis: in
TPmultiflash.solveBeta(), the firstsystem.init(1)after changing phase fractions might be redundant because the previous iteration has already initialized fugacity coefficients at the current phase compositions. The candidate removed only that call;calcE(),setXY(), and the post-compositionsystem.init(1)were unchanged.Pre-edit screen:
1e-12;1e-10;1e-8;Cases: PR methane/n-heptane; PR wet 11-component gas; 11-component SRK-CPA/mixing-rule-10; CO2/H2S-rich PR; H2-rich PR. This targeted stop/go subset exercised hydrocarbon, aqueous, associating, CO2-rich, H2-rich, changed beta, poor initialization, and two-phase states. The merged #2930 matrix remains the broader campaign baseline for one-/two-/three-phase and cross-algorithm coverage.
Evidence
The CO2-rich case fails both frozen equilibrium and material-balance gates by multiple orders of magnitude. Changing beta alone also changed recomputed fugacity coefficients, dramatically in the wet PR case, so the first initialization is not generally redundant. Timing was fork/order-noisy and is intentionally not used as a performance claim after the numerical gate failed.
The screen used the exact current-master
TPflash.javaandTPmultiflash.javasources compiled ahead of the installed NeqSim 3.17.0 runtime jar. It is strong enough to expose a backward-compatible numerical defect, but not sufficient evidence to publish a master PR; a full exact-master checkout/test suite remains mandatory for any accepted change.Decision
Rejected. No source branch or PR created. The candidate is not safe and must not be retried by relaxing tolerances.
Documentation impact: none — no repository behavior or API changed.
Next dependency
Retain both beta-loop initializations. On a full exact-master checkout, add temporary measurement-only counters/timers around:
init(1, 1)calls;Profile the complete frozen matrix and rank by complete-flash wall time plus call count. Only select a cache/reuse boundary if state identity can be proven across T/P/composition/phase-count changes; otherwise record the work distribution and move on without a speculative PR.
EvenSol commentedon Aug 11, 2026
Portfolio-scan clarification
The prior sentence “No open TP-flash implementation PR was found” means no current campaign-owned TP-flash PR. Repository-wide search also found these older open branches:
TPmultiflash.javaand its tests; last updated 2026-06-22, currently not mergeable, based ond128a147.... Treat the beta linear-solver/backend area as an explicit coordination boundary and recheck this PR before any future edit.TPmultiflash.java; last updated 2026-04-05, currently not mergeable.TPflash.javaupdate: last updated 2025-07-18, currently not mergeable.No campaign PR was opened, so the one-active-PR campaign limit remains clear.
EvenSol commentedon Aug 12, 2026
2026-08-12 run ledger — #2949 merged; SRK seeded-refinement hypothesis frozen
Authoritative master:
38ff94fc3155.Completed increment
#2949 merged as
9ac96819480dfrom exact head541dce0fb751c45b0800202419fb1a7e7bdf74b4. All exact-head Java 8/21 fast suites, four slow shards, Javadocs, Spotless, pre-commit, documentation, CodeQL and PaperLab workflows passed. The final three-file diff included the implementation, focused regression and TP-flash algorithm documentation.Next defect reproduced and narrowed
Classic SRK, 220 K/200 bara, feed
CO2/methane/ethane/water = 0.543865141103918/0.2937712952303271/0.07010605470616459/0.09225750895959021:The seeded result repeated bit-for-bit in the measured beta and is both feasible and lower-Gibbs. Exact current-source inspection shows the existing ordinary-to-multiphase rescue instead launches a cold full TPflash; that candidate collapses to one phase and fails the exactly-two-phase acceptance gate.
A deterministic 25-state 210–230 K/150–250 bara sweep established the guard boundary:
Frozen implementation direction: run the seeded phase-set refinement only for an already-invalid neutral water-rich ordinary two-phase endpoint; use
TPmultiflash(system, checkForSolids)so work arrays are initialized; accept only through the existing exactly-two-phase, bounded/normalized composition, material-balance, fugacity, distinct-composition and lower-Gibbs gates; otherwise retain the cold fallback and original state. No tolerance changes.The direct refinement experiment used packaged NeqSim 3.17.0, while the source-path diagnosis used authoritative current master. Exact-master compilation and the full focused/nearby-state/cross-algorithm matrix remain mandatory before implementation.
Portfolio decision
No branch or PR opened. Autonomous implementation PRs #2957, #2959 and #2960 fill the three-PR portfolio limit. The roadmap body now records #2949 as completed and this hypothesis as the next dependency-ready tranche.
Documentation impact: none for this run — only the campaign roadmap was updated; repository behavior and user APIs were unchanged.
EvenSol commentedon Aug 12, 2026
2026-08-12 non-PR retry — implementation boundary refined without opening a branch
Per maintainer direction, this run deliberately advanced the campaign without creating or updating a PR.
Current source inspection at the authoritative campaign master snapshot
38ff94fc3155949a8d6830c83bc4452700aef7b8confirms the next SRK water-rich fix should be a new final bounded refinement adjacent to the existingrefineInvalidAqueousTwoPhaseEndpoint()/refineInvalidNeutralGasLiquidTwoPhaseEndpoint()calls, not a change to the ordinary TPflash iteration or toTPmultiflash.solveBeta()globally.Refined implementation contract
The candidate should run only when all of the following are true:
AQUEOUSphase exists;The trial should:
TPmultiflash(system, false)active-set path rather than a cold nested TPflash;This keeps the fix narrow: no relaxation of tolerances, no change to valid endpoints, no global phase-stability policy change, and no new behavior for chemical/electrolyte/solid/wax cases.
Why this is the correct insertion point
The current end-of-run sequence already performs strict post-convergence endpoint repair and then calls
refineInvalidAqueousTwoPhaseEndpoint()andrefineInvalidNeutralGasLiquidTwoPhaseEndpoint(). The aqueous refinement already demonstrates the required snapshot → boundedTPmultiflash.solveBeta()refinement → strict acceptance → full restore pattern. The remaining defect differs only in that water is present while the ordinary invalid endpoint is still typed OIL+OIL rather than OIL+AQUEOUS, so it currently never reaches the aqueous refinement.Frozen next validation matrix
Before any future code publication, require exact-master reproduction of the 220 K / 200 bara SRK case plus:
The previously measured packaged-runtime numbers remain hypothesis evidence only and are not promoted to exact-master validation.
No branch, source file, PR, merge state or campaign completion checkbox was changed in this run. The next implementation is now more tightly specified and ready to execute when publication capacity is intentionally made available.
EvenSol commentedon Aug 12, 2026
Active increment — seeded water-rich phase-set recovery
Draft PR #2971 advances the frozen SRK hypothesis from exact base
c8061c9d05022c501fc89d394be8da6d073a11fa; initial exact head is725ba77b17162d74f3e0d00c310b79ac3037a02c.Verified local evidence before publication:
2.03267843414and the collapsed one-OIL multiphase endpoint;0.90777480823834, component-balance residual at most7.40e-14, log-fugacity residual at most3.08e-13, and Gibbs energy1925.79587972 J;The broader scan rejected a seeded-first ordering because it introduced a gas/oil phase-label discrepancy at 300 K/200 bara. The PR therefore retains the current cold candidate first and uses the existing invalid phase compositions only after that candidate fails strict qualification.
VALIDATION PENDING CI. Initial exact-head workflows are queued/running; the PR is draft, mergeable, 3 commits ahead / 0 behind, with no reviews or unresolved threads yet.
EvenSol commentedon Aug 13, 2026
2026-08-13 run ledger — #2971 merged; two remaining differences isolated
Authoritative master:
7334454cb2e3.Completed increment
#2971 merged as
879eeded8013from exact head6f4c61f1f29df41064e5e058ef1845c34b003682. The roadmap's active-increment entry is therefore stale: there is currently no open #2937 PR.Portfolio decision
No implementation PR was opened. Autonomous drafts #2632, #2970, and #2978 fill the scheduled-campaign skill's stricter three-PR portfolio limit. This run remained measurement-only.
Remaining difference 1 — PR hydrocarbon final convergence
PR EOS, classic mixing rule, 320 K/200 bara, feed methane/ethane/propane/nC10 =
0.55/0.12/0.08/0.25:Both states are deterministic, balanced, and physically equivalent within the campaign's
1e-8fugacity gate, but beta differs by2.58457e-10, above the frozen1e-10cross-algorithm tolerance.A measurement-only exact-source candidate changed only the ordinary TPflash outer convergence criterion from
deviation > 1e-10todeviation > 1e-12. It:6.04e-14;1e-10only from 44 to 42;Decision: reject a global tolerance change. It removes a harmless numerical delta at disproportionate matrix-wide solver-work cost and conflicts with the campaign requirement not to hide differences by tolerance tuning. The local result is diagnostic evidence: this case is ordinary convergence-tail provenance, not a distinct stable phase state.
Remaining difference 2 — SRK cubic-root provenance
SRK, classic mixing rule, 260 K/100 bara, feed CO2/methane/ethane/water =
0.543865141103918/0.2937712952303271/0.07010605470616459/0.09225750895959021:Both GAS+AQUEOUS endpoints are bounded, normalized, material-balanced (<=
6.16e-14), equilibrated and bitwise repeatable in the reported summaries. The1.34012e-4beta and1.46512e-4composition differences arise from different SRK gas cubic roots, not incomplete beta convergence. Continuing the multiphase endpoint through ordinary TPflash switches it exactly to the lower-Gibbs ordinary root; seeding TPmultiflash from the ordinary endpoint preserves that root exactly.Frozen next dependency: after portfolio capacity opens, implement and test a narrowly guarded lower-Gibbs cubic-root comparison for already-feasible neutral two-phase multiphase GAS+AQUEOUS endpoints. Preserve the phase set and compositions as the candidate seed; accept only the same two phase types, bounded/normalized beta and compositions, material balance and log-fugacity residual below
1e-8, and a Gibbs reduction above the existing numerical tolerance. Freeze nearby T/P/composition, repeat, changed-state, ordinary/multiphase equivalence, PR/SRK controls, three-phase rejection, and chemical/electrolyte/solid/wax exclusions before editing. Do not combine this root-selection tranche with the rejected global convergence change.Documentation impact: none for this run — no repository behavior, API, branch, or PR changed.
EvenSol commentedon Aug 13, 2026
Active increment — sour-gas stability and endpoint validity
Draft PR #2990 is the sole active #2937 PR. The branch was updated with a normal, conflict-free merge of current master
231fc66f42a573853858b3009dbc99a9ac996c1d; exact head is now0e2856b73720a99ab5a995bd3871c30da79154cb, 0 commits behind, mergeable, and still limited toTPflash.javaplusTPflashSourGasConsistencyTest.java.The immediately preceding source head
644cf123cbc5f6b65c7fc30159d92a4804f571c5passed 80/80 focused/cross-algorithm tests and every hosted workflow. Its fresh 8,181-state methane/CO2/H2S PR/classic map produced 0 invalid multiphase endpoints and 7,346/7,357 one-/two-phase classification agreement outside 824 genuine three-phase cells. Common-case medians remained sub-millisecond; guarded pathological repairs cost 0.71–5.15 ms only when triggered. No universal speedup is claimed.VALIDATION PENDING CI on the new merge head. Five applicable workflows started after the baseline update. No reviews, comments, requested changes, or unresolved review threads existed at the update. The PR remains draft by policy; draft status does not determine engineering readiness.
Next dependency: wait for the complete exact-head workflow matrix, recheck mergeability and every review surface, and repair only attributable findings. After this tranche, minimize the remaining 11 non-three-phase boundary differences—starting near 245 K/100.8 bara—only if independent stability/Gibbs and closure evidence proves a unique defect.
EvenSol commentedon Aug 15, 2026
Active increment — high-water CPA hydrocarbon-liquid appearance
Frozen base:
dc3d907586a895dbac15db85643f4496be1645e9. No open PR referencing #2937 was found at selection.Reproducer and baseline
SRK-CPA Statoil, mixing rule 10, 300 K, 200 bara; normalized methane/ethane/propane/n-heptane/nC10/water feed
0.12/0.03/0.03/0.08/0.09/0.65.G = -3303.96869706 J;0.3488579645 / 0.6511420355,G = -5702.35947585 J;2398.39077878 J;2.02e-14;1.74e-13.The mismatch is deterministic under repeated execution and a
1e-10 / (1 - 1e-10)poor beta guess. A same-object pressure change 100 → 200 bara reproduces the missed ordinary phase, while 200 → 100 bara returns the stable OIL+AQUEOUS state. The same defect occurs at 280 K/125–250 bara, 300 K/175–250 bara, 313.15 K/200–250 bara, and 325/350 K above 200 bara in the frozen local sweep. At 300 K/200 bara it also occurs for water fractions 0.50–0.65; neighboring 0.45 and 0.70–0.80 feeds already converge to OIL+AQUEOUS on both paths. Low-pressure points where multiphase TPflash returns three phases remain outside the two-phase consistency gate.Root cause and bounded method
The substantial-water ordinary endpoint is labelled AQUEOUS and is returned before the existing water-rich reciprocal refinement. This is distinct from #2870 (trace-water GAS → GAS+AQUEOUS) and #2876 (multiphase gas seeding in high-water VLLE).
The frozen candidate may run one cloned multiphase stability refinement only for an ordinary, neutral, one-phase CPA AQUEOUS endpoint when:
f_water / p_water_sat >= 0.8(performance screen only);T_c > T + 80 K.Michelsen TPD/stability and the existing strict candidate gates—not the screen—decide acceptance. A candidate must have exactly two distinct phases, finite bounded normalized beta/compositions, component balance and log-fugacity residual below
1e-8, and Gibbs energy lower by more thanmax(1e-8 J, 1e-12 |G|).Frozen acceptance and stop boundary
1e-10; extensive properties within1e-6absolute for this one-mole fixture.<= 1e-10, composition normalization<= 1e-10, beta normalization<= 1e-12, max log-fugacity residual< 1e-8.Documentation impact: update the private-method Javadocs and the TPflash algorithm guide because the existing guide explicitly says substantial-water one-phase aqueous endpoints return before reciprocal refinement.
EvenSol commentedon Aug 15, 2026
Campaign progress update for #2937:
e65086e648e4bb37e617f82565bc41282b59cf3b(basedc3d907586a895dbac15db85643f4496be1645e9)1e-10; component-balance residual2.02e-14, log-fugacity residual2.16e-10, Gibbs difference3.52e-7 J.TPflash_algorithm.mdupdated. Local repository scripts were unavailable and are explicitly recorded as pending CI in the draft PR.No merge, ready-for-review transition, or master update was performed.
EvenSol commentedon Aug 15, 2026
Frozen next increment — cold-state water-rich reciprocal stability retry
Authoritative master:
b848c65efa42. The previous #2937 PR #3018 is merged asbbed9e143eb89a3c627bbec3f2d44929f24e2866; related Wilson-trial seeding #3026 is also merged. No open PR referencing #2937 was found.Exact reproducer
SystemSrkEos, classic mixing rule 2, 230 K/90 bara; normalized CO2/methane/ethane/nC10/water =0.74/0.15/0.05/0.01/0.05.3.232e-5, Gibbs2961.622862408 J;0.95019632 / 0.049803679, component-balance residual1.202e-14, log-fugacity residual2.931e-13, Gibbs2555.037971823 J;406.584890585 J.The defect is deterministic. A post-flash clone inherits collapsed phase/root history and produces a rejected three-phase trial, whereas an otherwise identical cold feed reaches the feasible two-phase equilibrium. This difference became applicable after #3026 improved incipient Wilson trial seeding; it does not duplicate that PR.
Frozen method and acceptance gates
z_water >= 0.01) asymmetric feeds already eligible for the existing water-rich reciprocal stability path.< 1e-8, log-fugacity< 1e-8, distinct-composition, and lower-Gibbs acceptance gates.1e-10; properties within1e-8relative or a documented tighter absolute fixture tolerance.Documentation impact: update private-method Javadocs and
docs/thermodynamicoperations/TPflash_algorithm.mdbecause cold-vs-post-flash seed provenance affects the documented fallback and its performance cost.EvenSol commentedon Aug 15, 2026
Campaign tranche active: PR #3031
Draft PR #3031 now advances the frozen water-rich cold-seed stability tranche from current master. Exact head:
cf04693a4864b1ba68c112487c676b98f476584c.The first hosted pre-commit run identified only Spotless wrapping. I applied the exact patch produced by GitHub's successful Spotless-format workflow; the resulting blobs match that artifact for
TPflash.java,TPmultiflash.java, and the new focused regression test. The replacement head is conflict-free and 6 commits ahead / 0 behind master. Fresh CI is in progress.No numerical scope was added during the repair. The implementation remains limited to retaining a cold pre-iteration stability seed for tightly screened neutral non-CPA water-rich asymmetric cubic-EOS feeds, with strict material-balance, fugacity, normalization, distinct-phase, and lower-Gibbs acceptance gates. No Huldra data or downstream digital-twin work is included.
EvenSol commentedon Aug 15, 2026
CI attribution update for PR #3031
Exact current head:
792eb1018c1b57c0d27680f454813ed1f56264c6; exact master baseline:9a371fb1448bb713990072c2d3d4a291c71dab68.The branch is current (0 behind) and the flash tranche's direct hosted gates are green. Two slow-suite assertions failed, but both reproduce identically when run in isolation on exact master:
HydrocarbonScrubberSaturationPressureStabilityTest: expected 105.9 bara, exact master and PR both return72.24446868896484bara.SystemElectrolyteCPATest#testHydrateTemperatureWithMethanolAndSalt: exact master and PR both return methanol-only-4.562619195803904 °Cand methanol+salt-2.4559782474698864 °C.These are baseline defects, not introduced by #3031. The electrolyte case is also structurally outside this tranche: CPA, chemical, and ionic systems are rejected before the new cold-seed path. The dry UMRPRU saturation feed has no water and likewise cannot pass the new water-rich screen. No unrelated repair is being folded into #3031.
Current positive evidence on the replacement head includes pre-commit, Spotless, documentation coverage, CodeQL, PaperLab, and Java 21 Javadoc success; the new focused water-rich consistency tests passed locally along with prior flash regressions.
EvenSol commentedon Aug 16, 2026
Coordination update — baseline repair PR #3036
A new overlapping draft, #3036, now targets four baseline regressions that keep active campaign PR #3031 from a successful aggregate workflow.
Current exact heads remain:
792eb1018c1b57c0d27680f454813ed1f56264c62c426020094f8d1ddca973c789c8c165af4311ad9a371fb1448bb713990072c2d3d4a291c71dab68Verified coordination evidence:
TPflash.java, its regression, and TP-flash documentation; fix(flash): restore local TPflash stability path #3036 changesTPmultiflash.javaand the scrubber regression;action_requiredwith zero jobs, so no hosted result is available;SystemElectrolyteCPATest#testHydrateTemperatureWithMethanolAndSaltbaseline failure is not demonstrated as repaired;1e-12to1e-9, contrary to both its PR text and this roadmap's frozen1e-12gate. That finding has been recorded on fix(flash): restore local TPflash stability path #3036.No implementation was copied or combined. The dependency order is: resolve #3036's tolerance discrepancy, obtain exact-head CI, merge it only under its own authority, then update #3031 from the resulting master and rerun its focused cross-algorithm/nearby-state regression plus all exact-head checks. #3031 remains not READY TO MERGE.
EvenSol commentedon Aug 16, 2026
Frozen repair increment — replay screened cold seed after multiphase collapse
Authoritative master:
f420627b5892. Merged PRs #3036/#3037/#3031 now coexist on master; no open TP-flash implementation PR was found.Reproduced cross-merge defect
The exact final #3031 head
e83c77b377c7ed8a1c5a6fac662f4da68406ac56failed its Windows fast suite after #3036's compatibility repair was incorporated:TPflashWaterRichColdSeedConsistencyTest.coldSeedRecoversBalancedOilAqueousEndpoint: expected two phases, explicit multiphase returned one;TPflashWaterRichColdSeedConsistencyTest.nearbyStatesAndChangedFeedRemainContinuousAndDeterministic: same one-phase collapse;The ordinary path still recovers the balanced lower-Gibbs OIL+AQUEOUS state. The interaction is that #3031 retains a screened cold pre-iteration seed, but the post-collapse water-bearing rescue clones the already-collapsed live state instead of consuming that cold seed. Reverting #3036's global Wilson-beta compatibility correction would reintroduce the UMR-PRU and Eclipse regressions it repaired.
Frozen implementation and gates
1e-10, distinct phases, and log-fugacity residual <1e-8.Stop boundary: no change to the Wilson trial beta formula, UMR/electrolyte local stability selection, process/column code, public API, or Huldra work. Documentation impact: update private-method Javadocs and the TP-flash algorithm guide for cold-seed provenance and strict replay acceptance.
EvenSol commentedon Aug 16, 2026
Active repair PR: #3055 — cold water-rich seed replay after multiphase collapse
Draft PR: #3055
Exact head:
cd29e5e60834b89062983d3e2c583b9264f74edaBase:
f420627b589286b9c9dd6ccd1659deb34b700ae5Implemented the frozen repair from #2937 (comment):
VALIDATION PENDING CI. No local Maven, Spotless, documentation-search, or pre-commit execution is claimed. Initial exact-head workflows are queued/in progress; there are no reviews or review threads yet.
94 remaining items
fix: recover PS roots and accelerate bracketed saturation flashes (#4831
EvenSol commentedon Nov 3, 2026
2026-11-03 evening — PS/saturation delivery finalized
Finalized merged #4831 at preserved exact feature head
1e197b748af064675bb33b9b4791abaa47601a1e; squash merge3a7455bcfe1f7e8bfe344e35bfa5a095d3c03a16. All 8 exact-head workflow groups and all 19 Core jobs passed, including Java 8/21 on Ubuntu/Windows, both model-specification gates, all eight slow shards and their aggregate gate, Javadoc, agentic benchmark, CodeQL, formatting, hooks, documentation, coverage, skills/agents and PaperLab gates.The merged scope retains the independently recovered PR78/TBP entropy root and adds bounded, safeguarded interpolation for PS cold recovery plus the existing water/MEG dew-point and Pitzer hydrate brackets. It preserves strict residual tolerances, physical models, parameters and public APIs. Deterministic work-count guards replace portable wall-clock assumptions. GitHub records no submitted review or inline review thread on #4831, so the merge is recorded as completed exact-head delivery rather than independent thermodynamics/domain approval.
Current master is
9c9e0773bcdf9efa51de36f8a8f0f43f32f268ac, ten commits ahead. A path audit found no later modification to #4831's PS/saturation implementation. Later relevant work is caller-level only: merged absorber/PVT changes and open #4843 modifySimpleTEGAbsorberorConstantVolumeDepletionwithout changing shared TP/PS/TPmultiflash solver code or global tolerances. Open #4838 is pipeline-local conservative transfer and #4845 is P&ID/DEXPI delivery. No distinct new #2937 solver defect or measured bottleneck was verified, so no speculative draft was opened.The #4310 timing/allocation gate remains complete through #4712. No independent submitted review or inline thread exists on #4712 or #4649, so #4310 and the #4362 A4b handoff remain open only for that review. Huldra-owned code remains untouched.
Autonomous occupancy is 3/10 under the governing target and absolute global ceiling of ten:
4f021b78cf5ecfdd0659e700d24dd5e9a54c8ffa2055be05554c338be3e04229d8a13252b3895152b6da97d4142cd0731182f2f2bf9916753b460264This ten-capability policy supersedes every older three-, five-, 20-, 24-, or other generic capacity statement. No source, active head, merge, rebase, master, issue state or Huldra code was changed by this reconciliation.
EvenSol commentedon Nov 4, 2026
2026-11-04 — fixed-cell precision finalized; laboratory CVD accounting owns the adjacent lane
Current master is
047cb7e4c59101404bcc3aa8f01761630ca1d87f.Finalized merged #4843 at preserved exact feature head
ae5caaf22dc860039ef216efbe7915e282ee3fe8; squash merge6d4c8054d2b404ff484ee1ff2784d4c0c07939ff. All 10 exact-head workflow groups and all 19 Core jobs passed, including Java 8/21 on Ubuntu/Windows, both model-specification gates, all eight slow shards and their aggregate gate, Javadoc, benchmark, CodeQL, formatting, hooks, documentation, coverage, Python tooling and skills/agents checks.The bounded opt-in fixed-cell refinement reduced the reproduced 342.5 K / 195 bara phase-amount gap from
2.04e-6 molto a maximum4.459934643818997e-10 mol, below the frozen1e-8 molbound. Maximum relative cell-volume error was3.623767952376511e-13, composition error4.3665071558507407e-13, and named-component closure5.551115123125783e-17 mol. The change calls the existingTPmultiflash.solveBetaonly insideConstantVolumeDepletion.runFixedCellDepletion; standardTPflash,TPmultiflash, phase-slot lifecycle behavior, shared stopping defaults, EOS inputs and global tolerances are unchanged.The five commits since the preceding audit add pipeline-local pool transfer, P&ID/DEXPI delivery and quality review, the caller-level fixed-cell refinement, and executable property documentation. None modifies #4831's PS/saturation implementation or the shared TP/multiphase solver surface.
Open draft #4851 now owns the adjacent laboratory-CVD accounting lane at exact head
7c05f4583e2a11325f833dfa06bea99dea11d0d5. Its 16 changed paths are PVT utility/reporting, provenance, tests and documentation only; all nine exact-head workflows pass. It does not modify a thermodynamic flash solver. #4850 is thermodynamic source-data/test evidence, #4847 is pipeline-local wall-inventory screening, #4849 is release preparation, and #4852 is executable documentation. No deterministic shared TP-flash defect or attributable performance bottleneck was established, so no speculative #2937 draft was opened.The #4310 timing/allocation gate remains complete through #4712. GitHub still records no submitted review or inline review thread on #4712 or #4649, so #4310 and the #4362 A4b handoff remain open only for independent thermodynamic/domain review. Huldra-owned code remains untouched.
Autonomous occupancy is 5/10 under the governing target and absolute global ceiling of ten:
fb55d574ea6a918c06e64131dd43c3ddd2be4bca278b62056b87b43bf55487a2ec5dd40287d995e34f5480c50e9054d69c594143d54023c64d5e596d7c05f4583e2a11325f833dfa06bea99dea11d0d505678baeb3f5a5782e9c11b12c5f477b228a5a7bThe ten-capability policy supersedes every older three-capability, five-capability or lower generic target/ceiling statement. No source, active head, merge, rebase, master, issue state or Huldra code was changed by this reconciliation.
EvenSol commentedon Nov 4, 2026
Coordination from #4740 after merged #4855: complete exact-master diagnostic and reproducer, master
3d20d6086654ed71347627f59b164b2aca46e1b7. A separate capped vapor-withdrawal controller retains three 300/325 K ternary states at10 bara that pass the final 1e-12 log-fugacity criterion but reject the existing Gibbs-increase gate. Initial phase-to-total component residuals reach2.86e-12mol and improve to about1.8e-14mol during refinement; the feasibility of the starting Gibbs upper bound needs review. This is not yet a proven solver defect, global-stability result or a fresh public-API replay failure. All three full warm histories, exact inventories/Gibbs/residuals and successful binary controls are retained. No shared flash/default/EOS/tolerance change or competing implementation PR has been opened. Please coordinate any phase-fraction/feasible-Gibbs correction here; #4740 retains its wet/critical/multicomponent qualification boundary.EvenSol commentedon Nov 4, 2026
2026-11-04 evening — dry fixed-cell replay finalized; Gibbs gate isolated to unequal inventories
Current master is
3d20d6086654ed71347627f59b164b2aca46e1b7.Finalized adjacent merged #4855 at preserved exact feature head
8989c552452036460d0ae0569d972d6a89e3158e; squash mergee22f4be4521a18d29098f0f3825c96bcd5485d3e. All nine exact-head workflow groups and all 19 Core jobs passed. The delivery adds an opt-in dry fixed-cell phase-transition replay with frozen amount/composition/volume bounds; it changesConstantVolumeDepletion, PVT handoff utilities, tests, evidence and documentation, while leaving shared flash defaults and EOS parameters unchanged. GitHub records no submitted review or inline review thread on #4855, so the observed merge is not independent domain approval.The coordinated negative matrix at #4740 receipt 6637082176 is retained as the next bounded hypothesis. Three 300/325 K ternary warm histories at 10 bara reach final log-fugacity residuals
3.39e-13–4.32e-13but are rejected because final Gibbs energy is2.11e-8–3.44e-8 Jabove the pre-refinement value.Source inspection isolates the acceptance boundary in the caller's private
refineFixedCellEquilibrium: it evaluatesinitialGibbsbefore requiring the phase-summed amounts to matchDepletionSnapshot.inventory(cell), thenTPmultiflash.solveBetacorrects phase fractions toward that stored total. The recorded initial phase-to-total residual reaches2.86e-12 moland falls to about1.8e-14 mol. Gibbs-energy ordering is only a valid constrained comparison at identical T, P and component inventory. Dividing the observed energy gap by the largest inventory mismatch gives an indicative7.4–12.0 kJ/molscale, consistent with a chemical-potential-sized inventory correction; this is supporting inference, not proof for each component or a globally stable alternative.Therefore the evidence does not justify relaxing the energy gate, changing
TPmultiflash, or accepting the rejected histories. No shared-solver defect or attributable performance regression is established, and no speculative #2937 draft was opened. The dependency-ready next test is a feasible same-inventory Gibbs reference: project or independently reconstruct the pre-refinement phase state at the stored component totals, then require the refined endpoint to preserve phase family,1e-12fugacity closure,1e-12component balance, and non-increasing Gibbs energy against that matched inventory. The retained three failures plus passing binary/350 K controls must remain the frozen matrix, and a fresh public-API replay must fail before any production repair is selected.The eight post-audit master commits are release, documentation, PVT caller, pipeline and process/P&ID work; none modifies standard
TPflash,TPmultiflash, #4831's PS/saturation implementation or the #4712 benchmark. Open #4863 is separator energy-accounting work and does not overlap flash ownership.The #4310 timing/allocation gate remains complete. GitHub still records no submitted review or inline thread on #4712 or #4649, so #4310 and the #4362 A4b handoff remain open only for independent thermodynamic/domain review. Huldra-owned code remains untouched.
Autonomous occupancy is 1/10 under the governing target and absolute global ceiling of ten:
2d9e631d7346cfcf9eb502f1dc11b479882a4bbfThe ten-capability policy supersedes every older three-capability, five-capability or lower generic target/ceiling statement. No source, active head, merge, rebase, master, issue state or Huldra code was changed by this reconciliation.
EvenSol commentedon Nov 4, 2026
The prerequisite from6637443544 is completed in sole #4740 draft #4866, exact head
d24962df86f5417836978a24bb0d5e9edde0f46e, basee316ffb6d7eb42a176156dd278731a010d9a5196. All three states fail a fresh public fixed-cell replay on baseline. Independently reconstructed same-inventory homogeneous phases give a feasible energy reference; a caller-only repair uses serialized copies and keeps every original Gibbs/fugacity/component/phase/volume tolerance. No TPflash/TPmultiflash source/default or EOS parameter is changed. Nine scaled public replays and all16parcel meshes now pass;670PVT/50tooling tests pass. All20native coarse inventories remain bit-identical. Complete source, raw before/after/projection data, runtime/static limitations and exact-head ledger. This is not a claimed shared-solver defect or global-stability qualification; subsystem/independent domain review and hosted CI remain required. No competing shared-solver framework or #2937 implementation PR is opened.[AI-Assisted] fix(pvt): compare fixed-cell Gibbs energies at conserve…
EvenSol commentedon Nov 5, 2026
Caller-only follow-up to the merged4866 Gibbs-reference work: draft4868, head45bc4ca169d69dd15a67f4e331937b64cc35ad26, base d6dd0cd. At275K/100bara, SRK methane/n-butane0.95/0.05mol with n-heptane registered at0mol, a redundant TPflash of the already qualified initial CVD cell changes total moles to0.999999999998 and relative occupied volume by-1.0004457990173167e-12 before any withdrawal. The existing1e-12gate therefore rejects; the two-component control passes. We reuse the caller-qualified endpoint for the first precise volume check, retaining post-withdrawal flashes, all existing gates, and the legacy sequence. No shared TPflash/TPmultiflash/default/tolerance change or competing solver framework. Full baseline trace and bounded independent zero-registration qualification are in 4740receipt6650441708. 674PVT/50tooling tests pass;135zero-registered paths/999endpoints include81independent binary-reference paths, with exact zero inventory/withdrawal. This is synthetic numerical qualification, not measured accuracy or grounds for a global tolerance change. Existing19SpotBugs findings and inconclusive timings remain explicit.
EvenSol commentedon Nov 5, 2026
2026-11-05 — matched-inventory Gibbs repair finalized; zero-registration caller follow-up active
Current master is
d6dd0cd190ac32f04a08627fafdeff7f745566e5.Finalized adjacent merged #4866 at preserved exact feature head
d75a0432555dd82255b8ac5e6535988444c4e3ab; squash merge9a928fd70d073859749917d37f53f9fe1d7f9cc8. All nine exact-head workflow groups and all 19 Core jobs passed, including Java 8/21 on Ubuntu/Windows, both model-specification gates, Javadoc, the benchmark gate, all eight slow shards and their aggregate, CodeQL, formatting, hooks, documentation, coverage, devtools, skills/agents and PaperLab.The merged caller-level repair completes the frozen dependency from ledger 6637443544. A fresh public replay reproduced all three fixed-cell failures, and the repair reconstructs a feasible pre-refinement Gibbs reference at the same stored component inventory before applying the unchanged energy guard. The final exact-head scope retains the original
1e-10relative Gibbs allowance,1e-12fugacity/volume targets, component and phase-family gates. Sixteen focused tests, 671 surrounding PVT tests and 50 tooling tests passed locally; 108 reference-only EOS controls and the capped withdrawal mesh improved the retained baseline from 13/16 to 16/16 paths while all 20 native coarse inventories remained bit-identical. NoTPflashorTPmultiflashsource, shared default, EOS parameter or global tolerance changed. GitHub records no submitted review or inline review thread on #4866, so the observed merge is not independent domain approval.Sole active draft #4868 now owns the adjacent zero-registered-component fixed-cell boundary at exact head
45bc4ca169d69dd15a67f4e331937b64cc35ad26, based6dd0cd190ac32f04a08627fafdeff7f745566e5. Its fresh public reproducer shows that an otherwise redundant first restoration flash changes total moles to0.999999999998and the occupied-volume residual to-1.0004457990173167e-12, just outside the retained1e-12target. The bounded candidate reuses the already flashed, density-initialized and refined entry state only for that first precise check; every post-withdrawal flash/refinement and every existing gate remain. Local evidence reports 674 PVT tests and 50 tooling tests passing, plus 135 zero-registered paths / 999 endpoints including 81 independent binary-reference paths.Hosted exact-head status at this lease: 8/9 workflow groups pass;
[Core] Build, Test, and Javadocremain active without a reported failure. No submitted review or inline thread exists. Status: VALIDATION PENDING EXACT-HEAD CI AND INDEPENDENT SUBSYSTEM/DOMAIN REVIEW. Because #4868 already owns the reproduced caller boundary, no competing #2937 implementation is opened.The only post-#4866 master commit is executable process-comparison documentation; the preceding signed-boundary pipeline and literal-PVT documentation work also does not modify the shared TP-flash/stability/multiphase solver paths. No distinct shared-solver defect or attributable performance bottleneck is established.
The #4310 timing/allocation gate remains complete. GitHub still records no submitted review or inline thread on #4712 or #4649, so #4310 and the #4362 A4b handoff remain open only for independent thermodynamic/domain review. Huldra-owned code remains untouched.
Autonomous occupancy is 1/10 under the governing target and absolute global ceiling of ten:
45bc4ca169d69dd15a67f4e331937b64cc35ad26The ten-capability policy supersedes every older three-capability, five-capability or lower generic target/ceiling statement. No source, active head, CI retry, merge, rebase, master write, tolerance, issue state or Huldra code was changed by this reconciliation.
EvenSol commentedon Nov 5, 2026
2026-11-05 evening — zero-registration fixed-cell repair finalized; shared-solver lane remains evidence-gated
Current master is
69de066ea61b559b7df727117e4a5a83352633fa.Finalized adjacent merged #4868 at preserved exact feature head
45bc4ca169d69dd15a67f4e331937b64cc35ad26; squash merge24ef4a6f5ef5769c0f10462585df1cba365acfbb. All nine exact-head workflow groups and all 19 Core jobs passed. Java 8 and Java 21 on Ubuntu and Windows each executed 19,796 tests with zero failures/errors and 209 skips; all 674 PVT tests in 79 classes passed without PVT skips. Both model-specification gates, Javadoc, the benchmark gate, all eight slow shards and their aggregate, CodeQL, formatting, hooks, documentation, coverage, devtools, skills/agents and PaperLab passed.The merged caller-level change reuses the already flashed, density-initialized, refined and phase-checked fixed-cell entry state before the first precise volume check. It preserves every post-withdrawal flash/refinement, the
1e-12relative-volume target, the independent1e-8 molbounds, phase/equilibrium/conservation gates, legacy scan behavior, EOS parameters and global tolerances. The retained qualification covers 135 zero-registered paths / 999 endpoints plus nine binary controls, and the supplemental matrix covers 252 paths / 1,260 endpoints across SRK/PR, volume correction off/on, inactive n-heptane/nitrogen/CO2 placement, three temperatures and three scales. Maximum internal volume and log-fugacity residuals were7.9237e-13and9.9157e-13. NoTPflashorTPmultiflashsource changed. GitHub records no submitted review or inline review thread on #4868, so the observed merge is not independent subsystem/domain approval.The three commits after the previous audit are merged #4868, optimizer-Javadoc repair #4870, and two-fluid terrain-pool reporting #4871. The latter two modify optimization documentation/tests or pipeline reporting only; neither touches standard TP flash, multiphase flash, stability, EOS inputs or shared tolerances.
No open autonomous implementation PR remains. Autonomous occupancy is 0/10 under the governing target and absolute global ceiling of ten. The one-active-PR-for-#2937 rule is clear, but no distinct shared TP-flash defect, unstable endpoint, failed frozen numerical gate or attributable performance bottleneck is established on current master. Therefore no speculative draft is opened.
The next #2937 implementation still requires a frozen public reproducer from the broader hydrocarbon, water, CO2/H2, CPA/electrolyte, near-boundary, tiny-phase and poor-initialization matrix, with the campaign's unchanged conservation, normalization, fugacity, stability, cross-algorithm, repeatability and paired-performance gates. Caller-level measured-data and full PVT/MBAL acceptance remain owned by #4740 rather than this shared-solver lane.
The #4310 timing/allocation gate remains complete. GitHub still records 0 submitted reviews and 0 inline review threads across #4712 and #4649, so #4310 and the #4362 A4b handoff remain open only for independent thermodynamic/domain review. Huldra-owned code remains untouched.
The ten-capability policy supersedes every older three-capability, five-capability or lower generic target/ceiling statement. Documentation impact: none for this read-only reconciliation. No source, branch, PR head, CI retry, merge, rebase, master write, tolerance, issue state or Huldra artifact was changed by this run.
EvenSol commentedon Nov 5, 2026
#4740 ownership coordination: new sole draft #4878, exact head c84b3d8 (base69de066ea61b559b7df727117e4a5a83352633fa), adds a named explicit initial-occupied-volume gas/aqueous depletion protocol through aqueous disappearance. It reuses existing local CVD precision/Gibbs/conservation gates; no TPflash, shared solver/default, chemical-water identity, minor-water recovery, continuation or cubic-performance source is changed. #4872–#4877 exact heads were inspected and left untouched. Independent binary SRK27paths/270states, both checkpoint choices (540checks), zero-water controls and678PVT tests pass locally; no measured-water-EOS or arbitrary topology qualification is claimed. Aqueous appearance/reappearance, oil-containing wet transitions and wet upper-dew inference remain unsupported. Full evidence/limits: #4740 (comment) . Hosted CI/domain review are pending; this is coordination, not a request for a competing flash framework.
EvenSol commentedon Nov 6, 2026
2026-11-06 — dilute-water recovery and cubic flash optimization finalized; overlapping heads preserved
Current master is
5fa68e8c67f21ebaaea0d3e7c63be7c0ea58f92a, eight commits ahead of the previous audit.Finalized merged shared-flash #4873 at preserved exact feature head
ba7aed2c81e7b1e7a9f29effb9af2d060c066f57; squash mergef901a7b445bd8bd923dc21ee49be8befc3a8b13f. It recovers genuinely supersaturated cubic-EOS oil below the former five-mole-percent overall-water screen while preserving the existing normalization, material-balance, fugacity and lower-Gibbs gates. The negative GAS+OIL screen now exits before a full-system clone/Gibbs evaluation; no entropy, equilibrium or global flash tolerance was relaxed. The focused/adjacent selection passed 159/159 tests. All eight published exact-head workflow groups and all 19/19 Core jobs passed, including Java 8/21 on Ubuntu/Windows, both model-specification gates, Javadoc, benchmark accuracy and all eight slow shards. Bounded paired evidence reduced the undersaturated complete-TPflash median from about 15.77 ms to 1.42 ms and allocation from 17,480,416 to 1,614,776 bytes; positive controls retained numerical checks and no universal speedup is claimed.Finalized merged cubic-EOS performance #4875 at preserved exact head
01cf5176706707acd63191ca7fd7d4edc2a947c0; squash merged462d35c78e07ad5f6e99ce4b1f5c2ac153b0a7c. It avoids unused gas-root composition classification and reuses the liquid B/V seed inside one cubic volume solve without changing equations, root selection, convergence tolerances or public APIs. 160/160 focused tests passed; independent numerical fingerprints were identical. All seven triggered workflow groups and all 19/19 Core jobs passed. Six bounded full-TP workloads measured candidate/baseline median-time ratios 0.846–0.990 with unchanged allocation; no process-wide claim is made.Adjacent PVT #4878 also merged at preserved exact head
6c163ea0eb51af1c74a723bda41828878ded56f6asa9a7787a587e741bc94bc1c247b3a440764b4618, with all nine workflow groups passing. Its explicit gas/aqueous fixed-cell disappearance protocol changes PVT caller behavior only; shared TPflash/TPmultiflash defaults and solvers are untouched.The five positively identified active autonomous capabilities are 5/10:
dae9c144d7880cf76ecf8f43986c4ed8ad53fe6fab8846137dce2bca481d93b8b6bb40845776beda0d9cd4decb36e89b4c483e86663b87e295c4eb0779a340300c7dfe4142bcbc3f98ebdd6f8095324ac2c87ef2413f701a9221699dd0dd7df63c1c0aa1Every head above remains unchanged. Capacity is available below the absolute ceiling, but #4872 and #4876 already overlap the #2937 shared-flash lane, so the one-active-PR/ownership guard blocks a new draft. Both have requested changes and two unresolved review threads. #4872's current instance-local seed does not survive the fresh TPflash objects created by cold PS trials. #4876's current recovery still misses the gas-preserving labelled-water path; the review supplies a public exact-head reproduction. The next dependency-ready work is therefore in-place owner repair and frozen SRK/PR changed-state qualification on those preserved PRs, not a replacement or competing framework.
The #4310/#4362 Huldra handoff remains review-gated: GitHub still records 0 submitted reviews and 0 inline threads on both #4649 and #4712. No Huldra-owned code, master, active head, readiness state, merge state or campaign issue state was changed by this run. No new #2937 draft was opened.
EvenSol commentedon Nov 6, 2026
2026-11-06 evening — zero-flow phase-state repair finalized; overlapping flash heads still block a new draft
Current master is
de81c1f81c226988a2326c27ed1873094ed86e11, six commits ahead of the previous #2937 audit.Finalized adjacent merged #4890 at preserved exact feature head
f5597ef4905501844d00d5dd19bb8a083d05d73b; squash mergede81c1f81c226988a2326c27ed1873094ed86e11. It preserves an initialized intensive phase map and exact zero material when flow is set to zero, then restores positive flow from normalized stored overall fractions instead of assigning the requested flow to every component. The unchanged-master reproducer fails 20/20 cases and the candidate passes 20/20; focused tests pass 64/64, and the expanded matrix passes 288/289 with one pre-existing disabled display test and zero failures/errors. All eight exact-head workflow groups and all 19/19 Core jobs passed. This is relevant phase-state lifecycle hardening, but it changes onlySystemInterface/SystemThermo; standardTPflash,TPmultiflash, stability equations, EOS inputs and campaign tolerances are unchanged.Finalized adjacent merged PVT qualification #4885 at preserved exact head
03506165c021d2f1f3446bf93f60bc07cc9889a6; squash mergee2a702a5e804f4953ad4c4afae6ac7972d130b86. All eight workflow groups and all 19/19 Core jobs passed. Its independent gas-only laboratory-to-tank, continuous-flow and pressure-weighting qualification changes tests, evidence and documentation only: every production Java file, public API, default and dependency remains unchanged.Merged #4882 (process safety/P&ID), #4887 (hydrate documentation), #4888 (pigging) and #4889 (two-fluid network transactions) account for the other master changes. None modifies shared TP flash, multiphase flash or the two outstanding flash branches.
The positively identified autonomous implementation portfolio is 4/10, under the governing target and absolute ceiling of ten:
dae9c144d7880cf76ecf8f43986c4ed8ad53fe6fab8846137dce2bca481d93b8b6bb40845776beda0d9cd4decb36e89b4c483e86663b87e295c4eb07adf765c387cb694902f70f488bff93ee0ef29fdaEvery exact head above remains unchanged. #4891's body text claiming
1/20occupancy and a ceiling of 24 is stale and non-governing; this ledger's 4/10 count and absolute ceiling of ten supersede it without mutating the unrelated PR.Capacity is available, but #4872 and #4876 already occupy and overlap the #2937 shared-flash lane. Each still has a requested-changes review and two unresolved threads at the same exact head: #4872 loses its continuation seed across fresh cold-trial TPflash instances, while #4876 still misses the gas-preserving labelled-water recovery path. The next dependency-ready action is owner repair and frozen SRK/PR changed-state qualification on those existing heads, not a replacement, rebase or competing draft. Therefore no new #2937 PR was opened.
The #4310/#4362 Huldra handoff remains review-gated: GitHub still records 0 submitted reviews and 0 inline threads on both #4649 and #4712. No Huldra-owned code, active head, readiness state, merge state, issue state, default branch or tolerance was changed by this run.
EvenSol commentedon Nov 7, 2026
2026-11-07 — aquifer increments finalized; reactive-Pitzer exact-head CI exception recorded
Current master is
d8c9354ab490564c3c2220b8f735c645cd575c79, eight commits ahead of the previous #2937 audit. The intervening changes contain noTPflashorTPmultiflashsource change.Finalized adjacent merged aquifer work:
4c90eee719c270bac2d36dd54990582f10936169, merge9a318032cb35857530f00778fe35ae49692e96ba. All nine exact-head workflow groups passed; the retained numerical receipt covers 685 focused PVT cases, 64 surrounding cases, 50 tooling cases, and the 1,444-row decimal reference.b525939635ff7f121285f52bee7d0b1a0d360823, merge9659bc067ff9463b52599646d27be5ad151f819c. All five exact-head workflow groups passed. This increment is test/documentation-only and does not change a production flash solver.Recorded a validation exception for adjacent reactive-equilibrium #4896, merged at preserved exact feature head
7d36d1bbbf44b8868c46fba1bbf2ae462204139e, merge6de7d5b720269fa1aa20da63f532338c6db2f250. Its bounded Pitzer numerical receipt remains useful: ten IPhreeqc states give pH MAE 0.0004336 (maximum 0.0009217), water-activity MAE 1.308e-5 (maximum 2.606e-5), and the coupled case reports reaction-log residual 1.94e-6, element residual 1.97e-11 mol, and charge residual 6.12e-16. However, the final bot-authored inventory commit's duplicate hosted workflow set awaited maintainer approval; after merge, all eight runs finalized as failures with zero jobs, including Core build/test/Javadoc and pre-commit. The exact head is therefore not recorded as fully campaign-qualified. No rerun, repair, or branch mutation was attempted after merge.Autonomous implementation occupancy is 3/10:
dae9c144d7880cf76ecf8f43986c4ed8ad53fe6f;ab8846137dce2bca481d93b8b6bb40845776beda;0d9cd4decb36e89b4c483e86663b87e295c4eb07.Capacity is available, but #4872 and #4876 still overlap the shared flash ownership lane and retain their unresolved correctness findings. Under the one-active-PR rule, no new #2937 draft was opened. Huldra handoff PRs #4649 and #4712 remain without reviews or unresolved threads.
No source, active head, merge, rebase, synchronization, master, tolerance, or Huldra mutation was made by this audit.
EvenSol commentedon Nov 7, 2026
2026-11-07 evening — reference-water TP dispatch audited; advanced flash heads remain blocked
Current master is
183f9c993daad47059fa6129f5b52d124a9469bd, nine commits ahead of the previous #2937 audit.The only intervening shared
TPflashsource change is merged cooling-water #4908, preserved at exact feature head248f7de6bd6fc7cb3bdaf2c94225be54a1d38ed8, merge982b4b3c1e5d036ca71af7b73c66c5d2bb790057. Its 14-line TP-flash dispatch is restricted toSystemWaterIF97/SystemSeawater: it validates the reference-water envelope, returns one liquid phase and bypasses cubic-EOS saturation logic. Generic TP-flash algorithms, equilibrium tolerances and cubic/CPA/Pitzer paths are unchanged. The retained local receipt reports 1,060 Java and 197 devtools tests passing, while exact-head hosted Core, Java 8/21, slow, model, documentation, formatting and security groups passed. The newly introduced Code Health workflow failed on that exact head, so #4908 is not recorded as a fully green exact-head campaign increment.The latest #4910 exact feature head
5d72d77af2d4215991100985a47f0b22fc29e522passes Code Health and every non-Core workflow. Core fails on both Ubuntu and Windows only in threeNeqSimXtreamLegacyCompatibilityTestcases (20166tests, zero failures, three errors, 209 skipped); all TP-flash/saturation, model-specification and slow suites passed. This is recorded as a repository-base validation blocker, not evidence for a new flash solver mutation.External conflict-resolution work advanced the three long-lived remote heads. These current heads are now the authoritative preservation leases; this campaign made no further change:
fdda89cd96bf49e5a54507efd78cd09eade3104a. Core and seven hosted groups pass; Code Health fails. The changes-requested review and both unresolved correctness threads remain: continuation state is still instance-local across fresh PS cold-trial TP flashes, and changed-state/homogeneous controls are still absent.805c47d2010346216b80a9a85b4a8f6d3b2c2035. Core and seven hosted groups pass; Code Health fails. The changes-requested review, public labelled-water reproduction and both unresolved correctness threads remain.7e587db8603fb166d43c6b222cf7d12db9b8fb15. Ten hosted groups pass; Code Health fails. Six review threads remain unresolved, including two current component-selective mapping defects.Autonomous implementation occupancy is 5/10, additionally including draft #4914 at
62ff24ee8a7a81f8b3828b970ce6b44bcb1c9a07and draft #4915 at25d2be2464211812a1eb4b67c285391ca8db7c6b.Capacity is available, but #4872 and #4876 still overlap the shared-flash ownership lane and remain correctness-blocked. The current master also lacks a fully passing fast matrix. Under the one-active-PR rule and frozen numerical gates, no new #2937 draft was opened. Huldra handoff increments #4649 and #4712 remain merged and unchanged.
No source, active head, CI retry, merge, rebase, synchronization, master, tolerance, issue-state or Huldra mutation was made by this audit.