Documentation
Overview
Crysalt predicts mineral-scale precipitation in oil & gas production systems — which minerals scale, and how much, as a brine moves from reservoir to surface. You run it yourself, as a local MCP server your AI tools can call or as a REST API, so your production data never leaves your network.
What it does
You describe a brine — the dissolved ions in mg/L — and a condition: temperature, pressure, pH, and an optional co-existing gas. Crysalt balances the brine's charge, solves the aqueous equilibrium with a Newton-Raphson method, corrects each ion's activity with the Pitzer model and each mineral's solubility product for temperature and pressure, then reports which minerals are supersaturated, how much of each precipitates, and the equilibrium pH — with a convergence flag and warnings so you always know when to trust the result.
You provide
- Brine — ions in mg/L
- T · P · pH
- Optional gas (CO₂/H₂S/CH₄)
Engine — local
- Charge balance
- Pitzer activities
- Newton-Raphson equilibrium
- T,P-corrected Ksp
You get back
- Supersaturated minerals
- Precipitated mass
- SR · SI · pH
- Converged + warnings
What you get back
Every prediction returns, per mineral and for the brine as a whole:
| Field | Meaning |
|---|---|
| Saturation ratio (SR) | IAP / Ksp. Above 1 the water is supersaturated — the mineral tends to precipitate. |
| Saturation index (SI) | log₁₀(SR). Above 0 indicates a scaling tendency. |
| Precipitated mass | How much of each mineral drops out to reach equilibrium, per litre of brine. |
| Equilibrium pH | The pH the brine settles to — your input pH is only a starting point. |
| Ionic strength | I = ½·Σ mᵢzᵢ² — a measure of total dissolved salt; it drives the activity corrections. |
| Converged + warnings | Whether the solver reached a stable equilibrium, plus any caveats (e.g. a brine beyond the model's validated range). |
| Gas exchange | When a gas phase is set: each gas's partial pressure and the net amount exsolved or absorbed. |
| Full speciation | Every aqueous species' molality and activity coefficient, and each reaction's equilibrium constant. |
Three ways to use it
In your AI workflow
Run the MCP server and the assistant you already use calls scale prediction as a tool — locally, with nothing leaving your network.
From code
The same engine is a REST API for pipelines and automation — see the API reference.
In your browser
The Playground runs the engine for a single brine, a blend of two waters, or a P,T profile — no setup.
Why you can trust the numbers
Crysalt is validated against published experimental data and an independent reference code (PHREEQC, USGS) — agreement with a separately-fitted implementation is a genuine cross-check, not a tautology. A few headline results:
It is rigorous and validated, and scoped for decisions in the loop — not a replacement for a specialist's final sign-off. The full validation tables, the science, and the honestly-stated limits are on the Methodology page.
converged flag and a list of
warnings. If the solver didn't converge, or a brine is pushed past the activity model's
validated range, the response says so — don't trust numbers a warning flags.