-
Notifications
You must be signed in to change notification settings - Fork 23
Open
Labels
Description
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:
- (easiest near term) -
phreeqpythonexposes ansimethod 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 - A more advanced version of item 1 could evaluate the si of multiple phases and return the lowest
- Alternatively, we could compile Ksp values for a selected number of commonly-encountered scalants and hard-code them into a
Solutionmethod. For each phase, method would retrieve the relevant aqueous concentrations usingget_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. - Finally, we could add a
saturation_indexmethod to the abstractEOSclass 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 aSolutionmethod 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.
Reactions are currently unavailable