Computing equilibrium temperature or activity

This page follows Chapter 11 of Bethke (2007).

The geochemistry module can be used to provide equilibrium temperature or activity. For instance, using the standard GWB database and anhydrite instead of Ca as a component (using a swap), the reaction has the equilibrium equation Then:

  • If water activity is 1, the equilibrium temperature (where ) is found to be 43.7C.

  • If water activity is 0.7, the equilibrium temperature (where ) is found to be 11.7C.

  • If the temperature is 25C, the equilibrium is attained when water activity is 0.815.

To perform this calculation using the geochemistry module, a GeochemicalModelDefinition object must be created with the desired mineral species:

[UserObjects<<<{"href": "../../../syntax/UserObjects/index.html"}>>>]
  [definition]
    type = GeochemicalModelDefinition<<<{"description": "User object that parses a geochemical database file, and only retains information relevant to the current geochemical model", "href": "../../../source/userobjects/GeochemicalModelDefinition.html"}>>>
    database_file<<<{"description": "The name of the geochemical database file"}>>> = "../../../database/moose_geochemdb.json"
    basis_species<<<{"description": "A list of basis components relevant to the aqueous-equilibrium problem. H2O must appear first in this list.  These components must be chosen from the 'basis species' in the database, the sorbing sites (if any) and the decoupled redox states that are in disequilibrium (if any)."}>>> = "H2O Ca++ SO4--"
    equilibrium_minerals<<<{"description": "A list of minerals that are in equilibrium with the aqueous solution.  All members of this list must be in the 'minerals' section of the database file"}>>> = "Gypsum Anhydrite"
  []
[]
(modules/geochemistry/test/tests/interrogate_reactions/gypsum.i)

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

[GeochemicalModelInterrogator<<<{"href": "../../../syntax/GeochemicalModelInterrogator/index.html"}>>>]
  model_definition<<<{"description": "The name of the GeochemicalModelDefinition user object"}>>> = definition
  swap_out_of_basis<<<{"description": "Species that should be removed from the model_definition's basis and be replaced with the swap_into_basis species.  There must be the same number of species in swap_out_of_basis and swap_into_basis.  If this list contains more than one species, the swapping is performed one-by-one, starting with the first pair (swap_out_of_basis[0] and swap_into_basis[0]), then the next pair, etc"}>>> = "Ca++"
  swap_into_basis<<<{"description": "Species that should be removed from the model_definition's equilibrium species list and added to the basis"}>>> = "  Anhydrite"
  activity_species<<<{"description": "Species that are provided numerical values of activity (or fugacity for gases) in the activity_value input"}>>> = "H2O"
  activity_values<<<{"description": "Numerical values for the activity (or fugacity) for the species in the activity_species list.  These are activity values, not log10(activity)."}>>> = "1.0"
  temperature<<<{"description": "Equilibrium constants will be computed at this temperature [degC].  This is ignored if interrogation=eqm_temperature."}>>> = 25
  equilibrium_species<<<{"description": "Only output results for this equilibrium species.  If not provided, results for all equilibrium species will be outputted"}>>> = Gypsum
  interrogation<<<{"description": "Type of interrogation to perform.  reaction: Output equilibrium species reactions and log10K.  activity: determine activity products at equilibrium.  eqm_temperature: determine temperature to ensure equilibrium"}>>> = eqm_temperature
[]
(modules/geochemistry/test/tests/interrogate_reactions/gypsum.i)

The output yields the desired information:


Not enough activities known to compute equilibrium temperature for reaction
  Gypsum = 2\*H2O \+ 1\*Ca\+\+ \+ 1\*SO4--  .  log10\(K\) = -4.451
Gypsum.  T = 43.6625degC

The first lines state that equilibrium temperature for the reaction cannot be found because the activities of Ca and SO are unknown. However, when Anhydrite is put into the basis in place of Ca, the equilibrium temperature can be found, and the result is found on the final line.

Altering the activity value for HO using the activity_values input enables finding the equilibrium temperature for different .

To find the activity of water given C, simply use:

  • interrogation = activity

  • remove the activity_species and activity_values lines

as in the page on equilibrium activity ratios. This produces


(A_H2O)^2 (A_Ca++)^1 (A_SO4--)^1 = 10^-4.451
(A_H2O)^2 = 10^-0.1775

where the last line is the desired result: .

References

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