Reactions
The reactions block defines the elementary reaction steps of the model.
Basic Form
reactions {
{A}+{*}=>{A*} @ HertzKnudsenDefault(Asite=1e-20, m=12, theta=1, sigma=1, S=1, Edes=120e3),
{A*}+{B*}=>{AB*}+{*} @ ArrheniusDefault(Vf=1e13, Vb=1e13, Eaf=120e3, Eab=80e3)
}
Stoichiometric Syntax
Species labels are written inside braces.
{A}
{A*}
{*}
Stoichiometric coefficients are written in front of the label.
2{H*}
Reaction Arrow
The reaction arrow => separates reactants and products.
{A}+{*}=>{A*}
Elementary steps are treated as microscopically reversible, so a reaction is defined once and evaluated in both directions.
Kinetic Model Attachment
Each reaction is followed by @ ModelName(...).
{A}+{*}=>{A*} @ HertzKnudsenDefault(...)
Reaction Metadata
Optional metadata can be appended as an object literal.
{A}+{*}=>{A*} @ HertzKnudsenDefault(...) {tags=[drc]}
MKX also supports block conditionals directly inside the reactions block, so
you can choose between alternative elementary steps at parse time:
let include_surface_path = false
reactions {
if(include_surface_path) {
{A}+{*}=>{B}+{*} @ ArrheniusDefault(Vf=1e6, Vb=0.0, Eaf=0.0, Eab=1e5)
} else {
{A}+{*}=>{B}+{*} @ ArrheniusDefault(Vf=1e6, Vb=1e7, Eaf=30e3, Eab=1e5)
}
}
This is a convenient way to switch individual elementary steps on or off, or to select between two kinetic parameterizations, without duplicating the rest of the file.
Notes
- Reactions must reference only defined components.
- For Hertz-Knudsen models, gas-phase species should be written on the reactant side.