pHcalc
pHcalc copied to clipboard
Add initial AcidGas class
This can be used for gasses that participate in acid/base equilibria
Can be used for atmospheric CO2, for example. In the _diff_pos_neg method of the System class, the alpha value calculation is moved out of the if/else to ensure that the new concentrations are calculated correctly
Compare to @mhverts nice GH-6 which does something similar but with a System subclass.
See example usage here: https://gist.github.com/rnelsonchem/709d64446b042127191bc03892d142c0
Replacing the inefficient "double minimization" that I employed in #6 with a "simple" constraint upon the concentration of one of the species in the general minimization is a brilliant idea. This makes very good sense, both chemically and computationally. It also makes the concept more general (not only CO2, but any other gas with acid-base properties when dissolved in water).
Beautiful code: in just a few lines you tell the entire story!
I have adapted the test script from #6 to use AcidGas
(which I would perhaps call AcidGasEq
#9 ). This works very well. You can find it here:
https://gist.github.com/mhvwerts/603a28e8645737b3af90a6d11e4fd591