Repository navigation
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
Mixing two formation waters can create barite risk even when the individual waters are undersaturated. This executed companion notebook discusses the mechanisms, evaluates a full mixing envelope and compares practical solutions.
Changes
notebooks/flowassurance/barium_rich_formation_water_mixing.ipynb, version 1.0.0: three explicitly synthetic, charge-balanced formation-water analyses; native NeqSim PITZER_BINARY screening of BaSO4, SrSO4, CaSO4 and calcite; mixing, T/P/pH/composition and sulfate-feed sensitivities; independent inventory bounds and quadratic check.Representative screening results
At 60 °C / 50 bara and specified pH 6.5: A+B maximum barite SI 2.451 at fraction A 0.38. A+C sulfate-poor control remains below zero (maximum −1.973). At 50:50, the native frozen-speciation screen gives 532.941 mg/L BaSO4 versus an absolute analytical-inventory upper bound of 679.825 mg/L. These are not field deposition rates or approved mixing limits.
Validation
54d6be9c794cec093fbfa0e347fa54f5250881db; 3,675 source/resource/POM files verified against connector-read Git blob identities. JAR SHA-256806fb3404843a12d29fb7d559d953895493c7d9f3cdfacdc2d27dacfe95bafc6.python -m unittest discover -s scripts -p test_check_notebook.py: 6 passed.scripts/check_notebook.pywith--require-main-source, focused ledger/catalog: 0 errors, 0 warnings. All 330 main-catalog links checked against the authoritative remote tree plus the new notebook. Python AST, ≤100-character code lines, compact Colab-safe math and retained-output checks pass.Qualification limits and improvement issue
PITZER_BINARY is an equivalent-ionic-strength trace-ion screen with frozen approximate speciation and molarity products; it is not full mixed-electrolyte Pitzer. No experimental precipitation validation, deposition kinetics, inhibitor dose, gas/CO2 flash, Ba/Sr solid solution or NORM calculation is claimed. A successful numerical solve does not qualify model accuracy.
The full SystemPitzer Na–Ba–Cl–SO4 precipitation attempt correctly fails closed on missing interaction coverage. Its diagnostic is caught only for that known condition and retained separately. Filed and verified equinor/neqsim#4351; coordinate through #3144. No unsupported full-model output is used.
Open in Colab