SuperFast Gas-Phase Atmospheric Chemical Mechanism

The Super Fast Chemical Mechanism is one of the simplest representations of atmospheric chemistry. It can efficiently simulate background tropospheric ozone chemistry and perform well for those species included in the mechanism. The chemical equations used are included in the supporting table S2 of the paper, "Evaluating simplified chemical mechanisms within present-day simulations of the Community Earth System Model version 1.2 with CAM4 (CESM1.2 CAM-chem): MOZART-4 vs. Reduced Hydrocarbon vs. Super-Fast chemistry" (2018), Benjamin Brown-Steiner, Noelle E. Selin, Ronald G. Prinn, Simone Tilmes, Louisa Emmons, Jean-François Lamarque, and Philip Cameron-Smith.

Illustrative Example

Here is a simple example of initializing the SuperFast model and running a simulation. First, we can look at the reaction equations:

using GasChem, EarthSciMLBase, ModelingToolkit
using DynamicQuantities, OrdinaryDiffEqDefault, OrdinaryDiffEqRosenbrock
using Catalyst
using Plots
using ModelingToolkit: t

model = SuperFast()

\[ \begin{align} \frac{\mathrm{d} ~ \mathtt{O3}\left( t \right)}{\mathrm{d}t} &= \mathtt{jNO2} ~ \mathtt{NO2}\left( t \right) - \mathtt{jO32OH} ~ \mathtt{O3}\left( t \right) - \mathtt{NO}\left( t \right) ~ \mathtt{arrhenius6.k}\left( t \right) ~ \mathtt{O3}\left( t \right) - \mathtt{HO2}\left( t \right) ~ \mathtt{arrhenius2.k}\left( t \right) ~ \mathtt{O3}\left( t \right) - \mathtt{arrhenius21.k}\left( t \right) ~ \mathtt{ISOP}\left( t \right) ~ \mathtt{O3}\left( t \right) - \mathtt{OH}\left( t \right) ~ \mathtt{arrhenius1.k}\left( t \right) ~ \mathtt{O3}\left( t \right) \\ \frac{\mathrm{d} ~ \mathtt{OH}\left( t \right)}{\mathrm{d}t} &= \mathtt{jCH3OOH} ~ \mathtt{CH3OOH}\left( t \right) + 2 ~ \mathtt{jH2O2} ~ \mathtt{H2O2}\left( t \right) + 2 ~ \mathtt{jO32OH} ~ \mathtt{O3}\left( t \right) - \mathtt{CH4} ~ \mathtt{arrhenius9.k}\left( t \right) ~ \mathtt{OH}\left( t \right) - \mathtt{H2O2}\left( t \right) ~ \mathtt{arrhenius5.k}\left( t \right) ~ \mathtt{OH}\left( t \right) + \mathtt{NO}\left( t \right) ~ \mathtt{HO2}\left( t \right) ~ \mathtt{arrhenius7.k}\left( t \right) + \mathtt{HO2}\left( t \right) ~ \mathtt{arrhenius2.k}\left( t \right) ~ \mathtt{O3}\left( t \right) - \mathtt{HO2}\left( t \right) ~ \mathtt{arrhenius3.k}\left( t \right) ~ \mathtt{OH}\left( t \right) - \mathtt{arrhenius13.k}\left( t \right) ~ \mathtt{CH3OOH}\left( t \right) ~ \mathtt{OH}\left( t \right) - \mathtt{rate\_OHCO10.k}\left( t \right) ~ \mathtt{CO}\left( t \right) ~ \mathtt{OH}\left( t \right) - \mathtt{arrhenius18.k}\left( t \right) ~ \mathtt{ISOP}\left( t \right) ~ \mathtt{OH}\left( t \right) - \mathtt{ISOP}\left( t \right) ~ \mathtt{arrhenius19.k}\left( t \right) ~ \mathtt{OH}\left( t \right) - 0.5 ~ \mathtt{ISOP}\left( t \right) ~ \mathtt{arrhenius20.k}\left( t \right) ~ \mathtt{OH}\left( t \right) - \mathtt{CH2O}\left( t \right) ~ \mathtt{arrhenius11.k}\left( t \right) ~ \mathtt{OH}\left( t \right) - \mathtt{NO2}\left( t \right) ~ \mathtt{arr\_3rdbody8.k}\left( t \right) ~ \mathtt{OH}\left( t \right) - \mathtt{OH}\left( t \right) ~ \mathtt{arrhenius1.k}\left( t \right) ~ \mathtt{O3}\left( t \right) \\ \frac{\mathrm{d} ~ \mathtt{HO2}\left( t \right)}{\mathrm{d}t} &= \mathtt{jCH3OOH} ~ \mathtt{CH3OOH}\left( t \right) + 2 ~ \mathtt{jH2COa} ~ \mathtt{CH2O}\left( t \right) + \mathtt{H2O2}\left( t \right) ~ \mathtt{arrhenius5.k}\left( t \right) ~ \mathtt{OH}\left( t \right) - \mathtt{NO}\left( t \right) ~ \mathtt{HO2}\left( t \right) ~ \mathtt{arrhenius7.k}\left( t \right) + \mathtt{NO}\left( t \right) ~ \mathtt{arrhenius15.k}\left( t \right) ~ \mathtt{CH3O2}\left( t \right) - 2 ~ \left( \mathtt{HO2}\left( t \right) \right)^{2} ~ \mathtt{rate\_HO2HO24.k}\left( t \right) - \mathtt{HO2}\left( t \right) ~ \mathtt{arrhenius2.k}\left( t \right) ~ \mathtt{O3}\left( t \right) - \mathtt{HO2}\left( t \right) ~ \mathtt{CH3O2}\left( t \right) ~ \mathtt{arrhenius12.k}\left( t \right) - \mathtt{HO2}\left( t \right) ~ \mathtt{arrhenius3.k}\left( t \right) ~ \mathtt{OH}\left( t \right) + 0.06 ~ \mathtt{arrhenius21.k}\left( t \right) ~ \mathtt{ISOP}\left( t \right) ~ \mathtt{O3}\left( t \right) + \mathtt{rate\_OHCO10.k}\left( t \right) ~ \mathtt{CO}\left( t \right) ~ \mathtt{OH}\left( t \right) + 0.8 ~ \left( \mathtt{CH3O2}\left( t \right) \right)^{2} ~ \mathtt{arrhenius16.k}\left( t \right) + \mathtt{CH2O}\left( t \right) ~ \mathtt{arrhenius11.k}\left( t \right) ~ \mathtt{OH}\left( t \right) + \mathtt{OH}\left( t \right) ~ \mathtt{arrhenius1.k}\left( t \right) ~ \mathtt{O3}\left( t \right) \\ \frac{\mathrm{d} ~ \mathtt{NO}\left( t \right)}{\mathrm{d}t} &= \mathtt{jNO2} ~ \mathtt{NO2}\left( t \right) - \mathtt{NO}\left( t \right) ~ \mathtt{HO2}\left( t \right) ~ \mathtt{arrhenius7.k}\left( t \right) - \mathtt{NO}\left( t \right) ~ \mathtt{arrhenius15.k}\left( t \right) ~ \mathtt{CH3O2}\left( t \right) - \mathtt{NO}\left( t \right) ~ \mathtt{arrhenius6.k}\left( t \right) ~ \mathtt{O3}\left( t \right) \\ \frac{\mathrm{d} ~ \mathtt{NO2}\left( t \right)}{\mathrm{d}t} &= - \mathtt{jNO2} ~ \mathtt{NO2}\left( t \right) - \mathtt{H2O} ~ \mathtt{NO2}\left( t \right) ~ \mathtt{rateconvert17.k}\left( t \right) + \mathtt{NO}\left( t \right) ~ \mathtt{HO2}\left( t \right) ~ \mathtt{arrhenius7.k}\left( t \right) + \mathtt{NO}\left( t \right) ~ \mathtt{arrhenius15.k}\left( t \right) ~ \mathtt{CH3O2}\left( t \right) + \mathtt{NO}\left( t \right) ~ \mathtt{arrhenius6.k}\left( t \right) ~ \mathtt{O3}\left( t \right) - \mathtt{NO2}\left( t \right) ~ \mathtt{arr\_3rdbody8.k}\left( t \right) ~ \mathtt{OH}\left( t \right) \\ \frac{\mathrm{d} ~ \mathtt{CH3O2}\left( t \right)}{\mathrm{d}t} &= \mathtt{CH4} ~ \mathtt{arrhenius9.k}\left( t \right) ~ \mathtt{OH}\left( t \right) - \mathtt{NO}\left( t \right) ~ \mathtt{arrhenius15.k}\left( t \right) ~ \mathtt{CH3O2}\left( t \right) - \mathtt{HO2}\left( t \right) ~ \mathtt{CH3O2}\left( t \right) ~ \mathtt{arrhenius12.k}\left( t \right) + 1.86 ~ \mathtt{arrhenius21.k}\left( t \right) ~ \mathtt{ISOP}\left( t \right) ~ \mathtt{O3}\left( t \right) + \mathtt{arrhenius13.k}\left( t \right) ~ \mathtt{CH3OOH}\left( t \right) ~ \mathtt{OH}\left( t \right) + 2 ~ \mathtt{arrhenius18.k}\left( t \right) ~ \mathtt{ISOP}\left( t \right) ~ \mathtt{OH}\left( t \right) - 2 ~ \left( \mathtt{CH3O2}\left( t \right) \right)^{2} ~ \mathtt{arrhenius16.k}\left( t \right) \\ \frac{\mathrm{d} ~ \mathtt{CH2O}\left( t \right)}{\mathrm{d}t} &= \mathtt{jCH3OOH} ~ \mathtt{CH3OOH}\left( t \right) - \mathtt{jH2COa} ~ \mathtt{CH2O}\left( t \right) - \mathtt{jH2COb} ~ \mathtt{CH2O}\left( t \right) + \mathtt{NO}\left( t \right) ~ \mathtt{arrhenius15.k}\left( t \right) ~ \mathtt{CH3O2}\left( t \right) + \mathtt{arrhenius14.k}\left( t \right) ~ \mathtt{CH3OOH}\left( t \right) ~ \mathtt{OH}\left( t \right) + 0.87 ~ \mathtt{arrhenius21.k}\left( t \right) ~ \mathtt{ISOP}\left( t \right) ~ \mathtt{O3}\left( t \right) + 2 ~ \left( \mathtt{CH3O2}\left( t \right) \right)^{2} ~ \mathtt{arrhenius16.k}\left( t \right) - \mathtt{CH2O}\left( t \right) ~ \mathtt{arrhenius11.k}\left( t \right) ~ \mathtt{OH}\left( t \right) \\ \frac{\mathrm{d} ~ \mathtt{CO}\left( t \right)}{\mathrm{d}t} &= \mathtt{jH2COa} ~ \mathtt{CH2O}\left( t \right) + \mathtt{jH2COb} ~ \mathtt{CH2O}\left( t \right) + 0.05 ~ \mathtt{arrhenius21.k}\left( t \right) ~ \mathtt{ISOP}\left( t \right) ~ \mathtt{O3}\left( t \right) - \mathtt{rate\_OHCO10.k}\left( t \right) ~ \mathtt{CO}\left( t \right) ~ \mathtt{OH}\left( t \right) + \mathtt{CH2O}\left( t \right) ~ \mathtt{arrhenius11.k}\left( t \right) ~ \mathtt{OH}\left( t \right) \\ \frac{\mathrm{d} ~ \mathtt{CH3OOH}\left( t \right)}{\mathrm{d}t} &= - \mathtt{jCH3OOH} ~ \mathtt{CH3OOH}\left( t \right) + \mathtt{HO2}\left( t \right) ~ \mathtt{CH3O2}\left( t \right) ~ \mathtt{arrhenius12.k}\left( t \right) - \mathtt{arrhenius14.k}\left( t \right) ~ \mathtt{CH3OOH}\left( t \right) ~ \mathtt{OH}\left( t \right) - \mathtt{arrhenius13.k}\left( t \right) ~ \mathtt{CH3OOH}\left( t \right) ~ \mathtt{OH}\left( t \right) \\ \frac{\mathrm{d} ~ \mathtt{ISOP}\left( t \right)}{\mathrm{d}t} &= - \mathtt{arrhenius21.k}\left( t \right) ~ \mathtt{ISOP}\left( t \right) ~ \mathtt{O3}\left( t \right) - \mathtt{arrhenius18.k}\left( t \right) ~ \mathtt{ISOP}\left( t \right) ~ \mathtt{OH}\left( t \right) \\ \frac{\mathrm{d} ~ \mathtt{H2O2}\left( t \right)}{\mathrm{d}t} &= - \mathtt{jH2O2} ~ \mathtt{H2O2}\left( t \right) - \mathtt{H2O2}\left( t \right) ~ \mathtt{arrhenius5.k}\left( t \right) ~ \mathtt{OH}\left( t \right) + \left( \mathtt{HO2}\left( t \right) \right)^{2} ~ \mathtt{rate\_HO2HO24.k}\left( t \right) \\ \frac{\mathrm{d} ~ \mathtt{HNO3}\left( t \right)}{\mathrm{d}t} &= 0.5 ~ \mathtt{H2O} ~ \mathtt{NO2}\left( t \right) ~ \mathtt{rateconvert17.k}\left( t \right) + \mathtt{NO2}\left( t \right) ~ \mathtt{arr\_3rdbody8.k}\left( t \right) ~ \mathtt{OH}\left( t \right) \\ \mathtt{arrhenius1.k}\left( t \right) &= \frac{\left( \frac{\mathtt{arrhenius1.K\_300}}{T} \right)^{\mathtt{arrhenius1.b0}} ~ P ~ \mathtt{arrhenius1.A} ~ \mathtt{arrhenius1.a0} ~ \mathtt{arrhenius1.ppb\_unit} ~ e^{\frac{\mathtt{arrhenius1.c0}}{T}}}{T ~ \mathtt{arrhenius1.R}} \\ \mathtt{arrhenius2.k}\left( t \right) &= \frac{\left( \frac{\mathtt{arrhenius2.K\_300}}{T} \right)^{\mathtt{arrhenius2.b0}} ~ P ~ \mathtt{arrhenius2.A} ~ \mathtt{arrhenius2.a0} ~ \mathtt{arrhenius2.ppb\_unit} ~ e^{\frac{\mathtt{arrhenius2.c0}}{T}}}{T ~ \mathtt{arrhenius2.R}} \\ \mathtt{arrhenius3.k}\left( t \right) &= \frac{\left( \frac{\mathtt{arrhenius3.K\_300}}{T} \right)^{\mathtt{arrhenius3.b0}} ~ P ~ \mathtt{arrhenius3.A} ~ \mathtt{arrhenius3.a0} ~ \mathtt{arrhenius3.ppb\_unit} ~ e^{\frac{\mathtt{arrhenius3.c0}}{T}}}{T ~ \mathtt{arrhenius3.R}} \\ \mathtt{rate\_HO2HO24.k}\left( t \right) &= \left( \frac{P ~ \mathtt{rate\_HO2HO24.A} ~ \mathtt{rate\_HO2HO24.num\_density\_unit\_inv} ~ \mathtt{rate\_HO2HO24.k1.k}\left( t \right)}{T ~ \mathtt{rate\_HO2HO24.R}} + \mathtt{rate\_HO2HO24.k0.k}\left( t \right) \right) ~ \left( 1 + \frac{1.4 \cdot 10^{-30} ~ \mathtt{H2O}^{2} ~ P ~ \mathtt{rate\_HO2HO24.A} ~ \mathtt{rate\_HO2HO24.num\_density\_unit\_inv} ~ \mathtt{rate\_HO2HO24.ppb\_inv} ~ e^{\frac{\mathtt{rate\_HO2HO24.T\_0}}{T}}}{T ~ \mathtt{rate\_HO2HO24.R}} \right) \\ \mathtt{rate\_HO2HO24.k0.k}\left( t \right) &= \frac{\left( \frac{\mathtt{rate\_HO2HO24.k0.K\_300}}{T} \right)^{\mathtt{rate\_HO2HO24.k0.b0}} ~ P ~ \mathtt{rate\_HO2HO24.k0.A} ~ \mathtt{rate\_HO2HO24.k0.a0} ~ \mathtt{rate\_HO2HO24.k0.ppb\_unit} ~ e^{\frac{\mathtt{rate\_HO2HO24.k0.c0}}{T}}}{T ~ \mathtt{rate\_HO2HO24.k0.R}} \\ \mathtt{rate\_HO2HO24.k1.k}\left( t \right) &= \frac{\left( \frac{\mathtt{rate\_HO2HO24.k1.K\_300}}{T} \right)^{\mathtt{rate\_HO2HO24.k1.b0}} ~ P ~ \mathtt{rate\_HO2HO24.k1.A} ~ \mathtt{rate\_HO2HO24.k1.a0} ~ \mathtt{rate\_HO2HO24.k1.ppb\_unit} ~ e^{\frac{\mathtt{rate\_HO2HO24.k1.c0}}{T}}}{T ~ \mathtt{rate\_HO2HO24.k1.R}} \\ \mathtt{arrhenius5.k}\left( t \right) &= \frac{\left( \frac{\mathtt{arrhenius5.K\_300}}{T} \right)^{\mathtt{arrhenius5.b0}} ~ P ~ \mathtt{arrhenius5.A} ~ \mathtt{arrhenius5.a0} ~ \mathtt{arrhenius5.ppb\_unit} ~ e^{\frac{\mathtt{arrhenius5.c0}}{T}}}{T ~ \mathtt{arrhenius5.R}} \\ \mathtt{arrhenius6.k}\left( t \right) &= \frac{\left( \frac{\mathtt{arrhenius6.K\_300}}{T} \right)^{\mathtt{arrhenius6.b0}} ~ P ~ \mathtt{arrhenius6.A} ~ \mathtt{arrhenius6.a0} ~ \mathtt{arrhenius6.ppb\_unit} ~ e^{\frac{\mathtt{arrhenius6.c0}}{T}}}{T ~ \mathtt{arrhenius6.R}} \\ \mathtt{arrhenius7.k}\left( t \right) &= \frac{\left( \frac{\mathtt{arrhenius7.K\_300}}{T} \right)^{\mathtt{arrhenius7.b0}} ~ P ~ \mathtt{arrhenius7.A} ~ \mathtt{arrhenius7.a0} ~ \mathtt{arrhenius7.ppb\_unit} ~ e^{\frac{\mathtt{arrhenius7.c0}}{T}}}{T ~ \mathtt{arrhenius7.R}} \\ \mathtt{arr\_3rdbody8.k}\left( t \right) &= \frac{0.6^{\frac{1}{1 + \left( \log_{10}\left( \frac{P ~ \mathtt{arr\_3rdbody8.A} ~ \mathtt{arr\_3rdbody8.num\_density\_unit\_inv} ~ \mathtt{arr\_3rdbody8.alow.k}\left( t \right)}{T ~ \mathtt{arr\_3rdbody8.R} ~ \mathtt{arr\_3rdbody8.ahigh.k}\left( t \right)} \right) \right)^{2}}} ~ P ~ \mathtt{arr\_3rdbody8.A} ~ \mathtt{arr\_3rdbody8.num\_density\_unit\_inv} ~ \mathtt{arr\_3rdbody8.alow.k}\left( t \right)}{T ~ \mathtt{arr\_3rdbody8.R} ~ \left( 1 + \frac{P ~ \mathtt{arr\_3rdbody8.A} ~ \mathtt{arr\_3rdbody8.num\_density\_unit\_inv} ~ \mathtt{arr\_3rdbody8.alow.k}\left( t \right)}{T ~ \mathtt{arr\_3rdbody8.R} ~ \mathtt{arr\_3rdbody8.ahigh.k}\left( t \right)} \right)} \\ \mathtt{arr\_3rdbody8.alow.k}\left( t \right) &= \frac{\left( \frac{\mathtt{arr\_3rdbody8.alow.K\_300}}{T} \right)^{\mathtt{arr\_3rdbody8.alow.b0}} ~ P ~ \mathtt{arr\_3rdbody8.alow.A} ~ \mathtt{arr\_3rdbody8.alow.a0} ~ \mathtt{arr\_3rdbody8.alow.ppb\_unit} ~ e^{\frac{\mathtt{arr\_3rdbody8.alow.c0}}{T}}}{T ~ \mathtt{arr\_3rdbody8.alow.R}} \\ \mathtt{arr\_3rdbody8.ahigh.k}\left( t \right) &= \frac{\left( \frac{\mathtt{arr\_3rdbody8.ahigh.K\_300}}{T} \right)^{\mathtt{arr\_3rdbody8.ahigh.b0}} ~ P ~ \mathtt{arr\_3rdbody8.ahigh.A} ~ \mathtt{arr\_3rdbody8.ahigh.a0} ~ \mathtt{arr\_3rdbody8.ahigh.ppb\_unit} ~ e^{\frac{\mathtt{arr\_3rdbody8.ahigh.c0}}{T}}}{T ~ \mathtt{arr\_3rdbody8.ahigh.R}} \\ \mathtt{arrhenius9.k}\left( t \right) &= \frac{\left( \frac{\mathtt{arrhenius9.K\_300}}{T} \right)^{\mathtt{arrhenius9.b0}} ~ P ~ \mathtt{arrhenius9.A} ~ \mathtt{arrhenius9.a0} ~ \mathtt{arrhenius9.ppb\_unit} ~ e^{\frac{\mathtt{arrhenius9.c0}}{T}}}{T ~ \mathtt{arrhenius9.R}} \\ \mathtt{rate\_OHCO10.k}\left( t \right) &= \frac{0.6^{\frac{1}{1 + \left( \log_{10}\left( \frac{P ~ \mathtt{rate\_OHCO10.A} ~ \mathtt{rate\_OHCO10.num\_density\_unit\_inv} ~ \mathtt{rate\_OHCO10.klo2.k}\left( t \right)}{T ~ \mathtt{rate\_OHCO10.R} ~ \mathtt{rate\_OHCO10.khi2.k}\left( t \right)} \right) \right)^{2}}} ~ \mathtt{rate\_OHCO10.klo2.k}\left( t \right)}{1 + \frac{P ~ \mathtt{rate\_OHCO10.A} ~ \mathtt{rate\_OHCO10.num\_density\_unit\_inv} ~ \mathtt{rate\_OHCO10.klo2.k}\left( t \right)}{T ~ \mathtt{rate\_OHCO10.R} ~ \mathtt{rate\_OHCO10.khi2.k}\left( t \right)}} + \frac{0.6^{\frac{1}{1 + \left( \log_{10}\left( \frac{P ~ \mathtt{rate\_OHCO10.A} ~ \mathtt{rate\_OHCO10.num\_density\_unit\_inv} ~ \mathtt{rate\_OHCO10.klo1.k}\left( t \right)}{T ~ \mathtt{rate\_OHCO10.R} ~ \mathtt{rate\_OHCO10.khi1.k}\left( t \right)} \right) \right)^{2}}} ~ P ~ \mathtt{rate\_OHCO10.A} ~ \mathtt{rate\_OHCO10.num\_density\_unit\_inv} ~ \mathtt{rate\_OHCO10.klo1.k}\left( t \right)}{T ~ \mathtt{rate\_OHCO10.R} ~ \left( 1 + \frac{P ~ \mathtt{rate\_OHCO10.A} ~ \mathtt{rate\_OHCO10.num\_density\_unit\_inv} ~ \mathtt{rate\_OHCO10.klo1.k}\left( t \right)}{T ~ \mathtt{rate\_OHCO10.R} ~ \mathtt{rate\_OHCO10.khi1.k}\left( t \right)} \right)} \\ \mathtt{rate\_OHCO10.klo1.k}\left( t \right) &= \frac{\left( \frac{\mathtt{rate\_OHCO10.klo1.K\_300}}{T} \right)^{\mathtt{rate\_OHCO10.klo1.b0}} ~ P ~ \mathtt{rate\_OHCO10.klo1.A} ~ \mathtt{rate\_OHCO10.klo1.a0} ~ \mathtt{rate\_OHCO10.klo1.ppb\_unit} ~ e^{\frac{\mathtt{rate\_OHCO10.klo1.c0}}{T}}}{T ~ \mathtt{rate\_OHCO10.klo1.R}} \\ \mathtt{rate\_OHCO10.khi1.k}\left( t \right) &= \frac{\left( \frac{\mathtt{rate\_OHCO10.khi1.K\_300}}{T} \right)^{\mathtt{rate\_OHCO10.khi1.b0}} ~ P ~ \mathtt{rate\_OHCO10.khi1.A} ~ \mathtt{rate\_OHCO10.khi1.a0} ~ \mathtt{rate\_OHCO10.khi1.ppb\_unit} ~ e^{\frac{\mathtt{rate\_OHCO10.khi1.c0}}{T}}}{T ~ \mathtt{rate\_OHCO10.khi1.R}} \\ \mathtt{rate\_OHCO10.klo2.k}\left( t \right) &= \frac{\left( \frac{\mathtt{rate\_OHCO10.klo2.K\_300}}{T} \right)^{\mathtt{rate\_OHCO10.klo2.b0}} ~ P ~ \mathtt{rate\_OHCO10.klo2.A} ~ \mathtt{rate\_OHCO10.klo2.a0} ~ \mathtt{rate\_OHCO10.klo2.ppb\_unit} ~ e^{\frac{\mathtt{rate\_OHCO10.klo2.c0}}{T}}}{T ~ \mathtt{rate\_OHCO10.klo2.R}} \\ \mathtt{rate\_OHCO10.khi2.k}\left( t \right) &= \frac{\left( \frac{\mathtt{rate\_OHCO10.khi2.K\_300}}{T} \right)^{\mathtt{rate\_OHCO10.khi2.b0}} ~ P ~ \mathtt{rate\_OHCO10.khi2.A} ~ \mathtt{rate\_OHCO10.khi2.a0} ~ \mathtt{rate\_OHCO10.khi2.ppb\_unit} ~ e^{\frac{\mathtt{rate\_OHCO10.khi2.c0}}{T}}}{T ~ \mathtt{rate\_OHCO10.khi2.R}} \\ \mathtt{arrhenius11.k}\left( t \right) &= \frac{\left( \frac{\mathtt{arrhenius11.K\_300}}{T} \right)^{\mathtt{arrhenius11.b0}} ~ P ~ \mathtt{arrhenius11.A} ~ \mathtt{arrhenius11.a0} ~ \mathtt{arrhenius11.ppb\_unit} ~ e^{\frac{\mathtt{arrhenius11.c0}}{T}}}{T ~ \mathtt{arrhenius11.R}} \\ \mathtt{arrhenius12.k}\left( t \right) &= \frac{\left( \frac{\mathtt{arrhenius12.K\_300}}{T} \right)^{\mathtt{arrhenius12.b0}} ~ P ~ \mathtt{arrhenius12.A} ~ \mathtt{arrhenius12.a0} ~ \mathtt{arrhenius12.ppb\_unit} ~ e^{\frac{\mathtt{arrhenius12.c0}}{T}}}{T ~ \mathtt{arrhenius12.R}} \\ \mathtt{arrhenius13.k}\left( t \right) &= \frac{\left( \frac{\mathtt{arrhenius13.K\_300}}{T} \right)^{\mathtt{arrhenius13.b0}} ~ P ~ \mathtt{arrhenius13.A} ~ \mathtt{arrhenius13.a0} ~ \mathtt{arrhenius13.ppb\_unit} ~ e^{\frac{\mathtt{arrhenius13.c0}}{T}}}{T ~ \mathtt{arrhenius13.R}} \\ \mathtt{arrhenius14.k}\left( t \right) &= \frac{\left( \frac{\mathtt{arrhenius14.K\_300}}{T} \right)^{\mathtt{arrhenius14.b0}} ~ P ~ \mathtt{arrhenius14.A} ~ \mathtt{arrhenius14.a0} ~ \mathtt{arrhenius14.ppb\_unit} ~ e^{\frac{\mathtt{arrhenius14.c0}}{T}}}{T ~ \mathtt{arrhenius14.R}} \\ \mathtt{arrhenius15.k}\left( t \right) &= \frac{\left( \frac{\mathtt{arrhenius15.K\_300}}{T} \right)^{\mathtt{arrhenius15.b0}} ~ P ~ \mathtt{arrhenius15.A} ~ \mathtt{arrhenius15.a0} ~ \mathtt{arrhenius15.ppb\_unit} ~ e^{\frac{\mathtt{arrhenius15.c0}}{T}}}{T ~ \mathtt{arrhenius15.R}} \\ \mathtt{arrhenius16.k}\left( t \right) &= \frac{\left( \frac{\mathtt{arrhenius16.K\_300}}{T} \right)^{\mathtt{arrhenius16.b0}} ~ P ~ \mathtt{arrhenius16.A} ~ \mathtt{arrhenius16.a0} ~ \mathtt{arrhenius16.ppb\_unit} ~ e^{\frac{\mathtt{arrhenius16.c0}}{T}}}{T ~ \mathtt{arrhenius16.R}} \\ \mathtt{rateconvert17.k}\left( t \right) &= \frac{P ~ \mathtt{rateconvert17.A} ~ \mathtt{rateconvert17.a0} ~ \mathtt{rateconvert17.ppb\_unit}}{T ~ \mathtt{rateconvert17.R}} \\ \mathtt{arrhenius18.k}\left( t \right) &= \frac{\left( \frac{\mathtt{arrhenius18.K\_300}}{T} \right)^{\mathtt{arrhenius18.b0}} ~ P ~ \mathtt{arrhenius18.A} ~ \mathtt{arrhenius18.a0} ~ \mathtt{arrhenius18.ppb\_unit} ~ e^{\frac{\mathtt{arrhenius18.c0}}{T}}}{T ~ \mathtt{arrhenius18.R}} \\ \mathtt{arrhenius19.k}\left( t \right) &= \frac{\left( \frac{\mathtt{arrhenius19.K\_300}}{T} \right)^{\mathtt{arrhenius19.b0}} ~ P ~ \mathtt{arrhenius19.A} ~ \mathtt{arrhenius19.a0} ~ \mathtt{arrhenius19.ppb\_unit} ~ e^{\frac{\mathtt{arrhenius19.c0}}{T}}}{T ~ \mathtt{arrhenius19.R}} \\ \mathtt{arrhenius20.k}\left( t \right) &= \frac{\left( \frac{\mathtt{arrhenius20.K\_300}}{T} \right)^{\mathtt{arrhenius20.b0}} ~ P ~ \mathtt{arrhenius20.A} ~ \mathtt{arrhenius20.a0} ~ \mathtt{arrhenius20.ppb\_unit} ~ e^{\frac{\mathtt{arrhenius20.c0}}{T}}}{T ~ \mathtt{arrhenius20.R}} \\ \mathtt{arrhenius21.k}\left( t \right) &= \frac{\left( \frac{\mathtt{arrhenius21.K\_300}}{T} \right)^{\mathtt{arrhenius21.b0}} ~ P ~ \mathtt{arrhenius21.A} ~ \mathtt{arrhenius21.a0} ~ \mathtt{arrhenius21.ppb\_unit} ~ e^{\frac{\mathtt{arrhenius21.c0}}{T}}}{T ~ \mathtt{arrhenius21.R}} \end{align} \]

