Skip to content

Comments

Add initial AcidGas class#7

Open
rnelsonchem wants to merge 1 commit intomasterfrom
AcidGas
Open

Add initial AcidGas class#7
rnelsonchem wants to merge 1 commit intomasterfrom
AcidGas

Conversation

@rnelsonchem
Copy link
Owner

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

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
@mhvwerts
Copy link

mhvwerts commented Apr 1, 2023

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants