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!