PHREEQC can model kinetic reactions of any type in a perfectly general and flexible manner.
Kinetic reaction rates are defined with keyword RATES in the form of BASIC programs.
The rates are called with keyword KINETICS, which defines the time steps, the chemical formula of the reactant, and parameters that are used in the rate.
BASIC programs consist of numbered lines with statements that resemble the formula in a spreadsheet cell.
Special functions give access to the chemical variables of PHREEQC. These functions
are described in the PHREEQC manual in "The Basic interpreter", Table 8.
A simple example is the kinetic dissolution of quartz, cf. PHREEQC file kin_qu.phr.
The rate is programmed in BASIC as:
RATES
Quartz
-start
1 A0 = parm(1)
2 V = parm(2)
10 rate = (A0 / V) * (m/m0)^0.67 * 10^-13.7 * (1 - SR("Quartz"))
20 save rate * time
-end
Keyword KINETICS calls the rate. Under this keyword, A0 and V are defined with the identifier -parms.
The graph shows the increase of the Si concentration in time for typical conditions in a soil, A0 = 23
m2 and V = 0.16 L.
The definition of the rates for minerals has been simplified in PHREEQC 3.8, which uses the rates for a plethora of minerals, copied into PHREEQC_RATES.DAT directly from the tables in the compilations by Palandri and Kharaka (2004) and Hermanská et al. (2022, 2023), see kinetic rates for minerals.