pHcalc icon indicating copy to clipboard operation
pHcalc copied to clipboard

Add initial AcidGas class

Open rnelsonchem opened this issue 1 year ago • 1 comments

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

rnelsonchem avatar Mar 28 '23 20:03 rnelsonchem

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

mhvwerts avatar Apr 01 '23 13:04 mhvwerts