Variables and parameters

The chemical species included in the superfast model are:

vars = unknowns(model)[1:12]
using DataFrames
DataFrame(
    :Name => [string(Symbolics.tosymbol(v, escape = false)) for v in vars],
    :Units => [ModelingToolkit.get_unit(v) for v in vars],
    :Description => [ModelingToolkit.getdescription(v) for v in vars],
    :Default => [ModelingToolkit.getdefault(v) for v in vars])
12×4 DataFrame
RowNameUnitsDescriptionDefault
StringQuantity…StringReal
1O31.0 40.0
2OH1.0 4.0e-6
3HO21.0 4.0e-6
4NO1.0 0.0004
5NO21.0 0.0004
6CH3O21.0 4.0e-6
7CH2O1.0 4.0e-6
8CO1.0 100
9CH3OOH1.0 4.0e-6
10ISOP1.0 1.0e-11
11H2O21.0 4.0e-6
12HNO31.0 4.0e-6

And here are the parameters:

vars = parameters(model)
DataFrame(
    :Name => [string(Symbolics.tosymbol(v, escape = false)) for v in vars],
    :Units => [ModelingToolkit.get_unit(v) for v in vars],
    :Description => [ModelingToolkit.getdescription(v) for v in vars],
    :Default => [ModelingToolkit.getdefault(v) for v in vars])
