Skip to content

Feature: Scaling tendency / Saturation Index #58

@rkingsbury

Description

@rkingsbury

Solution does not currently have a method to predict the saturation index or scaling tendency. This is an important feature for process engineering work. There are a few ways to go about this:

  1. (easiest near term) - phreeqpython exposes an si method that returns the saturation index for a specific phase. A method could be added to the native and phreeqc engines (both of which use phreeqpython) to return the si for a specific phase like calcite
  2. A more advanced version of item 1 could evaluate the si of multiple phases and return the lowest
  3. Alternatively, we could compile Ksp values for a selected number of commonly-encountered scalants and hard-code them into a Solution method. For each phase, method would retrieve the relevant aqueous concentrations using get_amount, calculate the saturation, and then return the minimum SI, or perhaps a tuple of the minimum SI and the phase associated with that minimum. The advantage of this approach is that it would not depending on the underlying modeling engine.
  4. Finally, we could add a saturation_index method to the abstract EOS class that defines all electrolyte modeling engines. That leaves it up to the implementation of each modeling engine how to go about the above steps. Then a Solution method just calls the underlying engine method. This is probably the most robust long-term solution.

Common scalants should probably include Ca, Ba, and Sr carbonate and sulfate, as well as possibly silica.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions