Chemical models of Morro de Ferro groundwater
This example closely follows Section 7.3 of Bethke (2007).
A chemical analysis of the major element composition of Morro de Ferro groundwater is shown in Table 1. In addition:
the temperature is 22C;
the pH is 6.05;
EhmV.
Species | Concentration (mg.litre) |
---|---|
HCO | 1.8 |
Ca | 0.238 |
Mg | 0.352 |
Na | 0.043 |
K | 0.20 |
Fe (II) | 0.73 |
Fe (total) | 0.76 |
Mn | 0.277 |
Zn | 0.124 |
Cl | |
SO | 0.15 |
Dissolved O | 4.3 |
Assuming redox equilibrium
Assume redox equilibrium and that the oxidation state is set by the dissolved oxygen. Also:
the free concentration of O(aq) is set to 4.3mg.litre,
the bulk composition of Fe is 0.73mg.litre,
and charge balance is enforced on Cl
MOOSE input file
The MOOSE input file contains the GeochemicalModelDefinition and TimeIndependentReactionSolver. The bulk mole number of the aqueous species is also fixed appropriately in the latter. The numbers are different than the concentration in mg.l given in the above table, and may be worked out using the TDS. The other flags options ensure nice convergence and an accurate comparison with the Geochemists Workbench software.
[TimeIndependentReactionSolver]
model_definition = definition
temperature = 22
charge_balance_species = "Cl-" # this means the bulk moles of Cl- will not be exactly as set below
constraint_species = "H2O H+ O2(aq) Cl- HCO3- Ca++ Mg++ Na+ K+ Fe++ Mn++ Zn++ SO4--"
constraint_value = " 1.0 -6.05 0.13438E-3 3.041E-5 0.0295E-3 0.005938E-3 0.01448E-3 0.0018704E-3 0.005115E-3 0.01307E-3 0.005042E-3 0.001897E-3 0.01562E-4"
constraint_meaning = "kg_solvent_water log10activity free_concentration bulk_composition bulk_composition bulk_composition bulk_composition bulk_composition bulk_composition bulk_composition bulk_composition bulk_composition bulk_composition"
constraint_unit = " kg dimensionless molal moles moles moles moles moles moles moles moles moles moles"
max_initial_residual = 1E-2
ramp_max_ionic_strength_initial = 10
stoichiometric_ionic_str_using_Cl_only = true # for comparison with GWB
mol_cutoff = 1E-5
abs_tol = 1E-15
[]
[UserObjects]
[definition]
type = GeochemicalModelDefinition
database_file = "../../../database/moose_geochemdb.json"
basis_species = "H2O H+ Cl- O2(aq) HCO3- Ca++ Mg++ Na+ K+ Fe++ Mn++ Zn++ SO4--"
[]
[]
(modules/geochemistry/test/tests/redox_disequilibrium/morro.i)Geochemists Workbench input file
The equivalent GWB input file is
# React script that is equivalent to the morro.i MOOSE input file
data = thermo.tdat verify
conductivity = conductivity-USGS.dat
temperature = 22 C
H2O = 1 free kg
Cl- = 3.041E-5 mol
balance on Cl-
H+ = 6.05 pH
O2(aq) = 0.13438E-3 free molal
HCO3- = 0.0295E-3 mol
Ca++ = 0.005938E-3 mol
Mg++ = 0.01448E-3 mol
Na+ = 0.0018704E-3 mol
K+ = 0.005115E-3 mol
Fe++ = 0.01307E-3 mol
Mn++ = 0.005042E-3 mol
Zn++ = 0.001897E-3 mol
SO4-- = 0.01562E-4 mol
printout species = long
suppress all
epsilon = 1e-13
go
(modules/geochemistry/test/tests/redox_disequilibrium/morro.rea)Assuming redox disequilibrium
Assume redox disequilibrium for iron. Also:
the free concentration of O(aq) is set to 4.3mg.litre,
the bulk composition of Fe is 0.73mg.litre,
the bulk composition of Fe is 0.03mg.litre,
and charge balance is enforced on Cl
MOOSE input file
The MOOSE input file is very similar to the redox-equilibrium case. The differences are:
Fe is included in the basis;
the sum of the bulk composition for Fe and Fe equals the bulk composition of Fe in the equilibrium case
[TimeIndependentReactionSolver]
model_definition = definition
temperature = 22
charge_balance_species = "Cl-" # this means the bulk moles of Cl- will not be exactly as set below
constraint_species = "H2O H+ O2(aq) Cl- HCO3- Ca++ Mg++ Na+ K+ Fe++ Fe+++ Mn++ Zn++ SO4--"
constraint_value = " 1.0 -6.05 0.13438E-3 3.041E-5 0.0295E-3 0.005938E-3 0.01448E-3 0.0018704E-3 0.005115E-3 0.012534E-3 0.0005372E-3 0.005042E-3 0.001897E-3 0.01562E-4"
constraint_meaning = "kg_solvent_water log10activity free_concentration bulk_composition bulk_composition bulk_composition bulk_composition bulk_composition bulk_composition bulk_composition bulk_composition bulk_composition bulk_composition bulk_composition"
constraint_unit = " kg dimensionless molal moles moles moles moles moles moles moles moles moles moles moles"
max_initial_residual = 1E-2
ramp_max_ionic_strength_initial = 10
stoichiometric_ionic_str_using_Cl_only = true # for comparison with GWB
mol_cutoff = 1E-5
abs_tol = 1E-15
[]
[UserObjects]
[definition]
type = GeochemicalModelDefinition
database_file = "../../../database/moose_geochemdb.json"
basis_species = "H2O H+ Cl- O2(aq) HCO3- Ca++ Mg++ Na+ K+ Fe++ Fe+++ Mn++ Zn++ SO4--"
[]
[]
(modules/geochemistry/test/tests/redox_disequilibrium/morro_disequilibrium.i)Geochemists Workbench input file
The equivalent GWB input file is
# React script that is equivalent to the morro_disequilibrium.i MOOSE input file
data = thermo.tdat verify
conductivity = conductivity-USGS.dat
temperature = 22 C
decouple Fe+++
H2O = 1 free kg
Cl- = 3.041E-5 mol
balance on Cl-
H+ = 6.05 pH
O2(aq) = 0.13438E-3 free molal
HCO3- = 0.0295E-3 mol
Ca++ = 0.005938E-3 mol
Mg++ = 0.01448E-3 mol
Na+ = 0.0018704E-3 mol
K+ = 0.005115E-3 mol
Fe++ = 0.012534E-3 mol
Fe+++ = 5.372E-7 mol
Mn++ = 0.005042E-3 mol
Zn++ = 0.001897E-3 mol
SO4-- = 0.01562E-4 mol
printout species = long
suppress all
epsilon = 1e-13
go
(modules/geochemistry/test/tests/redox_disequilibrium/morro_disequilibrium.rea)Results
The geochemistry
results mirror those from Geochemists Workbench exactly.
Error and charge-neutrality error
The geochemistry
simulations report an error of less than mol, and that the charge of the solution has magnitude less than mol.
Solution mass
The solution mass is 1.000kg.
Ionic strength and water activity
The ionic strength is 1.01E-4mol/kg(solvent water) for the equilibrium case and 1.29E-4mol/kg(solvent water) for the disequilibrium case. The water activity is 1.000 in both cases
pH and pe
The pH is 6.05 in both cases (as specified by the constraint), the pe is 14.7 in both cases.
Nernst Eh values
Bethke (2007) computes the Nernst Eh values for the redox half-reactions as: Both codes produce this result. The latter one is only relevant in the redox-disequilibrium case
Aqueous species distribution
The species distribution predicted by Bethke (2007) is shown in the right-hand column of Table 2. This result is obtained by ignoring any potential precipitation of minerals. Both codes predict the same result, up to precision.
Species | Equilibrium | Disequilibrium |
---|---|---|
Fe | ||
FeSO | ||
FeHCO | ||
FeCl | ||
FeOH | ||
Fe(OH) | ||
Fe(OH) | ||
FeOH | ||
Fe(OH) |
References
- Craig M. Bethke.
Geochemical and Biogeochemical Reaction Modeling.
Cambridge University Press, 2 edition, 2007.
doi:10.1017/CBO9780511619670.[BibTeX]