Repository navigation
Description
Proven input defect exposed by the general equilibrium review
The four unchanged salting-direction assertions in #4306 have conservative, normalized, charge-balanced phase endpoints with small molecular fugacity residuals, but all four mixtures contain a neutral species whose database dielectric polynomial is physically invalid: nitrogen, n-butane or n-hexane.
In both src/main/resources/data/COMP.csv and COMP_EXT.csv, these species share coefficients [-19.2905, 29814.5, -0.019678, 0.013189, 0.031144]. Evaluated by the existing Kelvin polynomial at 298.15 K, the result is 826674.562290515. The named-column loader rules out an index shift; the older bundled test data repeat the values. Changing exponents or signs would reproduce a water-like curve, not establish species-valid nitrogen/alkane data.
The identical rows occur for oxygen, nitrogen, n-butane, n-pentane, n-hexane, i-pentane, acetone, MEGPVTsim18, MEGPVTsim19, nbutanePVTsim, 1-propanol, i-propanol, glycerol and ammonia: 14 entries in each database. Audit aliases as well as canonical components.
Effect and proof limits
The defective neutral permittivity contaminates solvent mixture electrostatics and neutral Born contributions. In the qualified salted-butane endpoint, mixture permittivity is about 858 and the butane Born chemical-potential contribution is about -5.73 RT. The mixed-salt hexane-containing case increases mixture permittivity from about 705 to 1059.
Molality and gas-fugacity normalization do not reverse the observed salting trends: normalized saline/fresh ratios are approximately 4.1045 for nitrogen, 43.2010 for nitrogen in natural gas, 1.02282 for methane in the butane-containing mixture, and 1.27349 for propane in the mixed-salt mixture. This is evidence of invalid property inputs and their mechanism, not proof that a property correction alone will make every salting assertion pass.
No additional runtime standard-state or molality-unit defect was demonstrated in this bounded review. No coefficients, interaction fits, solver whitelists or acceptance tolerances were changed.
Dependency and acceptance
Coordinate under #3144 with #4332 and #4306; this is property qualification work, not another recipe-specific solver.
- Recover authoritative species-specific dielectric data/correlations, including original units, phase/reference-state convention, validity range and redistribution conditions. Do not substitute water values or one universal constant.
- If the selected correlation depends on density, implement consistent T/V/composition derivatives rather than inserting it into a temperature-only polynomial.
- Add independent property/derivative regressions and audit all duplicated records/aliases.
- Rerun exact-feed inventory, charge, fugacity and matched-fugacity molality salting benchmarks, including NaCl/CaCl2 and neutral controls.
- Only then assess interaction-parameter qualification. Any fit needs independent or held-out validation.
Source checkpoint: #4306 417d0f8f4a34fa5f087295ffb450237199645db4; component data are unchanged in the proposed model and solver corrections. Keep the four physical qualification failures visible until this work is resolved. AI-assisted investigation.
Activity
EvenSol commentedon Oct 15, 2026
Implementation underway, coordinated with the preserved heads of #4332 (395076b), #4306 (e7ddb9e), and test-only consumer #4277 (40df273). #4333 is now merged. The property correction is isolated from their solver/derivative implementations; no peer branch has been rewritten.
The full table audit found the original 14 duplicates plus a water-polynomial copy in i-butane, a near-duplicate in PG, and five malformed olefin records. The glycerol record has TEG identity (CAS 112-27-6, C6H14O4, 150.175 g/mol), so assigning a glycerol dielectric curve alone would be wrong.
The candidate replaces source-supported records with bounded NBS/NPL reference-liquid correlations and gives unavailable/out-of-range data explicit diagnostics. Nitrogen/oxygen cryogenic liquid fits cannot qualify room-temperature brines. Harvey–Lemmon density correlations will not be inserted into the existing T-only API without the necessary model/derivative work. Modern MEG data differ from the legacy correlation, so the active hydrate consumer is part of the integration check. Original salting assertions remain unchanged; pure-property repairs alone will not be represented as complete issue closure. Validation and the concrete draft patch will follow.
EvenSol commentedon Oct 15, 2026
Published coordinated draft #4336 at
7ca3ea66ec8e3ff6a7f50c24bac9fbb5694b593a, based on mastera346faa1f13adfc95c99dff18e90a348d8725d28. The exact published tree matches the locally checked tree. Coordination findings are posted on #4332, #4306 and #4277; their heads are unchanged.Implemented 11 source-bounded reference correlations, quarantined 11 unavailable/inconsistent canonical records, synchronized 21 historical records, and added coefficient-identity/domain guards plus provenance. The existing extended loader inherits the canonical corrections; the raw extended CSV remains a stale artifact and its direct-import path is explicitly rejected. Eleven property regressions and the formatting/documentation/coverage hooks pass with Java 8 source/target on OpenJDK 17. Original-input controls fail as expected.
This does not close #4334. The isolated 27-case solver/consumer assessment has 6 passes, 1 unchanged physical failure and 20 explicit domain errors. The conservative, charge-balanced mixed-salt endpoint retains a 12.16% increase in fugacity-normalized propane molality; all 11 hydrate cases need MEG data below the verified range. Remaining acceptance items include process-temperature nonpolar references with a consistent thermodynamic contract, low-temperature MEG data, glycerol identity, raw extended-artifact repair, and independent mixed-salt model validation. Full provenance, exact inputs and endpoint diagnostics are checked into #4336. Keep it draft pending those gates and required domain review.
Exact-head hosted-CI completion — 2026-10-15
Hosted validation has now settled on draft PR #4336 exact head
7ca3ea66ec8e3ff6a7f50c24bac9fbb5694b593a. Build/Test/Javadoc is complete and red. The Java 21 Ubuntu and Windows fast suites reproduce the same result: 16,931 tests, zero assertion failures, 6 errors and 214 skips. The six errors are explicit property-domain rejections: ambient-temperature nitrogen in state-transaction and pH-probe paths, unavailable i-butane in the integrated flow-assurance screen, and unavailable n-butane in an electrolyte-CPA diagnostic.Four of eight slow shards fail, again with zero assertion failures: shard 1 has 13 domain errors, shard 2 has 12, shard 4 has 11, and shard 8 has 6; shards 3, 5, 6 and 7 pass. The failing cases consistently require room/process-temperature nitrogen, unavailable i-/n-butane, or MEG below the qualified 278.15 K lower bound. The legacy four-shard gates mirror those failures, and both Java 8 jobs are skipped after the aggregate gate fails. Javadoc and Java 8/21 model-specification jobs pass. Documentation search separately fails one rendering contract because the new page duplicates its front-matter title as an H1.
The exact KCl discriminator remains clean within the red matrix:
CO2KClHydrateAccuracyAssessmentTestpasses 1/1. Thus the new CI failures do not explain the K10 saturated-CO2-boundary failure or the #4332 K15 water-activity delta. They establish a separate integration blocker: the proposed fail-fast dielectric contract reaches broad existing process, instrumentation, hydrate and electrolyte paths before source coverage is sufficient.No fallback constant, extrapolation, test deletion, skip, tolerance relaxation or ingredient-specific solver is justified. The next dependency is either authoritative data covering the required nitrogen/butane/MEG states, or a reviewed thermodynamic property contract that supplies the necessary temperature, volume and composition derivatives and preserves existing process semantics. Only after that contract is independently validated should #4336 be integrated with #4332 and the unchanged #4306/#4277 and Dholabhai control matrices rerun. #4336 remains draft and is not merge-ready.
Documentation-gate repair checkpoint — 2026-10-15
Draft PR #4336 advanced in place by one documentation-only commit to exact head
a6269013cb7ecedc924be4db0388d8e975f88371(previous head7ca3ea66ec8e3ff6a7f50c24bac9fbb5694b593a). The delta removes the duplicate H1 fromdocs/thermo/DielectricPropertyData.md; it changes no property coefficients, electrolyte interaction, hydrate model, solver path, benchmark fixture, tolerance or empirical offset. The dependent #4332, #4306 and #4277 exact heads remain unchanged.Hosted documentation search, Spotless, pre-commit, PaperLab and CodeQL now pass. The exact-head engineering-capability workflow fails only because
src/main/resources/neqsim/mcp/engineering-coverage.jsonis stale after the documentation heading change; its 17 unit tests pass before the generated-file check rejects the tree. Build/Test/Javadoc is still active. Slow shard 8 reproduces the already documented six hard-domain errors (one sub-278.15 K MEG hydrate case and five i-butane cases), with zero assertion failures, so this commit does not alter the physical blocker.No Dholabhai K10/K15 accuracy claim is advanced from this documentation repair. The next branch-attributable action is to regenerate and validate engineering coverage on the unchanged exact head, then let the full matrix settle. The independent source/domain requirement for nitrogen, butanes and low-temperature MEG—or a reviewed derivative-consistent thermodynamic property contract—remains the scientific prerequisite before integrating #4336 with #4332 and rerunning the unchanged #4306/#4277 controls.
Integrated exact-head Dholabhai discriminator — 2026-10-15
The dependency stack has now been integrated and exercised without weakening its physical contracts.
1fb4277c9542cfeb45a4afbed35b3eb3e86249econ current master. Its K15 salt-only numerical water-activity reference is now0.9223375640965604after the reviewed relative-shielding root correction; the Archer observation remains0.92701and the existing1e-8regression tolerance is unchanged. Every final aqueous fixture also independently checks the defining shielding equation to relative residual <=1e-10. All seven exact-head workflows pass, including all 22 Build/Test/Javadoc jobs across Java 8/21, Ubuntu/Windows and every slow shard. Accountable thermodynamics/domain review and the separate property/model qualification gates still apply.40df2730f0e6d38142dc82e7607cc8971906810c; merge commit24553180b7c1d4c11e06ec83dc90f36be6f2a20f. It introduced no recipe-specific production solver, parameter, offset or tolerance.2489d96354f3281edba6fcafc3786fb755928cff, incorporating current master, fix(thermo): restore electrolyte derivative consistency #4332 and [AI-Assisted] test(hydrate): qualify CO2/brine/MEG with shared solver #4277. Its complete exact-head matrix is red. The useful Qualify electrolyte-CPA CO2 hydrate accuracy for KCl and mixed brines against Dholabhai (1993) #4234 discriminator is explicit:KClWaterActivityReferenceAssessmentTestandKClCO2SolubilityReferenceAssessmentTestpass, andCO2BrineMegHydrateTestpasses 8/8, butCO2KClHydrateAccuracyAssessmentTeststill stops atassertTrue(diagnostics.isSaturatedCO2Boundary())in the first K10 calculation. The Dholabhai water-activity, dissolved-CO2, guest-fugacity and hydrate-water contributions therefore remain unavailable on the integrated general solver.5.1815e-4to2.0498e-3with salt, methane in the heavier-hydrocarbon case increasing from9.1216e-4to1.0215e-3, and mixed NaCl/CaCl2 giving1.6317e-5versus1.3137e-5for NaCl alone. These assertions remain enabled. The fast suite reports 17,098 tests, 9 failures, 15 errors and 214 skips; high-salinity hydrate, reactive-electrolyte and salt-saturation consistency errors also remain. Java 8 aggregate jobs are skipped after the Java 21 matrix fails.#4336 is at exact head
c94fbba4bfc474d94e38c49aaab4a0bce60a71c6; its documentation and generated-coverage repairs pass, but its previously established nitrogen/butane/low-temperature-MEG physical-domain blocker remains. Those species are absent from the K10 CO2/water/K+/Cl- fixture, so #4336 does not explain or waive the saturated-CO2-boundary failure.Next scientific action: repair the general solver's saturated/free-CO2 boundary and the independently failing salting/reactive consistency paths without special-case dispatch, parameter invention or tolerance relaxation; then rerun the unchanged K10/K15 low/high-pressure contribution matrix with NaCl, CaCl2, mixed-salt, Burgass, He-Morse and Yasunishi-Yoshida/Kiepe controls. No hydrate-accuracy or merge-readiness claim is justified yet.
EvenSol commentedon Oct 16, 2026
Property remediation is being split under #4362; #4336 is closed unmerged with its source/data evidence preserved. First bounded replacement #4365 repairs only MEGPVTsim18/19 dielectric aliases using unchanged canonical MEG coefficients, with 24 passing local property/database/flash tests and hosted CI pending. It does not adopt the canonical MEG refit or runtime domain exceptions, and does not repair raw COMP_EXT.csv. Other polar-liquid data, process-temperature nitrogen/alkanes, glycerol identity, PG/olefins and physical salting qualification remain open as B2–B4/C1 in #4362. This issue remains open.
fix(data): align MEG alias dielectric fields with canonical MEG (#4365)