Biogeochemistry with an arsenate reducer
This follows the example in Section 33.1 of Bethke (2007). Suppose that an arsenate-reducing microbe acts in the presence of lactate to catalyse the reaction (1) Bethke provides some background information. In this situation, thermodynamic factors are the main control of the reaction rate: as the reaction proceeds and products accumulate, the energy liberated by the reaction reduces to the energy needed to synthesize cellular ATP, and the thermodynamic drive reduces to zero.
The standard MOOSE geochemical database contains the information:
"arsenate_reducer": {
"species": {
"Lactate-": -1.0,
"HAsO4--": -2.0,
"H2O": -2.0,
"CO3--": 1.0,
"CH3COO-": 1.0,
"As(OH)4-": 2.0
},
"charge": 0.0,
"radius": -1.5,
"molecular weight": 1,
"logk": [6.742, 26.75, 49.93, 71.18, 92.42, 109.5, 123.8, 136.1]
},
This appears in the redox couples
section, but it could equally appear in the mineral species
section. The main biogeochemistry page discusses this further. If this entry did not appear in the database, it could be manually entered, but the equilibrium constants would have to be derived from those already in the database (or from experimental measurements). This is easily done by using the GeochemicalModelInterrogator:
[GeochemicalModelInterrogator]
model_definition = definition
swap_into_basis = 'CO3-- HAsO4-- CH3COO-'
swap_out_of_basis = 'HCO3- H+ O2(aq)'
temperature = 25.0
[]
(modules/geochemistry/test/tests/kinetics/bio_arsenate0.i)and the appropriate model definition:
[UserObjects]
[definition]
type = GeochemicalModelDefinition
database_file = "../../../database/moose_geochemdb.json"
basis_species = "H2O Na+ HCO3- O2(aq) H+ As(OH)4-"
piecewise_linear_interpolation = true
[]
[]
(modules/geochemistry/test/tests/kinetics/bio_arsenate0.i)In this example, the microbe is treated as a kinetic species, and all other species (lactate, etc) are at equilibrium. The main biogeochemistry page discusses this further. Hence, the GeochemicalModelDefinition is:
[UserObjects]
[definition]
type = GeochemicalModelDefinition
database_file = "../../../database/moose_geochemdb.json"
basis_species = "H2O Na+ Cl- HCO3- H+ As(OH)4- Lactate- CH3COO- AsO4---"
kinetic_redox = "arsenate_reducer"
kinetic_rate_descriptions = "rate_arsenate_reducer"
[]
[]
(modules/geochemistry/test/tests/kinetics/bio_arsenate1.i)The rate of Eq. (1) is assumed to be of the form (2) (this is simpler than Bethke's form, although the results are almost the same) where
(units: kg) is the mass of solvent water;
mol.mg.smol.g.day is the intrinsic rate constant, where the mass (grams) in the denominator is the mass of microbe, and the direction is forward (dissolution of acetate only, not the reverse);
(units: g.kg) is the microbe concentration, where the mass (kg) in the denominator is the mass of solvent water;
(units: mol.kg) is the molality of HAsO (this is the free concentration, not the bulk composition);
mol.kg is the half-saturation constant of the acetate;
is the activity product of Eq. (1);
is the equilibrium constant of Eq. (1);
J.mol is an estimate of the energy captured by the microbe for each mole turnover of Eq. (1);
J.K.mol is the gas constant;
(units: K) is the temperature.
In this example, microbe mortality is unimportant. For each mole turnover of this reaction, Bethke estimates the microbe mass increases by g.
The arsenate_reducer
species has a molar mass of g.mol in the database file. It is unimportant that this is definitely incorrect: it is only important to remember this value when entering numerical values for the kinetic rate, below.
Eq. (2) is implemented using the following GeochemistryKineticRate UserObject:
[UserObjects]
[rate_arsenate_reducer]
type = GeochemistryKineticRate
kinetic_species_name = "arsenate_reducer"
intrinsic_rate_constant = 0.6048 # 7E-9 mol/mg/s = 0.6048 mol/g/day
promoting_species_names = 'HAsO4--'
promoting_indices = '1'
promoting_monod_indices = '1'
promoting_half_saturation = 10E-6
multiply_by_mass = true
direction = dissolution
kinetic_biological_efficiency = 5
energy_captured = 125E3
theta = 0.25
eta = 1
[]
[]
(modules/geochemistry/test/tests/kinetics/bio_arsenate1.i)Most of the values are self-explanatory. Note:
multiply_by_mass = true
means the rate is multiplied by the mass (in grams) of thearsenate_reducer
, as desiredthere is no need to use H2O in the
promoting_species
because is just the mass of thesulfate_reducer
in gramskinetic_biological_efficiency = 5
because this is the number of moles ofarsenate_reducer
that is created for one mole Eq. (1) turnover: recall that its molar mass is g.mol
Results
As seen in Figure 1, the microbe mass initially grows rapidly, along with the total reaction rate, but after about 1.3 days, too many reaction products have accumulated and the thermodynamic drive reduces to zero.

Figure 1: Results of the biologically-catalysed arsenate reduction
References
- Craig M. Bethke.
Geochemical and Biogeochemical Reaction Modeling.
Cambridge University Press, 2 edition, 2007.
doi:10.1017/CBO9780511619670.[BibTeX]