Computing equilibrium activity ratios
This page follows Chapter 11 of Bethke (2007).
The geochemistry
module can be used to provide activity ratios assuming equilibrium.
Muscovite and kaolinite
Using the standard GWB database and the component kaolinite instead of Al (using a swap), the reaction has an equilibrium constant at 25C. Assuming a water activity of 1, the equilibrium activity ratio can be computed to be
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 K+ Al+++ SiO2(aq) H+"
equilibrium_minerals = "Muscovite Kaolinite"
piecewise_linear_interpolation = true # to get exact logK at 25degC with no best-fit interpolation
[]
[]
(modules/geochemistry/test/tests/interrogate_reactions/muscovite.i)Then a GeochemicalModelInterrogator must be created which specifies the desired swaps and the interrogation = activity
instruction:
[GeochemicalModelInterrogator]
model_definition = definition
swap_out_of_basis = "Al+++"
swap_into_basis = " Kaolinite"
activity_species = "H2O"
activity_values = "1.0"
equilibrium_species = Muscovite
interrogation = activity
[]
(modules/geochemistry/test/tests/interrogate_reactions/muscovite.i)The final line of the output yields the desired information:
(A_K+)^1 (A_Al+++)^3 (A_SiO2(aq))^3 (A_H+)^-10 = 10^14.56
(A_K+)^1 (A_H+)^-1 = 10^3.421
Muscovite and other minerals
The geochemical database can be manipulated to give the following reactions for muscovite: (at 25C). These yield, respectively
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 K+ Al+++ SiO2(aq) H+"
equilibrium_minerals = "Muscovite Quartz Maximum Tridymite Amrph^silica"
piecewise_linear_interpolation = true # to get exact logK at 25degC with no best-fit interpolation
[]
[]
(modules/geochemistry/test/tests/interrogate_reactions/muscovite2.i)Then a GeochemicalModelInterrogator must be created which specifies the desired swaps and the interrogation = activity
instruction:
[GeochemicalModelInterrogator]
model_definition = definition
swap_out_of_basis = "SiO2(aq) Al+++ Quartz SiO2(aq) Tridymite SiO2(aq)"
swap_into_basis = " Quartz Maximum SiO2(aq) Tridymite SiO2(aq) Amrph^silica"
equilibrium_species = Muscovite
interrogation = activity
[]
(modules/geochemistry/test/tests/interrogate_reactions/muscovite2.i)The output yields the desired information
(A_H2O)^6 (A_K+)^1 (A_Al+++)^3 (A_SiO2(aq))^3 (A_H+)^-10 = 10^14.56
(A_H2O)^6 (A_K+)^1 (A_Al+++)^3 (A_H+)^-10 = 10^26.56
(A_K+)^-2 (A_H+)^2 = 10^-9.681
(A_K+)^-2 (A_SiO2(aq))^-6 (A_H+)^2 = 10^14.31
(A_K+)^-2 (A_H+)^2 = 10^-8.686
(A_K+)^-2 (A_SiO2(aq))^-6 (A_H+)^2 = 10^14.31
(A_K+)^-2 (A_H+)^2 = 10^-1.967
Ca-clinoptilolite, prehnite and quartz
Using the standard GWB database, prehnite instead of Al, quartz instead of SiO(aq) (using swaps), the reaction has an equilibrium constant at 200C. Assuming a water activity of 1, the equilibrium activity ratio can be computed to be
To produce this result 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 Prehnite Quartz"
piecewise_linear_interpolation = true # to get exact logK at 200degC with no best-fit interpolation
[]
[]
(modules/geochemistry/test/tests/interrogate_reactions/clinoptilolite2.i)Then a GeochemicalModelInterrogator must be created which specifies the desired swaps and the interrogation = activity
instruction:
[GeochemicalModelInterrogator]
model_definition = definition
swap_out_of_basis = "Al+++ SiO2(aq)"
swap_into_basis = " Prehnite Quartz"
activity_species = "H2O"
activity_values = "1"
equilibrium_species = "Clinoptil-Ca"
temperature = 200
interrogation = activity
[]
(modules/geochemistry/test/tests/interrogate_reactions/clinoptilolite2.i)The final line of the output yields the desired information:
(A_Ca++)^1 (A_Al+++)^2 (A_SiO2(aq))^10 (A_H+)^-8 = 10^-13.51
(A_Ca++)^-1 (A_SiO2(aq))^7 (A_H+)^2 = 10^-27.22
(A_Ca++)^-1 (A_H+)^2 = 10^-10.23
References
- Craig M. Bethke.
Geochemical and Biogeochemical Reaction Modeling.
Cambridge University Press, 2 edition, 2007.
doi:10.1017/CBO9780511619670.[BibTeX]