Reaction balancing
This page follows Chapter 11 of Bethke (2007).
The geochemistry
module can be used to provide balanced reactions in terms of user-defined components.
Ca-clinoptilolite
The reaction for the mineral Ca-clinoptilolite is written in the database as with an equilibrium constant of at 25C. Using basis-swaps, it can be expressed in terms of muscovite (instead of Al), quartz (instead of SiO(aq)) and OH instead of H: with .
To perform this calculation using the geochemistry
module, a GeochemicalModelDefinition object must be created with the desired mineral species:
[UserObjects]
[definition]
type = GeochemicalModelDefinition
database_file = "../../../database/moose_geochemdb.json"
basis_species = "H2O Ca++ Al+++ SiO2(aq) H+ K+"
equilibrium_minerals = "Clinoptil-Ca Muscovite Quartz"
piecewise_linear_interpolation = true # to get exact logK at 25degC with no best-fit interpolation
[]
[]
(modules/geochemistry/test/tests/interrogate_reactions/clinoptilolite.i)Then a GeochemicalModelInterrogator must be created which specifies the desired swaps:
[GeochemicalModelInterrogator]
model_definition = definition
swap_out_of_basis = "Al+++ SiO2(aq) H+"
swap_into_basis = " Muscovite Quartz OH-"
equilibrium_species = "Clinoptil-Ca"
[]
(modules/geochemistry/test/tests/interrogate_reactions/clinoptilolite.i)The first and last lines of the output yield the desired information:
Clinoptil-Ca = 12*H2O + 1*Ca++ + 2*Al+++ + 10*SiO2(aq) - 8*H+ . log10(K) = -9.12
Clinoptil-Ca = 8*H2O + 1*Ca++ + 0.6667*Muscovite + 8*SiO2(aq) - 1.333*H+ - 0.6667*K+ . log10(K) = -18.83
Clinoptil-Ca = 8*H2O + 1*Ca++ + 0.6667*Muscovite + 8*Quartz - 1.333*H+ - 0.6667*K+ . log10(K) = 13.16
Clinoptil-Ca = 6.667*H2O + 1*Ca++ + 0.6667*Muscovite + 8*Quartz + 1.333*OH- - 0.6667*K+ . log10(K) = -5.484
Pyrite
The standard reaction for the mineral Pyrite is Using basis-swaps, it can be expressed in terms Fe(OH)(ppd) (instead of Fe): Alternatively, it can be expressed in terms of HS(aq) instead of SO: Or in terms of HS(aq) and SO:
To perform this calculation using the geochemistry
module, a GeochemicalModelDefinition object must be created with the desired mineral species:
[UserObjects]
[definition]
type = GeochemicalModelDefinition
database_file = "../../../database/moose_geochemdb.json"
basis_species = "H2O Fe++ SO4-- H+ O2(aq)"
equilibrium_minerals = "Pyrite Fe(OH)3(ppd)"
piecewise_linear_interpolation = true # to get exact logK at 25degC with no best-fit interpolation
[]
[]
(modules/geochemistry/test/tests/interrogate_reactions/pyrite.i)Then a GeochemicalModelInterrogator must be created which specifies the desired swaps:
[GeochemicalModelInterrogator]
model_definition = definition
swap_out_of_basis = "Fe++ Fe(OH)3(ppd) SO4-- O2(aq)"
swap_into_basis = " Fe(OH)3(ppd) Fe++ H2S(aq) SO4--"
equilibrium_species = Pyrite
[]
(modules/geochemistry/test/tests/interrogate_reactions/pyrite.i)The output yields the desired information:
Pyrite = -1*H2O + 1*Fe++ + 2*SO4-- + 2*H+ - 3.5*O2(aq) . log10(K) = 217.4
Pyrite = -3.5*H2O + 1*Fe(OH)3(ppd) + 2*SO4-- + 4*H+ - 3.75*O2(aq) . log10(K) = 221
Pyrite = -1*H2O + 1*Fe++ + 2*SO4-- + 2*H+ - 3.5*O2(aq) . log10(K) = 217.4
Pyrite = -1*H2O + 1*Fe++ + 2*H2S(aq) - 2*H+ + 0.5*O2(aq) . log10(K) = -45.39
Pyrite = -1*H2O + 1*Fe++ + 1.75*H2S(aq) - 1.5*H+ + 0.25*SO4-- . log10(K) = -12.54
References
- Craig M. Bethke.
Geochemical and Biogeochemical Reaction Modeling.
Cambridge University Press, 2 edition, 2007.
doi:10.1017/CBO9780511619670.[BibTeX]