You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Speciation support was recently added to the native modeling engine (in v0.8.0), which up until that point only provided activity coefficients for pre-defined ionic compositions. Hence, speciation and thermodynamics are now combined into one modeling engine.
Although in many cases, users will be primarily interested in one or the other (speciation OR activity coefficients of strong electrolytes), some research is needed to more fully examine the validity of combining these approaches - i.e., what happens when you try to calculate activity coefficients on a solution after speciation?
There are several specific, related items to investigate here:
Pitzer activity coefficients of speciated strong electrolytes
Consider a solution of MgCl2. If I enter this as a simple electrolyte solution, pyEQL's pitzer model implementation will return accurate activity coefficients:
Now, get_activity_coefficient is programmed to use total salt concentrations rather than individual ion concentrations when invoking the Pitzer model, so the total amount of Mg+2 and Cl- entering the calculation is no different than before speciation. However, the ionic strength is different because many of the new species are monovalent rather than divalent, and hence don't contribute as much. This causes the value of the activity coefficient to shift a little bit.
Presumably, this result is less accurate, because when Pitzer parameters are fitted to data, I don't think speciation is considered. In other words, the ionic strength used in the expressions always assumes full dissociation of the respective salts. So, how do we deal with this?
Thermodynamic Inconsistency between PHREEQC and pyEQL Pitzer
Speciation calculations in the native modeling engine use PHREEQC's llnl.dat database, because it contains a large number of species (including trace species) and works well at moderate to high salinities (see Lu et al.). However, it does not use the Pitzer model (rather, it uses the B-dot equation; see Table 1).
Meanwhile, the native modeling engine uses the Pitzer model in an attempt to most accurately capture solution thermodynamics at moderate to high concentrations. This obviously results in some inconsistency between the speciation and the activity coefficients.
The question is - what are the practical implications of this inconsistency? Does it introduce meaningful inaccuracies into the properties of interest, or not?
The text was updated successfully, but these errors were encountered:
Speciation support was recently added to the native modeling engine (in v0.8.0), which up until that point only provided activity coefficients for pre-defined ionic compositions. Hence, speciation and thermodynamics are now combined into one modeling engine.
Although in many cases, users will be primarily interested in one or the other (speciation OR activity coefficients of strong electrolytes), some research is needed to more fully examine the validity of combining these approaches - i.e., what happens when you try to calculate activity coefficients on a solution after speciation?
There are several specific, related items to investigate here:
Pitzer activity coefficients of speciated strong electrolytes
Consider a solution of MgCl2. If I enter this as a simple electrolyte solution, pyEQL's pitzer model implementation will return accurate activity coefficients:
If I speciate the solution, there are many new species besides Mg+2 and Cl-:
Now,
get_activity_coefficient
is programmed to use total salt concentrations rather than individual ion concentrations when invoking the Pitzer model, so the total amount of Mg+2 and Cl- entering the calculation is no different than before speciation. However, the ionic strength is different because many of the new species are monovalent rather than divalent, and hence don't contribute as much. This causes the value of the activity coefficient to shift a little bit.Presumably, this result is less accurate, because when Pitzer parameters are fitted to data, I don't think speciation is considered. In other words, the ionic strength used in the expressions always assumes full dissociation of the respective salts. So, how do we deal with this?
Thermodynamic Inconsistency between PHREEQC and pyEQL Pitzer
Speciation calculations in the native modeling engine use PHREEQC's
llnl.dat
database, because it contains a large number of species (including trace species) and works well at moderate to high salinities (see Lu et al.). However, it does not use the Pitzer model (rather, it uses the B-dot equation; see Table 1).Meanwhile, the native modeling engine uses the Pitzer model in an attempt to most accurately capture solution thermodynamics at moderate to high concentrations. This obviously results in some inconsistency between the speciation and the activity coefficients.
The question is - what are the practical implications of this inconsistency? Does it introduce meaningful inaccuracies into the properties of interest, or not?
The text was updated successfully, but these errors were encountered: