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])| Row | Name | Units | Description | Default |
|---|---|---|---|---|
| String | Quantity… | String | Real | |
| 1 | O3 | 1.0 | 40.0 | |
| 2 | OH | 1.0 | 4.0e-6 | |
| 3 | HO2 | 1.0 | 4.0e-6 | |
| 4 | NO | 1.0 | 0.0004 | |
| 5 | NO2 | 1.0 | 0.0004 | |
| 6 | CH3O2 | 1.0 | 4.0e-6 | |
| 7 | CH2O | 1.0 | 4.0e-6 | |
| 8 | CO | 1.0 | 100 | |
| 9 | CH3OOH | 1.0 | 4.0e-6 | |
| 10 | ISOP | 1.0 | 1.0e-11 | |
| 11 | H2O2 | 1.0 | 4.0e-6 | |
| 12 | HNO3 | 1.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])| Row | Name | Units | Description | Default |
|---|---|---|---|---|
| String | Quantity… | String | Real | |
| 1 | jO32OH | 1.0 s⁻¹ | 0.000227 | |
| 2 | jH2O2 | 1.0 s⁻¹ | 1.0097e-5 | |
| 3 | jNO2 | 1.0 s⁻¹ | 0.0149 | |
| 4 | jH2COa | 1.0 s⁻¹ | 0.00014 | |
| 5 | jH2COb | 1.0 s⁻¹ | 0.00014 | |
| 6 | jCH3OOH | 1.0 s⁻¹ | 8.9573e-6 | |
| 7 | T | 1.0 K | Temperature | 280.0 |
| 8 | P | 1.0 m⁻¹ kg s⁻² | Pressure | 101325 |
| 9 | O2 | 1.0 | 2.095e8 | |
| 10 | CH4 | 1.0 | 1700.0 | |
| 11 | H2O | 1.0 | 1.839e7 | |
| 12 | arrhenius1₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 13 | arrhenius1₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 14 | arrhenius1₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 15 | arrhenius1₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 16 | arrhenius1₊K_300 | 1.0 K | 300 | |
| 17 | arrhenius1₊a0 | 1.0e-6 m³ s⁻¹ | 1.7e-12 | |
| 18 | arrhenius1₊b0 | 1.0 | 0.0 | |
| 19 | arrhenius1₊c0 | 1.0 K | -940.0 | |
| 20 | arrhenius2₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 21 | arrhenius2₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 22 | arrhenius2₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 23 | arrhenius2₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 24 | arrhenius2₊K_300 | 1.0 K | 300 | |
| 25 | arrhenius2₊a0 | 1.0e-6 m³ s⁻¹ | 1.0e-14 | |
| 26 | arrhenius2₊b0 | 1.0 | 0.0 | |
| 27 | arrhenius2₊c0 | 1.0 K | -490.0 | |
| 28 | arrhenius3₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 29 | arrhenius3₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 30 | arrhenius3₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 31 | arrhenius3₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 32 | arrhenius3₊K_300 | 1.0 K | 300 | |
| 33 | arrhenius3₊a0 | 1.0e-6 m³ s⁻¹ | 4.8e-11 | |
| 34 | arrhenius3₊b0 | 1.0 | 0.0 | |
| 35 | arrhenius3₊c0 | 1.0 K | 250.0 | |
| 36 | rate_HO2HO24₊T_0 | 1.0 K | 2200.0 | |
| 37 | rate_HO2HO24₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 38 | rate_HO2HO24₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 39 | rate_HO2HO24₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 40 | rate_HO2HO24₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 41 | rate_HO2HO24₊ppb_inv | 1.0 | 1 | |
| 42 | rate_HO2HO24₊k0₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 43 | rate_HO2HO24₊k0₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 44 | rate_HO2HO24₊k0₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 45 | rate_HO2HO24₊k0₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 46 | rate_HO2HO24₊k0₊K_300 | 1.0 K | 300 | |
| 47 | rate_HO2HO24₊k0₊a0 | 1.0e-6 m³ s⁻¹ | 3.0e-13 | |
| 48 | rate_HO2HO24₊k0₊b0 | 1.0 | 0.0 | |
| 49 | rate_HO2HO24₊k0₊c0 | 1.0 K | 460.0 | |
| 50 | rate_HO2HO24₊k1₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 51 | rate_HO2HO24₊k1₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 52 | rate_HO2HO24₊k1₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 53 | rate_HO2HO24₊k1₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 54 | rate_HO2HO24₊k1₊K_300 | 1.0 K | 300 | |
| 55 | rate_HO2HO24₊k1₊a0 | 1.0e-6 m³ s⁻¹ | 2.1e-33 | |
| 56 | rate_HO2HO24₊k1₊b0 | 1.0 | 0.0 | |
| 57 | rate_HO2HO24₊k1₊c0 | 1.0 K | 920.0 | |
| 58 | arrhenius5₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 59 | arrhenius5₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 60 | arrhenius5₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 61 | arrhenius5₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 62 | arrhenius5₊K_300 | 1.0 K | 300 | |
| 63 | arrhenius5₊a0 | 1.0e-6 m³ s⁻¹ | 1.8e-12 | |
| 64 | arrhenius5₊b0 | 1.0 | 0.0 | |
| 65 | arrhenius5₊c0 | 1.0 K | 0.0 | |
| 66 | arrhenius6₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 67 | arrhenius6₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 68 | arrhenius6₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 69 | arrhenius6₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 70 | arrhenius6₊K_300 | 1.0 K | 300 | |
| 71 | arrhenius6₊a0 | 1.0e-6 m³ s⁻¹ | 3.0e-12 | |
| 72 | arrhenius6₊b0 | 1.0 | 0.0 | |
| 73 | arrhenius6₊c0 | 1.0 K | -1500.0 | |
| 74 | arrhenius7₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 75 | arrhenius7₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 76 | arrhenius7₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 77 | arrhenius7₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 78 | arrhenius7₊K_300 | 1.0 K | 300 | |
| 79 | arrhenius7₊a0 | 1.0e-6 m³ s⁻¹ | 3.3e-12 | |
| 80 | arrhenius7₊b0 | 1.0 | 0.0 | |
| 81 | arrhenius7₊c0 | 1.0 K | 270.0 | |
| 82 | arr_3rdbody8₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 83 | arr_3rdbody8₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 84 | arr_3rdbody8₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 85 | arr_3rdbody8₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 86 | arr_3rdbody8₊alow₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 87 | arr_3rdbody8₊alow₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 88 | arr_3rdbody8₊alow₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 89 | arr_3rdbody8₊alow₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 90 | arr_3rdbody8₊alow₊K_300 | 1.0 K | 300 | |
| 91 | arr_3rdbody8₊alow₊a0 | 1.0e-6 m³ s⁻¹ | 1.8e-30 | |
| 92 | arr_3rdbody8₊alow₊b0 | 1.0 | 3.0 | |
| 93 | arr_3rdbody8₊alow₊c0 | 1.0 K | 0.0 | |
| 94 | arr_3rdbody8₊ahigh₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 95 | arr_3rdbody8₊ahigh₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 96 | arr_3rdbody8₊ahigh₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 97 | arr_3rdbody8₊ahigh₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 98 | arr_3rdbody8₊ahigh₊K_300 | 1.0 K | 300 | |
| 99 | arr_3rdbody8₊ahigh₊a0 | 1.0e-6 m³ s⁻¹ | 2.8e-11 | |
| 100 | arr_3rdbody8₊ahigh₊b0 | 1.0 | 0.0 | |
| 101 | arr_3rdbody8₊ahigh₊c0 | 1.0 K | 0.0 | |
| 102 | arrhenius9₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 103 | arrhenius9₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 104 | arrhenius9₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 105 | arrhenius9₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 106 | arrhenius9₊K_300 | 1.0 K | 300 | |
| 107 | arrhenius9₊a0 | 1.0e-6 m³ s⁻¹ | 2.45e-12 | |
| 108 | arrhenius9₊b0 | 1.0 | 0.0 | |
| 109 | arrhenius9₊c0 | 1.0 K | -1775.0 | |
| 110 | rate_OHCO10₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 111 | rate_OHCO10₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 112 | rate_OHCO10₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 113 | rate_OHCO10₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 114 | rate_OHCO10₊ppb_inv | 1.0 | 1 | |
| 115 | rate_OHCO10₊klo1₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 116 | rate_OHCO10₊klo1₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 117 | rate_OHCO10₊klo1₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 118 | rate_OHCO10₊klo1₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 119 | rate_OHCO10₊klo1₊K_300 | 1.0 K | 300 | |
| 120 | rate_OHCO10₊klo1₊a0 | 1.0e-6 m³ s⁻¹ | 5.9e-33 | |
| 121 | rate_OHCO10₊klo1₊b0 | 1.0 | 1 | |
| 122 | rate_OHCO10₊klo1₊c0 | 1.0 K | 0 | |
| 123 | rate_OHCO10₊khi1₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 124 | rate_OHCO10₊khi1₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 125 | rate_OHCO10₊khi1₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 126 | rate_OHCO10₊khi1₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 127 | rate_OHCO10₊khi1₊K_300 | 1.0 K | 300 | |
| 128 | rate_OHCO10₊khi1₊a0 | 1.0e-6 m³ s⁻¹ | 1.1e-12 | |
| 129 | rate_OHCO10₊khi1₊b0 | 1.0 | -1.3 | |
| 130 | rate_OHCO10₊khi1₊c0 | 1.0 K | 0 | |
| 131 | rate_OHCO10₊klo2₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 132 | rate_OHCO10₊klo2₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 133 | rate_OHCO10₊klo2₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 134 | rate_OHCO10₊klo2₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 135 | rate_OHCO10₊klo2₊K_300 | 1.0 K | 300 | |
| 136 | rate_OHCO10₊klo2₊a0 | 1.0e-6 m³ s⁻¹ | 1.5e-13 | |
| 137 | rate_OHCO10₊klo2₊b0 | 1.0 | 0 | |
| 138 | rate_OHCO10₊klo2₊c0 | 1.0 K | 0 | |
| 139 | rate_OHCO10₊khi2₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 140 | rate_OHCO10₊khi2₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 141 | rate_OHCO10₊khi2₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 142 | rate_OHCO10₊khi2₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 143 | rate_OHCO10₊khi2₊K_300 | 1.0 K | 300 | |
| 144 | rate_OHCO10₊khi2₊a0 | 1.0e-6 m³ s⁻¹ | 2.1e9 | |
| 145 | rate_OHCO10₊khi2₊b0 | 1.0 | -6.1 | |
| 146 | rate_OHCO10₊khi2₊c0 | 1.0 K | 0 | |
| 147 | arrhenius11₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 148 | arrhenius11₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 149 | arrhenius11₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 150 | arrhenius11₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 151 | arrhenius11₊K_300 | 1.0 K | 300 | |
| 152 | arrhenius11₊a0 | 1.0e-6 m³ s⁻¹ | 5.5e-12 | |
| 153 | arrhenius11₊b0 | 1.0 | 0.0 | |
| 154 | arrhenius11₊c0 | 1.0 K | 125.0 | |
| 155 | arrhenius12₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 156 | arrhenius12₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 157 | arrhenius12₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 158 | arrhenius12₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 159 | arrhenius12₊K_300 | 1.0 K | 300 | |
| 160 | arrhenius12₊a0 | 1.0e-6 m³ s⁻¹ | 4.1e-13 | |
| 161 | arrhenius12₊b0 | 1.0 | 0.0 | |
| 162 | arrhenius12₊c0 | 1.0 K | 750.0 | |
| 163 | arrhenius13₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 164 | arrhenius13₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 165 | arrhenius13₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 166 | arrhenius13₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 167 | arrhenius13₊K_300 | 1.0 K | 300 | |
| 168 | arrhenius13₊a0 | 1.0e-6 m³ s⁻¹ | 2.66e-12 | |
| 169 | arrhenius13₊b0 | 1.0 | 0.0 | |
| 170 | arrhenius13₊c0 | 1.0 K | 200.0 | |
| 171 | arrhenius14₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 172 | arrhenius14₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 173 | arrhenius14₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 174 | arrhenius14₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 175 | arrhenius14₊K_300 | 1.0 K | 300 | |
| 176 | arrhenius14₊a0 | 1.0e-6 m³ s⁻¹ | 1.14e-12 | |
| 177 | arrhenius14₊b0 | 1.0 | 0.0 | |
| 178 | arrhenius14₊c0 | 1.0 K | 200.0 | |
| 179 | arrhenius15₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 180 | arrhenius15₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 181 | arrhenius15₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 182 | arrhenius15₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 183 | arrhenius15₊K_300 | 1.0 K | 300 | |
| 184 | arrhenius15₊a0 | 1.0e-6 m³ s⁻¹ | 2.8e-12 | |
| 185 | arrhenius15₊b0 | 1.0 | 0.0 | |
| 186 | arrhenius15₊c0 | 1.0 K | 300.0 | |
| 187 | arrhenius16₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 188 | arrhenius16₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 189 | arrhenius16₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 190 | arrhenius16₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 191 | arrhenius16₊K_300 | 1.0 K | 300 | |
| 192 | arrhenius16₊a0 | 1.0e-6 m³ s⁻¹ | 9.5e-14 | |
| 193 | arrhenius16₊b0 | 1.0 | 0.0 | |
| 194 | arrhenius16₊c0 | 1.0 K | 390.0 | |
| 195 | rateconvert17₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 196 | rateconvert17₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 197 | rateconvert17₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 198 | rateconvert17₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 199 | rateconvert17₊a0 | 1.0e-6 m³ s⁻¹ | 4.0e-24 | |
| 200 | arrhenius18₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 201 | arrhenius18₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 202 | arrhenius18₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 203 | arrhenius18₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 204 | arrhenius18₊K_300 | 1.0 K | 300 | |
| 205 | arrhenius18₊a0 | 1.0e-6 m³ s⁻¹ | 2.7e-11 | |
| 206 | arrhenius18₊b0 | 1.0 | 0.0 | |
| 207 | arrhenius18₊c0 | 1.0 K | 390.0 | |
| 208 | arrhenius19₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 209 | arrhenius19₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 210 | arrhenius19₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 211 | arrhenius19₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 212 | arrhenius19₊K_300 | 1.0 K | 300 | |
| 213 | arrhenius19₊a0 | 1.0e-6 m³ s⁻¹ | 2.7e-11 | |
| 214 | arrhenius19₊b0 | 1.0 | 0.0 | |
| 215 | arrhenius19₊c0 | 1.0 K | 390.0 | |
| 216 | arrhenius20₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 217 | arrhenius20₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 218 | arrhenius20₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 219 | arrhenius20₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 220 | arrhenius20₊K_300 | 1.0 K | 300 | |
| 221 | arrhenius20₊a0 | 1.0e-6 m³ s⁻¹ | 2.7e-11 | |
| 222 | arrhenius20₊b0 | 1.0 | 0.0 | |
| 223 | arrhenius20₊c0 | 1.0 K | 390.0 | |
| 224 | arrhenius21₊A | 1.0 mol⁻¹ | Avogadro's number | 6.02e23 |
| 225 | arrhenius21₊R | 1.0e-6 m² kg s⁻² K⁻¹ mol⁻¹ | universal gas constant | 8.314e6 |
| 226 | arrhenius21₊ppb_unit | 1.0 | Convert from mol/mol_air to ppb | 1.0e-9 |
| 227 | arrhenius21₊num_density_unit_inv | 1.0e-6 m³ | multiply by num_density to obtain the unitless value of num_density | 1 |
| 228 | arrhenius21₊K_300 | 1.0 K | 300 | |
| 229 | arrhenius21₊a0 | 1.0e-6 m³ s⁻¹ | 5.59e-15 | |
| 230 | arrhenius21₊b0 | 1.0 | 0.0 | |
| 231 | arrhenius21₊c0 | 1.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.0Now 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)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)")