Skip to content

Add Dholabhai hydrate comparisons and salt-specific accuracy discussion - #189

Merged
EvenSol merged 3 commits into
masterfrom
codex/hydrate-dholabhai-comparison-20261005
Oct 5, 2026
Merged

EvenSol merged 3 commits into
masterfrom
codex/hydrate-dholabhai-comparison-20261005

Conversation

@EvenSol

@EvenSol EvenSol commented Oct 5, 2026

Copy link
Copy Markdown
Owner

The hydrate tutorial's repaired KCl solver returns a numerical boundary, but its previous external benchmark only covered NaCl. This update adds independent comparison and discussion against Dholabhai, Kalogerakis & Bishnoi (1993), doi:10.1021/je00012a045.

Comparison

  • Retain all 110 non-seawater experimental endpoints across 28 pure-water, NaCl, KCl, CaCl2, NaCl-KCl and NaCl-CaCl2 recipes.
  • Match Table I's measured wet-basis recipes and Tables III-IV's absolute pressures and temperatures; retain original units and source-table provenance.
  • Add every-point tables, family and per-recipe bias/MAE/RMSE, two comparison figures and three CSV exports.
  • Explain the pressure-search endpoint, instrument specifications versus combined uncertainty, paper regressions versus model predictions, salt-specific discrepancies, freezing/precipitation limits and the separate Burgass benchmark.
  • Match the 10.02 wt% KCl endpoint at 11.30 bara and compare 10.00 wt% and finite-CO2 controls.

All 110 points converge, conserve input and meet the saturated GAS+AQUEOUS comparison requirements. This is numerical acceptance, not an experimental accuracy claim. Matched K10 predicts -2.546515 °C versus measured -4.130 °C, a +1.583485 K error. NaCl RMSE is 0.324862 K, KCl 2.685082 K, and concentrated KCl errors reach 6.729004 K. Per-recipe metrics keep opposing mixed-salt biases visible.

The actionable accuracy limitation is tracked by equinor/neqsim#4234, under #3144. No parameters are fitted and no empirical mud correction is applied to these measurements. The five synthetic-seawater endpoints are excluded because their complete salt recipe is outside the three-salt builder. The supplied ACS PDF and original figures are not redistributed.

Validation

  • Final clean Python/IPython process and fresh JVM: 24/24 code cells, 22/22 numerical/workflow checks, 197/197 accepted hydrate attempts, 253.4 s; outputs and all nine figures retained.
  • Source-pinned NeqSim master snapshot f59810115c07d9a3ef479e55be45a5972963231d, source-built Java 3.23.0, Python bridge 3.20.0. Verified reused JAR SHA-256 e26d9dd82e86d351fa58fe05e04801e2af6aebb17d19081c690736d924536f19; cached source files matched the clean immutable checkout, and class origin was asserted.
  • Current core master 17c0beca5a5ca53401fa214c2a542892e5a6a467 was inspected; no thermo/hydrate/electrolyte/database changes from the tested pin. That newer head was not rebuilt.
  • Focused scripts/check_notebook.py --require-main-source with the updated ledger and affected-link catalog: 0 errors, 0 warnings.
  • Repository checker unit tests: 6 passed. All 330 catalog notebook links resolve against the connector-fetched repository tree.
  • AST/schema, code readability (<=100 characters), sequential execution counts, complete retained outputs and Colab math checks pass.
  • nbconvert HTML / MathJax 3.2.2 SVG / WeasyPrint / Poppler review: every Markdown and result cell, 8 display + 24 inline expressions, 9 figures, all tables and 31 notebook + 13 catalog rendered pages inspected.
  • No pre-commit configuration exists on the inspected Colab base; its PR workflow runs the notebook checker and unit tests.
  • Hosted Colab installation/build and repository-wide CI were not executed locally. VALIDATION PENDING CI.

Documentation impact

The existing notebook gains the measured comparison, scientific discussion, sources, exports and accuracy follow-up. Its catalog description and maintenance ledger are updated in the same branch. No NeqSim Java API, model equations, parameters or defaults change.

Open this draft in Colab

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