231×4 DataFrame
RowNameUnitsDescriptionDefault
StringQuantity…StringReal
1jO32OH1.0 s⁻¹0.000227
2jH2O21.0 s⁻¹1.0097e-5
3jNO21.0 s⁻¹0.0149
4jH2COa1.0 s⁻¹0.00014
5jH2COb1.0 s⁻¹0.00014
6jCH3OOH1.0 s⁻¹8.9573e-6
7T1.0 KTemperature280.0
8P1.0 m⁻¹ kg s⁻²Pressure101325
9O21.0 2.095e8
10CH41.0 1700.0
11H2O1.0 1.839e7
12arrhenius1₊A1.0 mol⁻¹Avogadro's number6.02e23
13arrhenius1₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
14arrhenius1₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
15arrhenius1₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
16arrhenius1₊K_3001.0 K300
17arrhenius1₊a01.0e-6 m³ s⁻¹1.7e-12
18arrhenius1₊b01.0 0.0
19arrhenius1₊c01.0 K-940.0
20arrhenius2₊A1.0 mol⁻¹Avogadro's number6.02e23
21arrhenius2₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
22arrhenius2₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
23arrhenius2₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
24arrhenius2₊K_3001.0 K300
25arrhenius2₊a01.0e-6 m³ s⁻¹1.0e-14
26arrhenius2₊b01.0 0.0
27arrhenius2₊c01.0 K-490.0
28arrhenius3₊A1.0 mol⁻¹Avogadro's number6.02e23
29arrhenius3₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
30arrhenius3₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
31arrhenius3₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
32arrhenius3₊K_3001.0 K300
33arrhenius3₊a01.0e-6 m³ s⁻¹4.8e-11
34arrhenius3₊b01.0 0.0
35arrhenius3₊c01.0 K250.0
36rate_HO2HO24₊T_01.0 K2200.0
37rate_HO2HO24₊A1.0 mol⁻¹Avogadro's number6.02e23
38rate_HO2HO24₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
39rate_HO2HO24₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
40rate_HO2HO24₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
41rate_HO2HO24₊ppb_inv1.0 1
42rate_HO2HO24₊k0₊A1.0 mol⁻¹Avogadro's number6.02e23
43rate_HO2HO24₊k0₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
44rate_HO2HO24₊k0₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
45rate_HO2HO24₊k0₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
46rate_HO2HO24₊k0₊K_3001.0 K300
47rate_HO2HO24₊k0₊a01.0e-6 m³ s⁻¹3.0e-13
48rate_HO2HO24₊k0₊b01.0 0.0
49rate_HO2HO24₊k0₊c01.0 K460.0
50rate_HO2HO24₊k1₊A1.0 mol⁻¹Avogadro's number6.02e23
51rate_HO2HO24₊k1₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
52rate_HO2HO24₊k1₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
53rate_HO2HO24₊k1₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
54rate_HO2HO24₊k1₊K_3001.0 K300
55rate_HO2HO24₊k1₊a01.0e-6 m³ s⁻¹2.1e-33
56rate_HO2HO24₊k1₊b01.0 0.0
57rate_HO2HO24₊k1₊c01.0 K920.0
58arrhenius5₊A1.0 mol⁻¹Avogadro's number6.02e23
59arrhenius5₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
60arrhenius5₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
61arrhenius5₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
62arrhenius5₊K_3001.0 K300
63arrhenius5₊a01.0e-6 m³ s⁻¹1.8e-12
64arrhenius5₊b01.0 0.0
65arrhenius5₊c01.0 K0.0
66arrhenius6₊A1.0 mol⁻¹Avogadro's number6.02e23
67arrhenius6₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
68arrhenius6₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
69arrhenius6₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
70arrhenius6₊K_3001.0 K300
71arrhenius6₊a01.0e-6 m³ s⁻¹3.0e-12
72arrhenius6₊b01.0 0.0
73arrhenius6₊c01.0 K-1500.0
74arrhenius7₊A1.0 mol⁻¹Avogadro's number6.02e23
75arrhenius7₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
76arrhenius7₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
77arrhenius7₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
78arrhenius7₊K_3001.0 K300
79arrhenius7₊a01.0e-6 m³ s⁻¹3.3e-12
80arrhenius7₊b01.0 0.0
81arrhenius7₊c01.0 K270.0
82arr_3rdbody8₊A1.0 mol⁻¹Avogadro's number6.02e23
83arr_3rdbody8₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
84arr_3rdbody8₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
85arr_3rdbody8₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
86arr_3rdbody8₊alow₊A1.0 mol⁻¹Avogadro's number6.02e23
87arr_3rdbody8₊alow₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
88arr_3rdbody8₊alow₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
89arr_3rdbody8₊alow₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
90arr_3rdbody8₊alow₊K_3001.0 K300
91arr_3rdbody8₊alow₊a01.0e-6 m³ s⁻¹1.8e-30
92arr_3rdbody8₊alow₊b01.0 3.0
93arr_3rdbody8₊alow₊c01.0 K0.0
94arr_3rdbody8₊ahigh₊A1.0 mol⁻¹Avogadro's number6.02e23
95arr_3rdbody8₊ahigh₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
96arr_3rdbody8₊ahigh₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
97arr_3rdbody8₊ahigh₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
98arr_3rdbody8₊ahigh₊K_3001.0 K300
99arr_3rdbody8₊ahigh₊a01.0e-6 m³ s⁻¹2.8e-11
100arr_3rdbody8₊ahigh₊b01.0 0.0
101arr_3rdbody8₊ahigh₊c01.0 K0.0
102arrhenius9₊A1.0 mol⁻¹Avogadro's number6.02e23
103arrhenius9₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
104arrhenius9₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
105arrhenius9₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
106arrhenius9₊K_3001.0 K300
107arrhenius9₊a01.0e-6 m³ s⁻¹2.45e-12
108arrhenius9₊b01.0 0.0
109arrhenius9₊c01.0 K-1775.0
110rate_OHCO10₊A1.0 mol⁻¹Avogadro's number6.02e23
111rate_OHCO10₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
112rate_OHCO10₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
113rate_OHCO10₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
114rate_OHCO10₊ppb_inv1.0 1
115rate_OHCO10₊klo1₊A1.0 mol⁻¹Avogadro's number6.02e23
116rate_OHCO10₊klo1₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
117rate_OHCO10₊klo1₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
118rate_OHCO10₊klo1₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
119rate_OHCO10₊klo1₊K_3001.0 K300
120rate_OHCO10₊klo1₊a01.0e-6 m³ s⁻¹5.9e-33
121rate_OHCO10₊klo1₊b01.0 1
122rate_OHCO10₊klo1₊c01.0 K0
123rate_OHCO10₊khi1₊A1.0 mol⁻¹Avogadro's number6.02e23
124rate_OHCO10₊khi1₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
125rate_OHCO10₊khi1₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
126rate_OHCO10₊khi1₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
127rate_OHCO10₊khi1₊K_3001.0 K300
128rate_OHCO10₊khi1₊a01.0e-6 m³ s⁻¹1.1e-12
129rate_OHCO10₊khi1₊b01.0 -1.3
130rate_OHCO10₊khi1₊c01.0 K0
131rate_OHCO10₊klo2₊A1.0 mol⁻¹Avogadro's number6.02e23
132rate_OHCO10₊klo2₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
133rate_OHCO10₊klo2₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
134rate_OHCO10₊klo2₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
135rate_OHCO10₊klo2₊K_3001.0 K300
136rate_OHCO10₊klo2₊a01.0e-6 m³ s⁻¹1.5e-13
137rate_OHCO10₊klo2₊b01.0 0
138rate_OHCO10₊klo2₊c01.0 K0
139rate_OHCO10₊khi2₊A1.0 mol⁻¹Avogadro's number6.02e23
140rate_OHCO10₊khi2₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
141rate_OHCO10₊khi2₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
142rate_OHCO10₊khi2₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
143rate_OHCO10₊khi2₊K_3001.0 K300
144rate_OHCO10₊khi2₊a01.0e-6 m³ s⁻¹2.1e9
145rate_OHCO10₊khi2₊b01.0 -6.1
146rate_OHCO10₊khi2₊c01.0 K0
147arrhenius11₊A1.0 mol⁻¹Avogadro's number6.02e23
148arrhenius11₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
149arrhenius11₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
150arrhenius11₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
151arrhenius11₊K_3001.0 K300
152arrhenius11₊a01.0e-6 m³ s⁻¹5.5e-12
153arrhenius11₊b01.0 0.0
154arrhenius11₊c01.0 K125.0
155arrhenius12₊A1.0 mol⁻¹Avogadro's number6.02e23
156arrhenius12₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
157arrhenius12₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
158arrhenius12₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
159arrhenius12₊K_3001.0 K300
160arrhenius12₊a01.0e-6 m³ s⁻¹4.1e-13
161arrhenius12₊b01.0 0.0
162arrhenius12₊c01.0 K750.0
163arrhenius13₊A1.0 mol⁻¹Avogadro's number6.02e23
164arrhenius13₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
165arrhenius13₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
166arrhenius13₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
167arrhenius13₊K_3001.0 K300
168arrhenius13₊a01.0e-6 m³ s⁻¹2.66e-12
169arrhenius13₊b01.0 0.0
170arrhenius13₊c01.0 K200.0
171arrhenius14₊A1.0 mol⁻¹Avogadro's number6.02e23
172arrhenius14₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
173arrhenius14₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
174arrhenius14₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
175arrhenius14₊K_3001.0 K300
176arrhenius14₊a01.0e-6 m³ s⁻¹1.14e-12
177arrhenius14₊b01.0 0.0
178arrhenius14₊c01.0 K200.0
179arrhenius15₊A1.0 mol⁻¹Avogadro's number6.02e23
180arrhenius15₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
181arrhenius15₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
182arrhenius15₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
183arrhenius15₊K_3001.0 K300
184arrhenius15₊a01.0e-6 m³ s⁻¹2.8e-12
185arrhenius15₊b01.0 0.0
186arrhenius15₊c01.0 K300.0
187arrhenius16₊A1.0 mol⁻¹Avogadro's number6.02e23
188arrhenius16₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
189arrhenius16₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
190arrhenius16₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
191arrhenius16₊K_3001.0 K300
192arrhenius16₊a01.0e-6 m³ s⁻¹9.5e-14
193arrhenius16₊b01.0 0.0
194arrhenius16₊c01.0 K390.0
195rateconvert17₊A1.0 mol⁻¹Avogadro's number6.02e23
196rateconvert17₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
197rateconvert17₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
198rateconvert17₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
199rateconvert17₊a01.0e-6 m³ s⁻¹4.0e-24
200arrhenius18₊A1.0 mol⁻¹Avogadro's number6.02e23
201arrhenius18₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
202arrhenius18₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
203arrhenius18₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
204arrhenius18₊K_3001.0 K300
205arrhenius18₊a01.0e-6 m³ s⁻¹2.7e-11
206arrhenius18₊b01.0 0.0
207arrhenius18₊c01.0 K390.0
208arrhenius19₊A1.0 mol⁻¹Avogadro's number6.02e23
209arrhenius19₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
210arrhenius19₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
211arrhenius19₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
212arrhenius19₊K_3001.0 K300
213arrhenius19₊a01.0e-6 m³ s⁻¹2.7e-11
214arrhenius19₊b01.0 0.0
215arrhenius19₊c01.0 K390.0
216arrhenius20₊A1.0 mol⁻¹Avogadro's number6.02e23
217arrhenius20₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
218arrhenius20₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
219arrhenius20₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
220arrhenius20₊K_3001.0 K300
221arrhenius20₊a01.0e-6 m³ s⁻¹2.7e-11
222arrhenius20₊b01.0 0.0
223arrhenius20₊c01.0 K390.0
224arrhenius21₊A1.0 mol⁻¹Avogadro's number6.02e23
225arrhenius21₊R1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹universal gas constant8.314e6
226arrhenius21₊ppb_unit1.0 Convert from mol/mol_air to ppb1.0e-9
227arrhenius21₊num_density_unit_inv1.0e-6 m³multiply by num_density to obtain the unitless value of num_density1
228arrhenius21₊K_3001.0 K300
229arrhenius21₊a01.0e-6 m³ s⁻¹5.59e-15
230arrhenius21₊b01.0 0.0
231arrhenius21₊c01.0 K-1814.0

