Chemical kinetics for mineral reactions using custom surface area models

Chemical kinetics for mineral reactions using custom surface area models#

This tutorial is unfinished. We will show you here how to define your own surface area model to be used together with heterogeneous reactions (such as mineral dissolution/precipitation reactions). For example, we’ll show how to define the following surface area model below commonly used by geochemical modeling software (e.g., PHREEQC [Parkhurst and Appelo, 2013]):

def areafn(props: ChemicalProps):
    q0 = 1.0  # the initial amount of calcite (in mol)
    A0 = 0.1  # the initial surface area of calcite (in m2)
    q = props.speciesAmount("Calcite")  # current amount of calcite during the simulation
    return A0 * pow(q / q0, p)

system = ChemicalSystem(db, 
    ...
    MineralSurface("Calcite").setAreaModel(areafn)
    ...
) 

Stay tuned!