Computing pH

This page follows Chapter 11 of Bethke (2007).

The geochemistry module can be used to provide values for pH assuming equilibrium. Recall that where denotes activity.

An example of such a calculation involves the mineral hematite. Hematite's equilibrium reaction is has an equilibrium constant at 25C. Assuming a water activity of 1, and , equilibrium reads (1)

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++ H+ O2(aq)"
    equilibrium_minerals = "Hematite"
    piecewise_linear_interpolation = true # to get exact logK at 25degC with no best-fit interpolation
  []
[]
(modules/geochemistry/test/tests/interrogate_reactions/hematite.i)

Then a GeochemicalModelInterrogator must be created which specifies the desired swaps and the interrogation = activity instruction:

[GeochemicalModelInterrogator]
  model_definition = definition
  equilibrium_species = Hematite
  activity_species = 'H2O Fe++'
  activity_values = '1 1E-10'
  interrogation = activity
[]
(modules/geochemistry/test/tests/interrogate_reactions/hematite.i)

The output yields the desired information:


(A_H+)^-4 (A_O2(aq))^0.5 = 10^3.068

This is the square-root of Eq. (1).

References

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