# Chemical kinetics for mineral reactions using custom surface area models

# Chemical kinetics for mineral reactions using custom surface area models#

Written by Allan Leal (ETH Zurich) on Nov 30th, 2022

Attention

Always make sure you are using the latest version of Reaktoro. Otherwise, some new features documented on this website will not work on your machine and you may receive unintuitive errors. Follow these update instructions to get the latest version of Reaktoro!

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!