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 the arsenate_reducer, as desired

  • there is no need to use H2O in the promoting_species because is just the mass of the sulfate_reducer in grams

  • kinetic_biological_efficiency = 5 because this is the number of moles of arsenate_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

  1. Craig M. Bethke. Geochemical and Biogeochemical Reaction Modeling. Cambridge University Press, 2 edition, 2007. doi:10.1017/CBO9780511619670.[BibTeX]