Skip to content

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.