Running simulations

We can run simulations with the model, optionally changing the initial conditions and parameters. For example, we can change the initial concentration of O₃ to 15 ppb and the temperature to 293K:

sys = mtkcompile(model)

tspan = (0.0, 3600*24)
# Change the initial concentration of O₃ to 15 ppb and the temperature to 293K.
prob = ODEProblem(sys, [sys.O3 => 15], tspan, [sys.T => 293])
ODEProblem with uType Vector{Float64} and tType Float64. In-place: true
Initialization status: FULLY_DETERMINED
Non-trivial mass matrix: false
timespan: (0.0, 86400.0)
u0: 12-element Vector{Float64}:
   4.0e-6
   4.0e-6
   1.0e-11
   4.0e-6
 100.0
   4.0e-6
   4.0e-6
   0.0004
   0.0004
   4.0e-6
   4.0e-6
  15.0

Now we can solve the system and plot the result:

sol = solve(prob, Rosenbrock23(), saveat = 10.0)

plot(sol, ylim = (0, 50), xlabel = "Time",
    ylabel = "Concentration (ppb)", legend = :outerright)
Example block output

Finally let's run some simulations with different values for parameter T.

sol1 = solve(ODEProblem(sys, [], tspan, [sys.T => 273]),
    Rosenbrock23(), saveat = 10.0)
sol2 = solve(ODEProblem(sys, [], tspan, [sys.T => 298]),
    Rosenbrock23(), saveat = 10.0)

plot([sol1[sys.O3], sol2[sys.O3]], label = ["T=273K" "T=298K"],
    title = "Change of O3 concentration at different temperatures",
    xlabel = "Time (second)", ylabel = "concentration (ppb)")
Example block output