<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing with OASIS Tables v3.0 20080202//EN" "https://jats.nlm.nih.gov/nlm-dtd/publishing/3.0/journalpub-oasis3.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:oasis="http://docs.oasis-open.org/ns/oasis-exchange/table" xml:lang="en" dtd-version="3.0" article-type="research-article">
  <front>
    <journal-meta><journal-id journal-id-type="publisher">GMD</journal-id><journal-title-group>
    <journal-title>Geoscientific Model Development</journal-title>
    <abbrev-journal-title abbrev-type="publisher">GMD</abbrev-journal-title><abbrev-journal-title abbrev-type="nlm-ta">Geosci. Model Dev.</abbrev-journal-title>
  </journal-title-group><issn pub-type="epub">1991-9603</issn><publisher>
    <publisher-name>Copernicus Publications</publisher-name>
    <publisher-loc>Göttingen, Germany</publisher-loc>
  </publisher></journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.5194/gmd-18-9039-2025</article-id><title-group><article-title>The Chemical Mechanism Integrator <italic>Cminor</italic> v1.0: a stand-alone Fortran environment for the particle-based simulation of chemical multiphase mechanisms</article-title><alt-title>The Chemical Mechanism Integrator <italic>Cminor</italic> v1.0</alt-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author" corresp="yes" rid="aff1">
          <name><surname>Rug</surname><given-names>Levin</given-names></name>
          <email>l.rug@fu-berlin.de</email>
        <ext-link>https://orcid.org/0009-0003-3328-9066</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff2">
          <name><surname>Schimmel</surname><given-names>Willi</given-names></name>
          
        <ext-link>https://orcid.org/0000-0001-8428-6445</ext-link></contrib>
        <contrib contrib-type="author" corresp="yes" rid="aff1">
          <name><surname>Hoffmann</surname><given-names>Fabian</given-names></name>
          <email>f.hoffmann@fu-berlin.de</email>
        <ext-link>https://orcid.org/0000-0001-5136-0653</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff2">
          <name><surname>Knoth</surname><given-names>Oswald</given-names></name>
          
        </contrib>
        <aff id="aff1"><label>1</label><institution>Institute for Meteorology, Freie Universität Berlin, Berlin, Germany </institution>
        </aff>
        <aff id="aff2"><label>2</label><institution>Modeling of Atmospheric Processes, Leibniz Institute for Tropospheric Research, Leipzig, Germany</institution>
        </aff>
      </contrib-group>
      <author-notes><corresp id="corr1">Levin Rug (l.rug@fu-berlin.de) and Fabian Hoffmann (f.hoffmann@fu-berlin.de)</corresp></author-notes><pub-date><day>26</day><month>November</month><year>2025</year></pub-date>
      
      <volume>18</volume>
      <issue>22</issue>
      <fpage>9039</fpage><lpage>9059</lpage>
      <history>
        <date date-type="received"><day>30</day><month>January</month><year>2025</year></date>
           <date date-type="rev-request"><day>9</day><month>May</month><year>2025</year></date>
           <date date-type="rev-recd"><day>30</day><month>September</month><year>2025</year></date>
           <date date-type="accepted"><day>14</day><month>October</month><year>2025</year></date>
      </history>
      <permissions>
        <copyright-statement>Copyright: © 2025 Levin Rug et al.</copyright-statement>
        <copyright-year>2025</copyright-year>
      <license license-type="open-access"><license-p>This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this licence, visit <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">https://creativecommons.org/licenses/by/4.0/</ext-link></license-p></license></permissions><self-uri xlink:href="https://gmd.copernicus.org/articles/18/9039/2025/gmd-18-9039-2025.html">This article is available from https://gmd.copernicus.org/articles/18/9039/2025/gmd-18-9039-2025.html</self-uri><self-uri xlink:href="https://gmd.copernicus.org/articles/18/9039/2025/gmd-18-9039-2025.pdf">The full text article is available as a PDF file from https://gmd.copernicus.org/articles/18/9039/2025/gmd-18-9039-2025.pdf</self-uri>
      <abstract><title>Abstract</title>

      <p id="d2e124">We present version 1.0 of the <italic>C</italic>hemical <italic>M</italic>echanism <italic>In</italic>tegrat<italic>or</italic> (Cminor), a fully modularized modern Fortran software package for the computational simulation of skeletal and detailed chemical kinetic systems derived from atmospheric and combustion chemistry. Cminor aims for the efficient simulation of complex chemical mechanisms by using various mathematical techniques. These are tailored to systems of ordinary differential equations (ODEs), having the specific structure arising from chemical reaction systems. Additionally, a high-speed mechanism parser allows the user to interchange reactions or their parameters in an ASCII format text file and immediately start a new simulation without recompiling, enabling fast and numerous simulations. Cminor's solver technique is based on Rosenbrock methods. Different measures of local errors and an analytical Jacobian matrix approach are implemented, where efficiency is obtained by exploiting the sparsity structure of the Jacobian.</p>

      <p id="d2e139">Cminor can be run in one of three configurations: <list list-type="bullet"><list-item>
      <p id="d2e144">A box-model framework for either pure gas-phase mechanisms or a multi-modal aerosol distribution dissolved in mono-dispersed cloud droplets.</p></list-item><list-item>
      <p id="d2e148">A rising adiabatic parcel, in which the activation of multi-modal aerosols is represented by solving the droplet condensation equation.</p></list-item><list-item>
      <p id="d2e152">A constant volume environment, where thermodynamic properties are evaluated by polynomial functions of temperature according to the standards of the Chemkin thermodynamic data base.</p></list-item></list>The software package is evaluated by applying seven different chemical mechanisms. Three of them are from the field of air-quality modeling and three are from the area of combustion kinetics, ranging from 7 species and 10 reactions to 10 196 species and 23 098 reactions. The last mechanism describes sulfur accumulation in clouds, which is tested along with a rising parcel and condensating cloud droplets.</p>
  </abstract>
    
<funding-group>
<award-group id="gs1">
<funding-source>Deutsche Forschungsgemeinschaft</funding-source>
<award-id>HO 6588/1-1</award-id>
<award-id>HO 6588/3-1</award-id>
</award-group>
<award-group id="gs2">
<funding-source>Horizon 2020</funding-source>
<award-id>EUROCHAMP-2020 (Grant No. 730997)</award-id>
</award-group>
</funding-group>
</article-meta>
  </front>
<body>
      

<sec id="Ch1.S1" sec-type="intro">
  <label>1</label><title>Introduction</title>
      <p id="d2e167">The understanding of physical processes that determine atmospheric states of climatological, ecological, social, political or agricultural relevance has undergone significant improvement in theoretical and modeling aspects. While chemical processes are omnipresent in any state of the atmosphere, they have drawn relatively minor attention when physical aspects of the atmosphere are considered. Nevertheless, the problem of considering the atmosphere as a physicochemical system, rather than an entirely physical system, cannot be avoided. Therefore, models of atmospheric processes usually work with assumptions about the underlying chemical state. Major aspects, e.g., sensitivity to the chemical state, chemical processing, or inter-dependencies, are mostly ignored. In contrast to this, the community of atmospheric chemistry has shown a number of important possible influences of chemical processes. These concern some of the most relevant aspects of atmospheric physics, like radiative properties, aerosol size spectra, cloud field dynamics and precipitation (see, e.g., <xref ref-type="bibr" rid="bib1.bibx20 bib1.bibx16 bib1.bibx15 bib1.bibx2 bib1.bibx38 bib1.bibx12 bib1.bibx5 bib1.bibx17 bib1.bibx39" id="altparen.1"/>). Atmospheric chemical processes are described by a collection of reactions, constituting a specific chemical mechanism, possibly including multiple phases (gaseous, aqueous, solid) and phase changes, i.e., nucleation or dissolution. Timescales of chemical reactions might depend on temperature, pressure, insolation, or chemical composition, but generally vary largely from reaction to reaction.</p>
      <p id="d2e173">By stating an ordinary differential equation (ODE) for the time evolution of every chemical species' concentration in a mechanism, large and stiff ODE systems arise. Therefore, the simulation of comprehensive chemical reaction mechanisms requires the development of efficient algorithms, particularly suited for the characteristics of ODE systems of chemical kinetics. The software package Cminor (Chemical Mechanism Integrator), written in modern Fortran, was developed as an environment for the simulation of atmospheric chemistry mechanisms of any size and type.</p>
      <p id="d2e176">Several software packages have been developed for the analysis of kinetic systems, e.g., ChemKin <xref ref-type="bibr" rid="bib1.bibx14" id="paren.2"/>, SPACCIM <xref ref-type="bibr" rid="bib1.bibx36" id="paren.3"/>, KPP <xref ref-type="bibr" rid="bib1.bibx27" id="paren.4"/>, CAABA/MECCA <xref ref-type="bibr" rid="bib1.bibx26" id="paren.5"/>, and SpeedChem <xref ref-type="bibr" rid="bib1.bibx22" id="paren.6"/>. As a matter of fact, the ongoing further development and creation of new chemical mechanisms shows that a tool providing an efficient solver and high flexibility is absolutely necessary. This goal is achieved by Cminor.</p>
      <p id="d2e194">This paper is organized as follows. The next section introduces how a Cminor simulation is set up, including various input options. The third section assesses the equations solved by Cminor, followed by a section on the numerical methods used by Cminor. Afterwards, simulation results are shown. The paper is concluded by a last section summarizing results and perspectives of this work. All variables not explicitly defined in the text are listed in the Supplement, Sect. S11.</p>
</sec>
<sec id="Ch1.S2">
  <label>2</label><title>Model Input</title>
      <p id="d2e205">The Cminor software package is a two-in-one simulation tool for chemical kinetics problems in atmospheric and combustion chemistry. Cminor reads a reaction system provided as an ASCII file, generates a set of stiff ODEs, and solves it directly. One of the advantages of Cminor is the flexible high-speed ASCII mechanism parser where the generation time of internally used structures grows linearly with the mechanism size. This allows the user to quickly add/remove reactions or manipulate reaction rate constants within the reaction mechanism file. The ability to quickly redefine these parameters is crucial for investigating newly developed chemical mechanisms, in contrast to KPP <xref ref-type="bibr" rid="bib1.bibx27" id="paren.7"/>, where a fixed Fortran code for every new chemical mechanism has to be generated, compiled, and executed.</p>
<sec id="Ch1.S2.SS1">
  <label>2.1</label><title>General setup</title>
      <p id="d2e219">For a given model scenario with initial values and prescribed emission and deposition rates (i.e., constant sources and sinks for gas phase species), the user is able to simulate the evolution of species concentrations and other variables in a box-model framework over a defined time interval. The Cminor box-model is depicted in Fig. <xref ref-type="fig" rid="F1"/>.</p>
      <p id="d2e224">The syntax rules for combustion mechanisms can be taken from the ChemKin documentation <xref ref-type="bibr" rid="bib1.bibx14" id="paren.8"/>, which is widely used for combustion kinetics. The necessary thermodynamic data base, which includes the coefficients for fitting polynomials, follows the same ChemKin syntax rules <xref ref-type="bibr" rid="bib1.bibx13" id="paren.9"/>. For atmospheric chemical mechanisms, a detailed description of the syntax rules is provided in the Supplement. In any case, the input data has to be provided in readable ASCII format. Assistance in the syntax rules is also given by the examples provided in the repository, as well as on request by the authors. A short summary shall be given in the following.</p>
      <p id="d2e233">Running a simulation requires four files beside the actual model code: <list list-type="bullet"><list-item>
      <p id="d2e238">the <monospace>*.sys</monospace>-file,</p></list-item><list-item>
      <p id="d2e245">the <monospace>*.dat</monospace>-file,</p></list-item><list-item>
      <p id="d2e252">the <monospace>*.ini</monospace>-file, and</p></list-item><list-item>
      <p id="d2e259">the <monospace>*.run</monospace>-file.</p></list-item></list> The <monospace>*.sys</monospace>-file is solely to list all reactions of the mechanism to simulate. The description of a reaction consists of at least three lines. The first line specifies the reaction class (gas phase, aqueous phase, forward/backward reactions, phase transfer), the second line declares the reaction itself, and the third line contains an identifier for the reaction rate constant type, with parameter values. The third line determines the specific formula of the rate constant, i.e., the speed, of the reaction. There are various reaction rate constant types, like <list list-type="bullet"><list-item>
      <p id="d2e271">Arrhenius laws (temperature dependencies),</p></list-item><list-item>
      <p id="d2e275">photolytic processes (insolation dependencies),</p></list-item><list-item>
      <p id="d2e279">Troe reactions (pressure dependencies),</p></list-item><list-item>
      <p id="d2e283">pH-dependent formulas,</p></list-item><list-item>
      <p id="d2e287">humidity-dependent formulas,</p></list-item></list> and others. Each type comes in a multitude of slightly varying formulas, depending on parameters like activation energy of the reaction. All available rate constant formulas are listed in the Supplement, Sect. S4. The description of reactions is exemplified in Table <xref ref-type="table" rid="T1"/>. The optional fourth line, starting with “FACTOR:”, sets a passive species to be included as an educt for the reaction. Passive species are mostly primary components of air, like O<sub>2</sub> or N<sub>2</sub>, which are not included as a separate equation. Instead, their concentration is treated as constant since they are abundant. The available FACTOR species are as well listed in the Supplement, Sect. S3.5.</p>
      <p id="d2e312">Cminor supports use of the SMILES notation for species throughout all files <xref ref-type="bibr" rid="bib1.bibx34" id="paren.10"/>. A species can have any name following these rules: <list list-type="bullet"><list-item>
      <p id="d2e320">the name of the species must be in capital letters,</p></list-item><list-item>
      <p id="d2e324">square brackets enclosing the whole name indicate passive species (e.g., [O2]),</p></list-item><list-item>
      <p id="d2e328">an “a” in front of a species indicates presence in droplets, i.e., an aqueous species (e.g., aO2),</p></list-item><list-item>
      <p id="d2e332">one or multiple “p” or “m” after the species indicate ions and their charge (e.g., CO3mm means CO<inline-formula><mml:math id="M3" display="inline"><mml:mrow><mml:msubsup><mml:mi/><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula>), and</p></list-item><list-item>
      <p id="d2e351">allowed special characters in species names are [, ], (, ), <inline-formula><mml:math id="M4" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>, <inline-formula><mml:math id="M5" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula>, and *.</p></list-item></list></p>

<table-wrap id="T1" specific-use="star"><label>Table 1</label><caption><p id="d2e372">Overview and examples of the structure describing a specific reaction in the <monospace>*.sys</monospace>-file. The repertoire of rate constants and the meaning of the rate parameters (A, B, E/R, <inline-formula><mml:math id="M6" display="inline"><mml:mi mathvariant="normal">…</mml:mi></mml:math></inline-formula>) can be found in the Supplement, Sect. S3.5.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="2">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="left"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Pattern</oasis:entry>
         <oasis:entry colname="col2">Examples</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">CLASS: <sup>*</sup>reaction class<sup>*</sup></oasis:entry>
         <oasis:entry colname="col2">CLASS: GAS</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><sup>*</sup>educts<sup>*</sup> <inline-formula><mml:math id="M11" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> <sup>*</sup>products<sup>*</sup></oasis:entry>
         <oasis:entry colname="col2">NO <inline-formula><mml:math id="M14" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula> NO <inline-formula><mml:math id="M15" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> NO2 <inline-formula><mml:math id="M16" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula> NO2</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><sup>*</sup>reaction constant type<sup>*</sup>: <sup>*</sup>reaction constant parameters<sup>*</sup></oasis:entry>
         <oasis:entry colname="col2">TEMP1:  A: <inline-formula><mml:math id="M21" display="inline"><mml:mrow class="unit"><mml:mn mathvariant="normal">3.3</mml:mn><mml:mi mathvariant="normal">e</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">39</mml:mn></mml:mrow></mml:math></inline-formula>  E/R: <inline-formula><mml:math id="M22" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>530.0</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">FACTOR: $<sup>*</sup>factor species<sup>*</sup></oasis:entry>
         <oasis:entry colname="col2">FACTOR: $O2</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">CLASS: GAS</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">O2 <inline-formula><mml:math id="M25" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 2.0 O</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry rowsep="1" colname="col2">PHOTO3:  A: <inline-formula><mml:math id="M26" display="inline"><mml:mrow class="unit"><mml:mn mathvariant="normal">2.643</mml:mn><mml:mi mathvariant="normal">e</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">CLASS: HENRY</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">CO2 <inline-formula><mml:math id="M27" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> aCO2</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry rowsep="1" colname="col2">TEMP3:  A: <inline-formula><mml:math id="M28" display="inline"><mml:mrow class="unit"><mml:mn mathvariant="normal">3.1</mml:mn><mml:mi mathvariant="normal">e</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula>  B: 2423.0</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">CLASS: DISS</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M29" display="inline"><mml:mo>[</mml:mo></mml:math></inline-formula>aH2O<inline-formula><mml:math id="M30" display="inline"><mml:mo>]</mml:mo></mml:math></inline-formula> <inline-formula><mml:math id="M31" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> OHm <inline-formula><mml:math id="M32" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula> Hp</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry rowsep="1" colname="col2">DTEMP:  A: <inline-formula><mml:math id="M33" display="inline"><mml:mrow class="unit"><mml:mn mathvariant="normal">1.8</mml:mn><mml:mi mathvariant="normal">e</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">16</mml:mn></mml:mrow></mml:math></inline-formula>  B: <inline-formula><mml:math id="M34" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>6800.0  C: <inline-formula><mml:math id="M35" display="inline"><mml:mrow class="unit"><mml:mn mathvariant="normal">1.3</mml:mn><mml:mi mathvariant="normal">e</mml:mi><mml:mn mathvariant="normal">11</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">CLASS: DISS</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">aCO2 <inline-formula><mml:math id="M36" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> HCO3m <inline-formula><mml:math id="M37" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula> Hp</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry rowsep="1" colname="col2">DTEMP:  A: <inline-formula><mml:math id="M38" display="inline"><mml:mrow class="unit"><mml:mn mathvariant="normal">4.3</mml:mn><mml:mi mathvariant="normal">e</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7</mml:mn></mml:mrow></mml:math></inline-formula>  B: <inline-formula><mml:math id="M39" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>913.0  C: <inline-formula><mml:math id="M40" display="inline"><mml:mrow class="unit"><mml:mn mathvariant="normal">5.6</mml:mn><mml:mi mathvariant="normal">e</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">CLASS: AQUA</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">aSO2 <inline-formula><mml:math id="M41" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula> aO3 <inline-formula><mml:math id="M42" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> HSO4m <inline-formula><mml:math id="M43" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula> aO2 <inline-formula><mml:math id="M44" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula> Hp</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">TEMP3:  A: <inline-formula><mml:math id="M45" display="inline"><mml:mrow class="unit"><mml:mn mathvariant="normal">2.4</mml:mn><mml:mi mathvariant="normal">e</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:math></inline-formula>  B: 0.0</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d2e905">The <monospace>*.dat</monospace>-file lists molar masses, accommodation coefficients, and diffusion coefficients for gaseous species, as well as molar masses and charges for aqueous species. Moreover, the names of organic peroxy radicals (RO<sub>2</sub> species), gaseous or aqueous, have to be listed here if they are needed as (non-constant) factors in the mechanism. If specified as a factor for a reaction, the respective rate constant will be multiplied with the sum of the current concentrations of all RO<sub>2</sub> species specified in this file.</p>
      <p id="d2e929">The <monospace>*.ini</monospace>-file contains the species' initial values, default is zero, and constant emission and deposition rates for gas phase species. Also, the aerosol composition and distribution are specified here.</p>
      <p id="d2e935">The <monospace>*.run</monospace>-file is a collection of Fortran NAMELISTs to specify the remaining simulation parameters, e.g., temperature, a trigger for adiabatic parcel modeling, output-file name, time-integration method, and more. All NAMELISTs and their variables are listed in the Supplement, Sect. S9, including their default values. Multiple examples are given in the repository <xref ref-type="bibr" rid="bib1.bibx25" id="text.11"/>.</p>

      <fig id="F1" specific-use="star"><label>Figure 1</label><caption><p id="d2e946">Graphical depiction of Cminor. Initially, the box contains a fixed number of cloud condensation nuclei that can activate to cloud droplets. Next to gas phase reactions, aqueous phase reactions take place within the cloud droplets. The  letters <bold>A</bold><sub>(g)</sub> and <bold>B</bold><sub>(g)</sub> denote the concentrations in the gas phase and <bold>A</bold><sub>(a)</sub> and <bold>B</bold><sub>(a)</sub> the concentrations in the aqueous phase, respectively. The magnification shows the processes near and inside of the cloud droplets. The interchange between the gas and aqueous phase is specified according to the Schwartz approach <xref ref-type="bibr" rid="bib1.bibx29" id="paren.12"/>.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/18/9039/2025/gmd-18-9039-2025-f01.png"/>

        </fig>

</sec>
<sec id="Ch1.S2.SS2">
  <label>2.2</label><title>Liquid water content</title>
      <p id="d2e1031">The liquid water content (LWC) describes the mass of condensed water per volume of air. The LWC for a mono-dispersed droplet population is given by LWC <inline-formula><mml:math id="M52" display="inline"><mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub><mml:mi>V</mml:mi><mml:mi>N</mml:mi></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M53" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1000</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M54" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">kg</mml:mi></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M55" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">m</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> is the mass density of liquid water, <inline-formula><mml:math id="M56" display="inline"><mml:mi>V</mml:mi></mml:math></inline-formula> the droplet volume, and <inline-formula><mml:math id="M57" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula> the number concentration of droplets. Within this simplified model, the time dependent LWC<inline-formula><mml:math id="M58" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is given by a piecewise linear function mimicking the condensation process, where <inline-formula><mml:math id="M59" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula> is the independent time variable, <inline-formula><mml:math id="M60" display="inline"><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn mathvariant="normal">6</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> are the bounds of the linear function, and LWC<sub>min⁡</sub> and LWC<sub>max⁡</sub> the respective minimum and maximum LWC. If the simulation time exceeds the bound <inline-formula><mml:math id="M63" display="inline"><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mn mathvariant="normal">6</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, the function will be continued periodically, such that <inline-formula><mml:math id="M64" display="inline"><mml:mrow><mml:msubsup><mml:mi>b</mml:mi><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn mathvariant="normal">6</mml:mn></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> for <inline-formula><mml:math id="M65" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">6</mml:mn></mml:mrow></mml:math></inline-formula>, as indicated in Fig. <xref ref-type="fig" rid="F2"/>. From LWC<inline-formula><mml:math id="M66" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, the droplet wet radii are calculated and used for aqueous chemistry and phase transfer. In the case of an adiabatic parcel, the LWC is determined by the droplet condensation equation, which will be described in Sect. <xref ref-type="sec" rid="Ch1.S3.SS3"/>, below. For prescribed LWC(<inline-formula><mml:math id="M67" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula>), all droplets contain the same amount of liquid water while different amounts of dissolved aerosol are possible.</p>

      <fig id="F2" specific-use="star"><label>Figure 2</label><caption><p id="d2e1258">Pseudo liquid water content function LWC<inline-formula><mml:math id="M68" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. All boundaries can be defined by the user.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/18/9039/2025/gmd-18-9039-2025-f02.png"/>

        </fig>

</sec>
<sec id="Ch1.S2.SS3">
  <label>2.3</label><title>Aerosol modes</title>
      <p id="d2e1288">The composition of aerosol is initialized at the beginning of the simulation. The syntax for the setup of the aerosol modes is described in the Supplement, Sect. S6.3. We assume that the aerosol is completely dissolved in the droplets. The aerosol is assumed to be log-normally distributed with an arbitrary number of modes. Each mode can have a specific composition, resembling, e.g., coexisting sea-salt and ammonium-salt particles, or any internally and/or externally mixed aerosol distribution. The aerosol is assigned to a user-specified number of droplet classes, each representing a number of equal hydrometeors with a specific amount of liquid water and dissolved aerosol mass. The aerosol mass is determined by discretizing the aerosol distribution using logarithmically equidistant bins, one for each droplet class. To constrain the aerosol masses to a reasonable range, the aerosol distribution of each mode is bounded by determining the <inline-formula><mml:math id="M69" display="inline"><mml:mn mathvariant="normal">0.5</mml:mn></mml:math></inline-formula> %-radius-quantile and the <inline-formula><mml:math id="M70" display="inline"><mml:mn mathvariant="normal">99.5</mml:mn></mml:math></inline-formula> %-mass-quantile. If all modes contain the same aerosol type, this procedure is applied for the sum of these modes, using the respective smallest and largest quantiles of the individual modes. If the modes differ in aerosol type, the procedure is applied to each mode individually. In addition to the initial aerosol mass, general initial values for any aqueous species can be prescribed.</p>
      <p id="d2e1305">If the adiabatic parcel option is used, aerosol activation is determined by Köhler theory (Sect. <xref ref-type="sec" rid="Ch1.S3.SS3"/>). Alternatively, when the change in LWC is prescribed (Sect. <xref ref-type="sec" rid="Ch1.S2.SS2"/>), only aerosols with dry radii greater than a user-specified threshold are assumed to be activated, and the LWC is distributed equally among the activated particles.</p>
</sec>
</sec>
<sec id="Ch1.S3">
  <label>3</label><title>Model Equations</title>
      <p id="d2e1321">All equations solved by Cminor are discussed here. Any variable, meteorological parameter or value not defined here is listed in the Supplement, Sect. S11.</p>
<sec id="Ch1.S3.SS1">
  <label>3.1</label><title>Description of chemical kinetic systems</title>
      <p id="d2e1332">Consider a system of <inline-formula><mml:math id="M71" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> reactions involving <inline-formula><mml:math id="M72" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> chemical species that can be represented in the general form

                <disp-formula id="Ch1.E1" content-type="numbered"><label>1</label><mml:math id="M73" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:msubsup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mi mathvariant="normal">e</mml:mi></mml:msubsup><mml:msub><mml:mi>S</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mover><mml:mo>→</mml:mo><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mover><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:msubsup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mi mathvariant="normal">p</mml:mi></mml:msubsup><mml:msub><mml:mi>S</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="2em"/><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where the stoichiometric coefficients of educts <inline-formula><mml:math id="M74" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mi mathvariant="normal">e</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> and products <inline-formula><mml:math id="M75" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mi mathvariant="normal">p</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> are stored as sparse matrices. <inline-formula><mml:math id="M76" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> denotes the name of the <inline-formula><mml:math id="M77" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula>th chemical species in the mechanism and <inline-formula><mml:math id="M78" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the rate constant. Table <xref ref-type="table" rid="T2"/> summarizes the submodules that provide the rate constant <inline-formula><mml:math id="M79" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> for the case of atmospheric chemical mechanisms, a detailed description of all implemented types of rate constants can be seen in the Supplement, Sect. S4.</p>

<table-wrap id="T2" specific-use="star"><label>Table 2</label><caption><p id="d2e1536">Tabular overview of possible combinations of reaction types used in simulations of atmospheric chemistry.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="6">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="right" colsep="1"/>
     <oasis:colspec colnum="3" colname="col3" align="center"/>
     <oasis:colspec colnum="4" colname="col4" align="center"/>
     <oasis:colspec colnum="5" colname="col5" align="center"/>
     <oasis:colspec colnum="6" colname="col6" align="center"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry namest="col1" nameend="col2" align="center" colsep="1">TYPES </oasis:entry>
         <oasis:entry namest="col3" nameend="col6">CLASS </oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Submodules used to calculate <inline-formula><mml:math id="M80" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Number of functions</oasis:entry>
         <oasis:entry colname="col3">GAS</oasis:entry>
         <oasis:entry colname="col4">HENRY</oasis:entry>
         <oasis:entry colname="col5">DISS</oasis:entry>
         <oasis:entry colname="col6">AQUA</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Photolysis</oasis:entry>
         <oasis:entry colname="col2">6</oasis:entry>
         <oasis:entry colname="col3">X</oasis:entry>
         <oasis:entry colname="col4"/>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6">X</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Constant</oasis:entry>
         <oasis:entry colname="col2">1</oasis:entry>
         <oasis:entry colname="col3">X</oasis:entry>
         <oasis:entry colname="col4">X</oasis:entry>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6">X</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Temperature</oasis:entry>
         <oasis:entry colname="col2">7</oasis:entry>
         <oasis:entry colname="col3">X</oasis:entry>
         <oasis:entry colname="col4">X</oasis:entry>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6">X</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Troe</oasis:entry>
         <oasis:entry colname="col2">6</oasis:entry>
         <oasis:entry colname="col3">X</oasis:entry>
         <oasis:entry colname="col4"/>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Add Backward Reaction</oasis:entry>
         <oasis:entry colname="col2">6</oasis:entry>
         <oasis:entry colname="col3"/>
         <oasis:entry colname="col4"/>
         <oasis:entry colname="col5">X</oasis:entry>
         <oasis:entry colname="col6"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Specials</oasis:entry>
         <oasis:entry colname="col2">17</oasis:entry>
         <oasis:entry colname="col3">X</oasis:entry>
         <oasis:entry colname="col4"/>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6">X</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Custom</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M81" display="inline"><mml:mo>*</mml:mo></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">X</oasis:entry>
         <oasis:entry colname="col4">X</oasis:entry>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6">X</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d2e1747">All functions are implemented in a way that minimizes numerical operations, such as <inline-formula><mml:math id="M82" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mo>+</mml:mo><mml:mo>,</mml:mo><mml:mo>-</mml:mo><mml:mo>,</mml:mo><mml:mo>*</mml:mo><mml:mo>,</mml:mo><mml:mo>/</mml:mo><mml:mo>,</mml:mo><mml:mo>*</mml:mo><mml:mo>*</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, and calls to intrinsic functions, e.g., <inline-formula><mml:math id="M83" display="inline"><mml:mrow><mml:mi>exp⁡</mml:mi><mml:mo>(</mml:mo><mml:mo>⋅</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M84" display="inline"><mml:mrow><mml:mi>log⁡</mml:mi><mml:mo>(</mml:mo><mml:mo>⋅</mml:mo><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M85" display="inline"><mml:mrow><mml:mi>sin⁡</mml:mi><mml:mo>(</mml:mo><mml:mo>⋅</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M86" display="inline"><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mo>(</mml:mo><mml:mo>⋅</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, while performing these efficiently. Next to hard coded functions, the user is also able to declare own functions that do not match any of the functions provided, see Supplement, Sect. S4.1, to introduce custom rate constants.</p>
      <p id="d2e1840">The general reaction kinetics formulation Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>) leads to a set of <inline-formula><mml:math id="M87" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> ODEs expressing mass conservation in the system as

                <disp-formula id="Ch1.E2" content-type="numbered"><label>2</label><mml:math id="M88" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mtext>d</mml:mtext><mml:msub><mml:mi>c</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:msub><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>r</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mo>,</mml:mo><mml:mi>T</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:msubsup><mml:mi>c</mml:mi><mml:mi>j</mml:mi><mml:mtext>emis</mml:mtext></mml:msubsup><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="1em"/><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:mrow></mml:math></disp-formula>

          
          where d<inline-formula><mml:math id="M89" display="inline"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>/</mml:mo></mml:mrow></mml:math></inline-formula>d<inline-formula><mml:math id="M90" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula> is the change in concentration of species <inline-formula><mml:math id="M91" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M92" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:msubsup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mi mathvariant="normal">p</mml:mi></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mi mathvariant="normal">e</mml:mi></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is the difference between stoichiometric coefficients of products and educts of species <inline-formula><mml:math id="M93" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> in reaction <inline-formula><mml:math id="M94" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula>, and <inline-formula><mml:math id="M95" display="inline"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mo>,</mml:mo><mml:mi>T</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is the reaction rate, depending on the concentrations of all reactants in reaction <inline-formula><mml:math id="M96" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula>, expressed by <inline-formula><mml:math id="M97" display="inline"><mml:mi mathvariant="bold-italic">c</mml:mi></mml:math></inline-formula>, temperature <inline-formula><mml:math id="M98" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula>, and possibly other parameters <inline-formula><mml:math id="M99" display="inline"><mml:mi mathvariant="italic">ϕ</mml:mi></mml:math></inline-formula>. In addition, one can specify emission and deposition rates for gas phase species, which are summed up in the vector <inline-formula><mml:math id="M100" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mtext>emis</mml:mtext></mml:msup></mml:mrow></mml:math></inline-formula>. While the emission rates are specified as actual rate in the <monospace>*.ini</monospace>-file, deposition is determined by a given rate constant from the <monospace>*.ini</monospace>-file. The sink/source term <inline-formula><mml:math id="M101" display="inline"><mml:mrow><mml:msubsup><mml:mi>c</mml:mi><mml:mi>j</mml:mi><mml:mtext>emis</mml:mtext></mml:msubsup></mml:mrow></mml:math></inline-formula> is calculated as

                <disp-formula id="Ch1.Ex1"><mml:math id="M102" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msubsup><mml:mi>c</mml:mi><mml:mi>j</mml:mi><mml:mtext>emis</mml:mtext></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi>c</mml:mi><mml:mi>j</mml:mi><mml:mtext>in</mml:mtext></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mi>c</mml:mi><mml:mi>j</mml:mi><mml:mtext>out</mml:mtext></mml:msubsup><mml:msub><mml:mi>c</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>S</mml:mi></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M103" display="inline"><mml:mrow><mml:msubsup><mml:mi>c</mml:mi><mml:mi>j</mml:mi><mml:mtext>in</mml:mtext></mml:msubsup></mml:mrow></mml:math></inline-formula> is the given emission rate and <inline-formula><mml:math id="M104" display="inline"><mml:mrow><mml:msubsup><mml:mi>c</mml:mi><mml:mi>j</mml:mi><mml:mtext>out</mml:mtext></mml:msubsup></mml:mrow></mml:math></inline-formula> the given deposition rate constant. The reaction rate is calculated by

                <disp-formula id="Ch1.E3" content-type="numbered"><label>3</label><mml:math id="M105" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>r</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mo>,</mml:mo><mml:mi>T</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mo>)</mml:mo><mml:mo>⋅</mml:mo><mml:munderover><mml:mo movablelimits="false">∏</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:msubsup><mml:mi>c</mml:mi><mml:mi>j</mml:mi><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mi mathvariant="normal">e</mml:mi></mml:msubsup></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="1em"/><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          The rate constants <inline-formula><mml:math id="M106" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> may depend on temperature and other parameters like insolation (introducing a time dependency), or third body collisions (concentration dependency). The temperature plays a major role in combustion, and a respective equation is included in the calculations, as described later. While rate constants with non-temperature dependencies are implemented and can be used, they are not treated as non-autonomous parts of the system in the numerical procedure, beside being evaluated whenever needed. This is a common approximation and assumes not too rapid changes (e.g., a constant solar zenith angle, which is a good approximation for typical time steps below a few minutes, or third body collisions, that depend on species that are basically passive).</p>
      <p id="d2e2322">The right-hand side of Eq. (<xref ref-type="disp-formula" rid="Ch1.E3"/>) represents the law of mass action. In general, several other concentrations influence the production rate of each species, therefore the ODE system is highly coupled.</p>
      <p id="d2e2327">Because Cminor is capable of simulating gas phase combustion mechanisms, the initial value problem needs closure through energy conservation. A perfectly adiabatic constant-volume reactor is considered, as this condition is the one usually occurring when incorporating the solution of detailed chemistry into multidimensional computational fluid dynamics (CFD) codes, where the species and internal energy source terms for each cell are computed as part of a sub-cycling strategy for the whole code <xref ref-type="bibr" rid="bib1.bibx22" id="paren.13"/>. In particular, the internal energy source term gives a change in the average reactor temperature

                <disp-formula id="Ch1.E4" content-type="numbered"><label>4</label><mml:math id="M107" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>c</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mo>,</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="italic">ρ</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:msub><mml:mi>U</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo><mml:mo mathsize="1.1em">[</mml:mo><mml:msub><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>r</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mo>,</mml:mo><mml:mi>T</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:msubsup><mml:mi>c</mml:mi><mml:mi>j</mml:mi><mml:mtext>emis</mml:mtext></mml:msubsup><mml:mo mathsize="1.1em">]</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          containing the temperature dependent polynomial fitting function <inline-formula><mml:math id="M108" display="inline"><mml:mrow><mml:msub><mml:mi>U</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> describing the molar internal energy values of species <inline-formula><mml:math id="M109" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> <xref ref-type="bibr" rid="bib1.bibx14 bib1.bibx22" id="paren.14"/>, the mass-averaged specific heat at constant volume  <inline-formula><mml:math id="M110" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>c</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mo>,</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msubsup><mml:mo>∑</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mo>(</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>∂</mml:mo><mml:msub><mml:mi>U</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, and the average system density <inline-formula><mml:math id="M111" display="inline"><mml:mi mathvariant="italic">ρ</mml:mi></mml:math></inline-formula>.</p>
</sec>
<sec id="Ch1.S3.SS2">
  <label>3.2</label><title>Mass transfer between phases</title>
      <p id="d2e2583">The gaseous-aqueous mass transfer in multi-phase systems has to be defined by a pseudo first-order equilibrium reaction <inline-formula><mml:math id="M112" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="normal">g</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msub><mml:mo>⇌</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="normal">a</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, where subscript g denotes the concentration of species <inline-formula><mml:math id="M113" display="inline"><mml:mi>A</mml:mi></mml:math></inline-formula> in the gas phase and subscript a the concentration of <inline-formula><mml:math id="M114" display="inline"><mml:mi>A</mml:mi></mml:math></inline-formula> in the aqueous phase, respectively. The forward and backward rate coefficients are calculated using the accommodation coefficient <inline-formula><mml:math id="M115" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>, the gas phase diffusion constant <inline-formula><mml:math id="M116" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">g</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, and Henry's law constant. The correct syntax for species names is denoted in the Supplement, Sect. S3.3.</p>
      <p id="d2e2646">With Henry's law coefficient <inline-formula><mml:math id="M117" display="inline"><mml:mrow><mml:mi>A</mml:mi><mml:mo>:=</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mi mathvariant="normal">H</mml:mi><mml:mi mathvariant="normal">⊝</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> in [<inline-formula><mml:math id="M118" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">mol</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">L</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">atm</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>] and <inline-formula><mml:math id="M119" display="inline"><mml:mrow><mml:mi>B</mml:mi><mml:mo>:</mml:mo><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mo>△</mml:mo><mml:mtext>soln</mml:mtext></mml:msub><mml:mi>H</mml:mi><mml:mo>/</mml:mo><mml:mi>R</mml:mi></mml:mrow></mml:math></inline-formula> in [<inline-formula><mml:math id="M120" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">K</mml:mi></mml:mrow></mml:math></inline-formula>], where <inline-formula><mml:math id="M121" display="inline"><mml:mrow><mml:msub><mml:mo>△</mml:mo><mml:mtext>soln</mml:mtext></mml:msub><mml:mi>H</mml:mi><mml:mo>=</mml:mo></mml:mrow></mml:math></inline-formula> molar enthalpy of dissolution in [<inline-formula><mml:math id="M122" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">J</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">mol</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>] and <inline-formula><mml:math id="M123" display="inline"><mml:mi>R</mml:mi></mml:math></inline-formula> is the gas constant. Then, Henry's law constant <inline-formula><mml:math id="M124" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">H</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is computed using the temperature-dependent equation

                <disp-formula id="Ch1.E5" content-type="numbered"><label>5</label><mml:math id="M125" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">H</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mo>⋅</mml:mo><mml:mi>exp⁡</mml:mi><mml:mfenced open="[" close="]"><mml:mrow><mml:mi>B</mml:mi><mml:mo>⋅</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mo>-</mml:mo><mml:msubsup><mml:mi>T</mml:mi><mml:mtext>ref</mml:mtext><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M126" display="inline"><mml:mi>A</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M127" display="inline"><mml:mi>B</mml:mi></mml:math></inline-formula> are the parameter given in the third line of the reaction structure (Table <xref ref-type="table" rid="T1"/>), <inline-formula><mml:math id="M128" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> is the actual temperature, and <inline-formula><mml:math id="M129" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mtext>ref</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">298.15</mml:mn></mml:mrow></mml:math></inline-formula> K is a reference temperature. The droplet wet radius <inline-formula><mml:math id="M130" display="inline"><mml:mi>r</mml:mi></mml:math></inline-formula> is then used to calculate the mass transfer coefficient according to <xref ref-type="bibr" rid="bib1.bibx29" id="text.15"/>,

                <disp-formula id="Ch1.E6" content-type="numbered"><label>6</label><mml:math id="M131" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>k</mml:mi><mml:mtext>mt</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mtext>diff</mml:mtext></mml:msub><mml:mo>⋅</mml:mo><mml:msup><mml:mi>r</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mtext>acc</mml:mtext></mml:msub><mml:mo>⋅</mml:mo><mml:mi>r</mml:mi></mml:mrow></mml:mfenced><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          with <inline-formula><mml:math id="M132" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mtext>diff</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>/</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">3</mml:mn><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">g</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M133" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">g</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the gas phase diffusion coefficient, and <inline-formula><mml:math id="M134" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mtext>acc</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">4</mml:mn><mml:mo>/</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">3</mml:mn><mml:mover accent="true"><mml:mi mathvariant="italic">α</mml:mi><mml:mo mathvariant="normal" stretchy="true">^</mml:mo></mml:mover><mml:mi>v</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M135" display="inline"><mml:mover accent="true"><mml:mi mathvariant="italic">α</mml:mi><mml:mo mathvariant="normal" stretchy="true">^</mml:mo></mml:mover></mml:math></inline-formula> is the mass accommodation coefficient, <inline-formula><mml:math id="M136" display="inline"><mml:mrow><mml:mi>v</mml:mi><mml:mo>=</mml:mo><mml:msqrt><mml:mrow><mml:mn mathvariant="normal">8</mml:mn><mml:mi>R</mml:mi><mml:mi>T</mml:mi><mml:mo>/</mml:mo><mml:mo>(</mml:mo><mml:mi mathvariant="italic">π</mml:mi><mml:msub><mml:mi>m</mml:mi><mml:mtext>mol</mml:mtext></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:msqrt></mml:mrow></mml:math></inline-formula> is the mean molecular speed, and <inline-formula><mml:math id="M137" display="inline"><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mtext>mol</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> the molar mass of the gas. The reaction rates for gas uptake by droplets is

                <disp-formula id="Ch1.E7" content-type="numbered"><label>7</label><mml:math id="M138" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mtext>d</mml:mtext><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="normal">a</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mo fence="true" mathsize="1.5em">|</mml:mo><mml:mstyle scriptlevel="+1"><mml:mtext>gas uptake</mml:mtext></mml:mstyle></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mtext>d</mml:mtext><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="normal">g</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mo fence="true" mathsize="1.5em">|</mml:mo><mml:mstyle scriptlevel="+1"><mml:mtext>gas uptake</mml:mtext></mml:mstyle></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">mt</mml:mi></mml:msub><mml:mspace width="0.33em" linebreak="nobreak"/><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mtext>LWC</mml:mtext><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mspace width="0.33em" linebreak="nobreak"/><mml:mo>[</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="normal">g</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msub><mml:mo>]</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          and

            <disp-formula id="Ch1.E8" content-type="numbered"><label>8</label><mml:math id="M139" display="block"><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mtext>d</mml:mtext><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="normal">g</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mo fence="true" mathsize="1.5em">|</mml:mo><mml:mstyle scriptlevel="+1"><mml:mtext>gas escape</mml:mtext></mml:mstyle></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mtext>d</mml:mtext><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="normal">a</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mo fence="true" mathsize="1.5em">|</mml:mo><mml:mstyle scriptlevel="+1"><mml:mtext>gas escape</mml:mtext></mml:mstyle></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">mt</mml:mi></mml:msub><mml:mspace width="0.33em" linebreak="nobreak"/><mml:mo>[</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="normal">a</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msub><mml:mo>]</mml:mo><mml:mo>/</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">H</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo><mml:mspace width="0.33em" linebreak="nobreak"/><mml:msub><mml:mi>R</mml:mi><mml:mtext>atm</mml:mtext></mml:msub><mml:mspace width="0.33em" linebreak="nobreak"/><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          for the escape of gas from droplets, with <inline-formula><mml:math id="M140" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mtext>atm</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.0820574</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M141" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">L</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">atm</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">mol</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">K</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>. The division by <inline-formula><mml:math id="M142" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> converts the LWC from [<inline-formula><mml:math id="M143" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">kg</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">m</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>] to [<inline-formula><mml:math id="M144" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">m</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msup><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">m</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>], ensuring unit independent rates. The underscore <inline-formula><mml:math id="M145" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> indicates that if there are multiple droplet classes, only the water volume of a single droplet class is determining the uptake of gases by this class.</p>
</sec>
<sec id="Ch1.S3.SS3">
  <label>3.3</label><title>Adiabatic parcel setup and condensational growth</title>
      <p id="d2e3384">In terms of the liquid water mixing ratio of droplet class <inline-formula><mml:math id="M146" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M147" display="inline"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mrow><mml:mi mathvariant="normal">l</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, the equation for condensational growth of water mass reads

                <disp-formula id="Ch1.E9" content-type="numbered"><label>9</label><mml:math id="M148" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mtext>d</mml:mtext><mml:msub><mml:mi>q</mml:mi><mml:mrow><mml:mi mathvariant="normal">l</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mn mathvariant="normal">4</mml:mn><mml:mi mathvariant="italic">π</mml:mi><mml:msubsup><mml:mi>r</mml:mi><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi>S</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mtext>eq</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mtext>eq</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mi mathvariant="italic">β</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mi mathvariant="italic">α</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M149" display="inline"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is the radius of the droplets of this class and <inline-formula><mml:math id="M150" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> the corresponding number mixing ratio of droplets.

                <disp-formula id="Ch1.Ex2"><mml:math id="M151" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi>S</mml:mi><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>

          is the ambient relative humidity with <inline-formula><mml:math id="M152" display="inline"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M153" display="inline"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> being current and saturation vapor mixing ratio, respectively.

                <disp-formula id="Ch1.E10" content-type="numbered"><label>10</label><mml:math id="M154" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mtext>eq</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mrow><mml:mi mathvariant="normal">w</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mrow><mml:mi mathvariant="normal">w</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mrow><mml:mi mathvariant="normal">s</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mspace linebreak="nobreak" width="0.33em"/><mml:mi>exp⁡</mml:mi><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">σ</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mi>T</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced></mml:mrow></mml:math></disp-formula>

          is the value of the Köhler curve for the particles' current radius, where <inline-formula><mml:math id="M155" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mrow><mml:mi mathvariant="normal">w</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M156" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mrow><mml:mi mathvariant="normal">s</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> are the concentrations of liquid water and dissolved species in moles, respectively, <inline-formula><mml:math id="M157" display="inline"><mml:mi mathvariant="italic">σ</mml:mi></mml:math></inline-formula> is the surface tension between liquid water and air, and <inline-formula><mml:math id="M158" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the gas constant of water vapor.

                <disp-formula id="Ch1.E11" content-type="numbered"><label>11</label><mml:math id="M159" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>F</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mi>T</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mi>T</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:mfenced><mml:mspace linebreak="nobreak" width="1em"/><mml:mtext>and</mml:mtext><mml:mspace width="1em" linebreak="nobreak"/><mml:msub><mml:mi>F</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:msub><mml:mi>e</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>

          are variables accounting for latent heat release and diffusion of vapor <xref ref-type="bibr" rid="bib1.bibx18" id="paren.16"/>. Lastly,

                <disp-formula id="Ch1.E12" content-type="numbered"><label>12</label><mml:math id="M160" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>r</mml:mi><mml:mi mathvariant="italic">β</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>T</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi mathvariant="normal">O</mml:mi></mml:mrow></mml:msub><mml:mi>p</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">π</mml:mi><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msub><mml:mi>T</mml:mi><mml:msup><mml:mo>)</mml:mo><mml:mfrac><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:msup></mml:mrow><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">va</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:mfrac></mml:mstyle><mml:mspace linebreak="nobreak" width="1em"/><mml:mtext>and</mml:mtext><mml:mspace linebreak="nobreak" width="1em"/><mml:msub><mml:mi>r</mml:mi><mml:mi mathvariant="italic">α</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">π</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mi>T</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mfrac><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:msup><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi mathvariant="normal">O</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>

          are physical relaxation parameters <xref ref-type="bibr" rid="bib1.bibx4" id="paren.17"/>. To follow current common nomenclature, we changed the names from the original reference, because they refer to what is now called “accommodation coefficient“ as “condensation coefficient“. We kept the letter <inline-formula><mml:math id="M161" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula> referring to what is now usually called the accommodation coefficient, as for the gases in Sect. <xref ref-type="sec" rid="Ch1.S3.SS2"/>. By recommendations in <xref ref-type="bibr" rid="bib1.bibx23" id="text.18"/> and <xref ref-type="bibr" rid="bib1.bibx4" id="text.19"/>, we set <inline-formula><mml:math id="M162" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi mathvariant="normal">O</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1.0</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M163" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi mathvariant="normal">O</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.0415</mml:mn></mml:mrow></mml:math></inline-formula>. These values can be changed to the user's preferences without recompilation, as described in the Supplement, Sect. S9.4.</p>
      <p id="d2e4060">We have to include a few other equations to account for an adiabatically rising parcel. The water vapor mixing ratio <inline-formula><mml:math id="M164" display="inline"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is only affected by condensation and evaporation, i.e., the change in liquid water mixing ratio <inline-formula><mml:math id="M165" display="inline"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">l</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, such that

                <disp-formula id="Ch1.Ex3"><mml:math id="M166" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mtext>d</mml:mtext><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mtext>d</mml:mtext><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">l</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>

          with

                <disp-formula id="Ch1.Ex4"><mml:math id="M167" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">l</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">D</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:msub><mml:mi>q</mml:mi><mml:mrow><mml:mi mathvariant="normal">l</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M168" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">D</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the number of droplet classes. A user-specified updraft velocity

                <disp-formula id="Ch1.Ex5"><mml:math id="M169" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mi>w</mml:mi></mml:mrow></mml:math></disp-formula>

          determines the rate of pressure change, where we assume instantaneous adjustment of the parcel's pressure to the ambient conditions. From the ideal gas law,

                <disp-formula id="Ch1.E13" content-type="numbered"><label>13</label><mml:math id="M170" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msub><mml:mi>T</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M171" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the mass density of the air in the parcel and <inline-formula><mml:math id="M172" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> the specific gas constant of dry air. Differentiation in time gives

                <disp-formula id="Ch1.E14" content-type="numbered"><label>14</label><mml:math id="M173" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mtext>d</mml:mtext><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msub><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msub><mml:mi>T</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msub><mml:msup><mml:mi>T</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          Here, <inline-formula><mml:math id="M174" display="inline"><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>T</mml:mi><mml:mo>/</mml:mo><mml:mtext>d</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:math></inline-formula> considers the expanding parcel (dry adiabatic lapse rate) and latent heat release following Eq. (<xref ref-type="disp-formula" rid="Ch1.E9"/>), such that

                <disp-formula id="Ch1.E15" content-type="numbered"><label>15</label><mml:math id="M175" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>g</mml:mi><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">pa</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">pa</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mtext>d</mml:mtext><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">l</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
</sec>
</sec>
<sec id="Ch1.S4">
  <label>4</label><title>Numerical Integration</title>
      <p id="d2e4443">The variety of time constants inherent to most sets of kinetic equations has long been recognized as a barrier to their efficient integration by traditional methods, as stability requirements dictate an integration step size limited by the smallest time constant. From the numerical point of view, atmospheric chemistry is challenging due to the coexistence of very stable (e.g., CH<sub>4</sub>) and very reactive (e.g., O(<sup>1</sup>D)) species. Mathematically speaking, this phenomenon is better known as <italic>stiffness</italic>. Therefore, a major task is the integration of stiff systems of ODEs in reasonable time <xref ref-type="bibr" rid="bib1.bibx27 bib1.bibx28" id="paren.20"/>. Since we are dealing with extremely stiff ODE systems, the solution usually relies on robust solvers.</p>
      <p id="d2e4470">For this purpose, Rosenbrock methods are employed <xref ref-type="bibr" rid="bib1.bibx6" id="paren.21"/>. Cminor's implementation allows the user to change the method coefficients via Fortran NAMELIST in order to find the most effective integration scheme for each specific reaction mechanism. A variety of Rosenbrock methods (i.e., sets of coefficients) to choose of comes with the Cminor code already, but the implementation allows the user to easily incorporate different methods or additional solvers.</p>
      <p id="d2e4476">The novelty in this section lies in the compilation of all of the numerical efforts in one consistent formulation of the Rosenbrock method and describing the system in terms of linear algebra operations. Cminor provides a framework for efficient simulation of pure gas-phase mechanisms, multi-phase mechanisms, polydisperse droplets and aerosol, the droplet condensation equation including chemical effects, the temperature equation for combustion (<xref ref-type="bibr" rid="bib1.bibx35 bib1.bibx36 bib1.bibx22" id="altparen.22"/>), along with a fast mechanism parser, common as well as more complicated rate constants, and the possibility of quick simulations of different scenarios.</p>
<sec id="Ch1.S4.SS1">
  <label>4.1</label><title>Rosenbrock methods</title>
      <p id="d2e4489">This section will give a brief introduction to Rosenbrock methods in order to clarify the notation. The starting point is the autonomous initial value problem

                <disp-formula id="Ch1.E16" content-type="numbered"><label>16</label><mml:math id="M178" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mover accent="true"><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mi mathvariant="bold-italic">f</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mo>)</mml:mo><mml:mo>,</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:mi>t</mml:mi><mml:mo>&gt;</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:msup><mml:mo>)</mml:mo><mml:mi>T</mml:mi></mml:msup><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          This assumption does not restrict the problem for non-autonomous systems <inline-formula><mml:math id="M179" display="inline"><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mi>f</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, because it can easily be transformed by treating the time variable <inline-formula><mml:math id="M180" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula> as dependent, such that  <inline-formula><mml:math id="M181" display="inline"><mml:mrow><mml:mover accent="true"><mml:mi>t</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>. The ODE system contains only first order derivatives d<inline-formula><mml:math id="M182" display="inline"><mml:mrow><mml:mi>y</mml:mi><mml:mo>/</mml:mo></mml:mrow></mml:math></inline-formula>d<inline-formula><mml:math id="M183" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula>, which are usually non-linear functions <inline-formula><mml:math id="M184" display="inline"><mml:mi>f</mml:mi></mml:math></inline-formula> of concentration. Most stiff solvers benefit from using implicit formulations such as Rosenbrock methods which arise from diagonal-implicit Runge-Kutta (DIRK) methods. The simplest scheme of this kind is the backward Euler method

                <disp-formula id="Ch1.E17" content-type="numbered"><label>17</label><mml:math id="M185" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mi>h</mml:mi><mml:mi>f</mml:mi><mml:mfenced open="[" close="]"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M186" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula> is the step size and <inline-formula><mml:math id="M187" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> the current state vector. To avoid implicit systems and iterative solvers, Eq. (<xref ref-type="disp-formula" rid="Ch1.E17"/>) can be linearized, leading to

                <disp-formula id="Ch1.E18" content-type="numbered"><label>18</label><mml:math id="M188" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mi>h</mml:mi><mml:mi>f</mml:mi><mml:mfenced close="]" open="["><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:mi>h</mml:mi><mml:mfenced open="[" close="]"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:msup><mml:mi>f</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mfenced open="[" close="]"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          This is commonly referred to as a linear-implicit method. It can be seen as restricting the iterative solver to one step of Newton's method, see <xref ref-type="bibr" rid="bib1.bibx6" id="text.23"/> for elaborate derivations. To achieve a higher order of consistency, <xref ref-type="bibr" rid="bib1.bibx24" id="text.24"/> proposed to generalize this linearly implicit approach to methods using more stages. The general form of a non-autonomous <inline-formula><mml:math id="M189" display="inline"><mml:mi>s</mml:mi></mml:math></inline-formula>-stage Rosenbrock method produces a next step solution as

            <disp-formula id="Ch1.E19" content-type="numbered"><label>19</label><mml:math id="M190" display="block"><mml:mtable class="aligned" columnspacing="1em" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msubsup><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>s</mml:mi></mml:msubsup><mml:msub><mml:mi>b</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msup><mml:mi mathvariant="bold-italic">k</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mtext>with</mml:mtext></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mspace width="1em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="bold-italic">k</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mi>h</mml:mi><mml:mi>f</mml:mi><mml:mfenced close="]" open="["><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mi>h</mml:mi><mml:mspace linebreak="nobreak" width="0.33em"/><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="0.33em"/><mml:msub><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msubsup><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mi mathvariant="bold-italic">k</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msup><mml:mi>h</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:msub><mml:mi>f</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mfenced close="]" open="["><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:mi>h</mml:mi><mml:mi>J</mml:mi><mml:mfenced close="]" open="["><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mo>⋅</mml:mo><mml:msubsup><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>i</mml:mi></mml:msubsup><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mi mathvariant="bold-italic">k</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          where the coefficients <inline-formula><mml:math id="M191" display="inline"><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M192" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M193" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> define the particular method, and are chosen such that a certain accuracy and stability is granted <xref ref-type="bibr" rid="bib1.bibx40" id="paren.25"/>. <inline-formula><mml:math id="M194" display="inline"><mml:mi>J</mml:mi></mml:math></inline-formula> refers to the Jacobian of the system. For linear-implicit methods the method coefficients have the additional feature that <inline-formula><mml:math id="M195" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> for all <inline-formula><mml:math id="M196" display="inline"><mml:mrow><mml:mi>j</mml:mi><mml:mo>≥</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M197" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> for all <inline-formula><mml:math id="M198" display="inline"><mml:mrow><mml:mi>j</mml:mi><mml:mo>≥</mml:mo><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>, and

                <disp-formula id="Ch1.E20" content-type="numbered"><label>20</label><mml:math id="M199" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:munderover><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mspace width="2em" linebreak="nobreak"/><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>i</mml:mi></mml:munderover><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          The partial derivative <inline-formula><mml:math id="M200" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>t</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in Eq. (<xref ref-type="disp-formula" rid="Ch1.E19"/>) is equal to zero for autonomous systems. Reducing the computation cost is crucial for large systems because each time step requires not only <inline-formula><mml:math id="M201" display="inline"><mml:mrow><mml:mi>s</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> matrix-vector products, but also <inline-formula><mml:math id="M202" display="inline"><mml:mi>s</mml:mi></mml:math></inline-formula> matrix decompositions. It is therefore advantageous to choose the same diagonal elements for <inline-formula><mml:math id="M203" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="italic">γ</mml:mi></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M204" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi></mml:mrow></mml:math></inline-formula>. Thus, only one decomposition is needed per time step. In order to avoid the matrix-vector products on the right-hand side of Eq. (<xref ref-type="disp-formula" rid="Ch1.E19"/>), the stage vectors <inline-formula><mml:math id="M205" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">k</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> are substituted by <inline-formula><mml:math id="M206" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msubsup><mml:mo>∑</mml:mo><mml:mi>j</mml:mi><mml:mi>i</mml:mi></mml:msubsup><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mi mathvariant="bold-italic">k</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> for <inline-formula><mml:math id="M207" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi></mml:mrow></mml:math></inline-formula> <xref ref-type="bibr" rid="bib1.bibx6" id="paren.26"><named-content content-type="pre">see</named-content></xref>. The modified Rosenbrock method with <inline-formula><mml:math id="M208" display="inline"><mml:mi>s</mml:mi></mml:math></inline-formula> internal stages is then given by

            <disp-formula id="Ch1.E21" content-type="numbered"><label>21</label><mml:math id="M209" display="block"><mml:mrow><mml:mtable class="aligned" columnspacing="1em" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msubsup><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>s</mml:mi></mml:msubsup><mml:msub><mml:mi>m</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:msup><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mtext>with</mml:mtext><mml:mspace linebreak="nobreak" width="1em"/></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>(</mml:mo><mml:mi mathvariant="bold">I</mml:mi><mml:mo>-</mml:mo><mml:mi>h</mml:mi><mml:mi mathvariant="italic">γ</mml:mi><mml:mi>J</mml:mi><mml:mo>)</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mi>h</mml:mi><mml:mi>f</mml:mi><mml:mo mathsize="1.5em">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mi>h</mml:mi><mml:mspace linebreak="nobreak" width="0.33em"/><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="0.33em"/><mml:msub><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msubsup><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo mathsize="1.5em">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msup><mml:mi>h</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:msub><mml:mi>f</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo mathsize="1.5em">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo mathsize="1.5em">)</mml:mo><mml:mo>+</mml:mo><mml:msubsup><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="1em"/><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M210" display="inline"><mml:mi mathvariant="bold">I</mml:mi></mml:math></inline-formula> is the identity matrix, and <inline-formula><mml:math id="M211" display="inline"><mml:mrow><mml:mi mathvariant="normal">Γ</mml:mi><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M212" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:msup><mml:mi mathvariant="normal">Γ</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M213" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mtext>diag</mml:mtext><mml:mo>(</mml:mo><mml:msubsup><mml:mi mathvariant="italic">γ</mml:mi><mml:mn mathvariant="normal">11</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msubsup><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow><mml:mi>s</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:msup><mml:mi mathvariant="normal">Γ</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M214" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>m</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:msup><mml:mi mathvariant="normal">Γ</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M215" display="inline"><mml:mi mathvariant="italic">γ</mml:mi></mml:math></inline-formula> the method parameters.</p>
</sec>
<sec id="Ch1.S4.SS2">
  <label>4.2</label><title>Adaptive step size control</title>
      <p id="d2e5854">Usually, the purpose of adaptive step size control is to achieve some predetermined accuracy in the solution with minimum computational effort. The use of Rosenbrock methods allows us to calculate the local error of the current state vector <inline-formula><mml:math id="M216" display="inline"><mml:mi mathvariant="bold-italic">y</mml:mi></mml:math></inline-formula>. This task can be carried out by computing a second state vector <inline-formula><mml:math id="M217" display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mo stretchy="true" mathvariant="normal">^</mml:mo></mml:mover></mml:math></inline-formula>, which is given by an embedded formula where the order of the embedded method <inline-formula><mml:math id="M218" display="inline"><mml:mover accent="true"><mml:mi>p</mml:mi><mml:mo stretchy="true" mathvariant="normal">^</mml:mo></mml:mover></mml:math></inline-formula> is usually lower than order <inline-formula><mml:math id="M219" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula> of the actual formula (<inline-formula><mml:math id="M220" display="inline"><mml:mrow><mml:mover accent="true"><mml:mi>p</mml:mi><mml:mo mathvariant="normal" stretchy="true">^</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mi>p</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>). The step size control is implemented by estimating the local error <inline-formula><mml:math id="M221" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>e</mml:mi><mml:mo mathvariant="normal" stretchy="true">^</mml:mo></mml:mover><mml:mi>j</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo stretchy="true" mathvariant="normal">^</mml:mo></mml:mover><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, and is then scaled by the denominator <inline-formula><mml:math id="M222" display="inline"><mml:mrow><mml:msub><mml:mtext>scal</mml:mtext><mml:mi>j</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mtext>tol</mml:mtext><mml:mi>j</mml:mi><mml:mi mathvariant="normal">A</mml:mi></mml:msubsup><mml:mo>+</mml:mo><mml:mo>max⁡</mml:mo><mml:mo mathvariant="italic" mathsize="1.1em">{</mml:mo><mml:mo>|</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>|</mml:mo><mml:mo>,</mml:mo><mml:mo>|</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo stretchy="true" mathvariant="normal">^</mml:mo></mml:mover><mml:mi>j</mml:mi></mml:msub><mml:mo mathsize="1.1em">|</mml:mo><mml:mo mathvariant="italic">}</mml:mo><mml:mo>⋅</mml:mo><mml:msup><mml:mtext>tol</mml:mtext><mml:mi mathvariant="normal">R</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M223" display="inline"><mml:mrow><mml:msubsup><mml:mtext>tol</mml:mtext><mml:mi>j</mml:mi><mml:mi mathvariant="normal">A</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> is the absolute and <inline-formula><mml:math id="M224" display="inline"><mml:mrow><mml:msup><mml:mtext>tol</mml:mtext><mml:mi mathvariant="normal">R</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> the relative tolerance given by the user. Note that <inline-formula><mml:math id="M225" display="inline"><mml:mrow><mml:msubsup><mml:mtext>tol</mml:mtext><mml:mi>j</mml:mi><mml:mi mathvariant="normal">A</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> can be set for each species separately, where <inline-formula><mml:math id="M226" display="inline"><mml:mrow><mml:msup><mml:mtext>tol</mml:mtext><mml:mi mathvariant="normal">R</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> is equal for all species. Cminor's implementation allows to specify two different absolute tolerances, for gaseous and aqueous species. The actual measurement of the error induced by the Rosenbrock method is computed either via the maximum norm or Euclidean norm, denoted by <inline-formula><mml:math id="M227" display="inline"><mml:mrow><mml:mo>∥</mml:mo><mml:mo>⋅</mml:mo><mml:mo>∥</mml:mo></mml:mrow></mml:math></inline-formula>. The new step size is then calculated by the following expression:

                <disp-formula id="Ch1.E22" content-type="numbered"><label>22</label><mml:math id="M228" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msup><mml:mi>h</mml:mi><mml:mtext>new</mml:mtext></mml:msup><mml:mo>=</mml:mo><mml:mfenced close="" open="{"><mml:mtable class="array" rowspacing="0.2ex 6pt 0.2ex" columnalign="left"><mml:mtr><mml:mtd><mml:mrow><mml:mo>max⁡</mml:mo><mml:mo mathvariant="italic" mathsize="1.5em">{</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mo>min⁡</mml:mo></mml:msub><mml:mspace width="0.33em" linebreak="nobreak"/><mml:mo>,</mml:mo><mml:mspace width="0.33em" linebreak="nobreak"/><mml:msup><mml:mi>h</mml:mi><mml:mtext>old</mml:mtext></mml:msup><mml:mspace width="0.33em" linebreak="nobreak"/><mml:mo>max⁡</mml:mo><mml:mo mathsize="1.1em" mathvariant="italic">{</mml:mo><mml:mn mathvariant="normal">0.1</mml:mn><mml:mo>,</mml:mo><mml:mspace width="0.33em" linebreak="nobreak"/><mml:mn mathvariant="normal">0.8</mml:mn><mml:mspace linebreak="nobreak" width="0.33em"/><mml:mo>∥</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo stretchy="true" mathvariant="normal">^</mml:mo></mml:mover><mml:msup><mml:mo>∥</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mi mathvariant="italic">δ</mml:mi></mml:mrow></mml:msup><mml:mo mathsize="1.1em" mathvariant="italic">}</mml:mo><mml:mo mathsize="1.5em" mathvariant="italic">}</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mspace width="1em" linebreak="nobreak"/><mml:mtext> if </mml:mtext><mml:mo>∥</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo mathvariant="normal" stretchy="true">^</mml:mo></mml:mover><mml:mo>∥</mml:mo><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>min⁡</mml:mo><mml:mo mathsize="1.5em" mathvariant="italic">{</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mo>max⁡</mml:mo></mml:msub><mml:mspace width="0.33em" linebreak="nobreak"/><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="0.33em"/><mml:mn mathvariant="normal">0.8</mml:mn><mml:mspace width="0.33em" linebreak="nobreak"/><mml:msup><mml:mi>h</mml:mi><mml:mtext>old</mml:mtext></mml:msup><mml:mspace width="0.33em" linebreak="nobreak"/><mml:mo>∥</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo stretchy="true" mathvariant="normal">^</mml:mo></mml:mover><mml:msup><mml:mo>∥</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mi mathvariant="italic">δ</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="0.33em"/><mml:mn mathvariant="normal">2</mml:mn><mml:mspace linebreak="nobreak" width="0.33em"/><mml:msub><mml:mi>h</mml:mi><mml:mtext>old</mml:mtext></mml:msub><mml:mo mathsize="1.5em" mathvariant="italic">}</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mspace width="1em" linebreak="nobreak"/><mml:mtext> otherwise. </mml:mtext></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:math></disp-formula>

          The exponent <inline-formula><mml:math id="M229" display="inline"><mml:mi mathvariant="italic">δ</mml:mi></mml:math></inline-formula> is defined as <inline-formula><mml:math id="M230" display="inline"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>/</mml:mo><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. A new step size <inline-formula><mml:math id="M231" display="inline"><mml:mrow><mml:msup><mml:mi>h</mml:mi><mml:mtext>new</mml:mtext></mml:msup></mml:mrow></mml:math></inline-formula> is estimated that will yield an error of <inline-formula><mml:math id="M232" display="inline"><mml:mrow><mml:msup><mml:mtext>tol</mml:mtext><mml:mi mathvariant="normal">R</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> on the next step or the next try at taking this step, as the case may be. The step size is multiplied by <inline-formula><mml:math id="M233" display="inline"><mml:mn mathvariant="normal">0.8</mml:mn></mml:math></inline-formula> to avoid failures. In addition, the step size <inline-formula><mml:math id="M234" display="inline"><mml:mrow><mml:msup><mml:mi>h</mml:mi><mml:mtext>new</mml:mtext></mml:msup></mml:mrow></mml:math></inline-formula> is bounded by user-given values for a minimal and a maximal step size, <inline-formula><mml:math id="M235" display="inline"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mo>min⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M236" display="inline"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula>, respectively.</p>
</sec>
<sec id="Ch1.S4.SS3">
  <label>4.3</label><title>Analytical Jacobian matrix formulation</title>
      <p id="d2e6320">The initial value problem is described by Eqs. (<xref ref-type="disp-formula" rid="Ch1.E2"/>) and (<xref ref-type="disp-formula" rid="Ch1.E4"/>), where the dimension of the ODE system is <inline-formula><mml:math id="M237" display="inline"><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>, with <inline-formula><mml:math id="M238" display="inline"><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mo>∈</mml:mo><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> and  <inline-formula><mml:math id="M239" display="inline"><mml:mrow><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mo>∈</mml:mo><mml:mi mathvariant="double-struck">R</mml:mi></mml:mrow></mml:math></inline-formula>. The ODE system can then be represented in a very short manner as matrix-vector products,

            <disp-formula id="Ch1.E23" content-type="numbered"><label>23</label><mml:math id="M240" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mi>y</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mi>f</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mo>,</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mfenced close=")" open="("><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>=</mml:mo><mml:mfenced open="(" close=")"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mi>T</mml:mi></mml:msup><mml:mi>r</mml:mi><mml:mo>+</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mtext>emis</mml:mtext></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>c</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mi mathvariant="italic">ρ</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle><mml:msup><mml:mi>U</mml:mi><mml:mi>T</mml:mi></mml:msup><mml:mo mathsize="1.1em">[</mml:mo><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mi>T</mml:mi></mml:msup><mml:mi>r</mml:mi><mml:mo>+</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mtext>emis</mml:mtext></mml:msup><mml:mo mathsize="1.1em">]</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace width="1em" linebreak="nobreak"/><mml:mi>y</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:msubsup><mml:mi>c</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">0</mml:mn></mml:msubsup><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msubsup><mml:mi>c</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:mrow><mml:mn mathvariant="normal">0</mml:mn></mml:msubsup><mml:mo>,</mml:mo><mml:msup><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msup><mml:msup><mml:mo>)</mml:mo><mml:mi>T</mml:mi></mml:msup><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          The use of Rosenbrock methods Eq. (<xref ref-type="disp-formula" rid="Ch1.E21"/>) requires the calculation of the Jacobian matrix of the ODE system Eq. (<xref ref-type="disp-formula" rid="Ch1.E23"/>),

            <disp-formula id="Ch1.E24" content-type="numbered"><label>24</label><mml:math id="M241" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left" rowlines="none" columnlines="none"><mml:mtr><mml:mtd><mml:mrow><mml:mi>J</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>f</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mo>,</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mo>,</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="array" columnalign="center center center center" rowlines="none none solid" columnlines="none none solid"><mml:mtr><mml:mtd><mml:mi mathvariant="normal">⋱</mml:mi></mml:mtd><mml:mtd/><mml:mtd><mml:mi mathvariant="normal">⋰</mml:mi></mml:mtd><mml:mtd><mml:mi mathvariant="normal">⋮</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>c</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mi mathvariant="normal">l</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle></mml:mtd><mml:mtd/><mml:mtd><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>c</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mi mathvariant="normal">l</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi mathvariant="normal">⋰</mml:mi></mml:mtd><mml:mtd/><mml:mtd><mml:mi mathvariant="normal">⋱</mml:mi></mml:mtd><mml:mtd><mml:mrow><mml:mspace linebreak="nobreak" width="0.33em"/><mml:mi mathvariant="normal">⋮</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi mathvariant="normal">⋯</mml:mi></mml:mtd><mml:mtd><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle></mml:mtd><mml:mtd><mml:mi mathvariant="normal">⋯</mml:mi></mml:mtd><mml:mtd><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub><mml:mspace linebreak="nobreak" width="1em"/><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          where the first block <inline-formula><mml:math id="M242" display="inline"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>c</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mi mathvariant="normal">l</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is a square sparse matrix of dimension <inline-formula><mml:math id="M243" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> containing the derivatives of the change of <inline-formula><mml:math id="M244" display="inline"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">l</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> with respect to <inline-formula><mml:math id="M245" display="inline"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. The simplification of this part of the Jacobian matrix is related to the assumption that <inline-formula><mml:math id="M246" display="inline"><mml:mrow><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mi>k</mml:mi><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> in Eq. (<xref ref-type="disp-formula" rid="Ch1.E3"/>) depends only on temperature and not on other variables, e.g., time, pressure, or concentrations of catalytic species. This simplification is justified by the assumed slow change of these parameters, such that

            <disp-formula id="Ch1.E25" content-type="numbered"><label>25</label><mml:math id="M247" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>J</mml:mi><mml:mi mathvariant="normal">cc</mml:mi></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mtext>d</mml:mtext><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">l</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:mo mathsize="1.5em">[</mml:mo><mml:msub><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msub><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo mathsize="1.5em">]</mml:mo><mml:mo>=</mml:mo><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mi>T</mml:mi></mml:msup><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msup><mml:msubsup><mml:mi>D</mml:mi><mml:mi mathvariant="normal">c</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          where <inline-formula><mml:math id="M248" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mtext>diag</mml:mtext><mml:mo>(</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M249" display="inline"><mml:mrow><mml:msubsup><mml:mi>D</mml:mi><mml:mi mathvariant="normal">c</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mtext>diag</mml:mtext><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>/</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>/</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> are diagonal matrices containing the reactions rates and the inverse concentrations, respectively. The second block <inline-formula><mml:math id="M250" display="inline"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>c</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mi mathvariant="normal">l</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:math></inline-formula> consists of a full column vector and represents the derivatives of change in <inline-formula><mml:math id="M251" display="inline"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">l</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> with respect to <inline-formula><mml:math id="M252" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula>. These are expressed as

            <disp-formula id="Ch1.E26" content-type="numbered"><label>26</label><mml:math id="M253" display="block"><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>J</mml:mi><mml:mrow><mml:mi mathvariant="normal">c</mml:mi><mml:mi>T</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mtext>d</mml:mtext><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">l</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:mo mathsize="1.5em">[</mml:mo><mml:msub><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msub><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo mathsize="1.5em">]</mml:mo><mml:mo>=</mml:mo><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mi>T</mml:mi></mml:msup><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub><mml:mtext mathvariant="bold">K</mml:mtext><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          where <inline-formula><mml:math id="M254" display="inline"><mml:mrow><mml:msub><mml:mtext mathvariant="bold">K</mml:mtext><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>∂</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi>T</mml:mi><mml:mo>⋅</mml:mo><mml:msubsup><mml:mi>k</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula> contains the derivatives of the <inline-formula><mml:math id="M255" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula>th rate constants with respect to <inline-formula><mml:math id="M256" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula>, multiplied by the inverse rate constant of reaction <inline-formula><mml:math id="M257" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula>. As mentioned before, <inline-formula><mml:math id="M258" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is assumed to be only temperature-dependent. The third part of the Jacobian matrix <inline-formula><mml:math id="M259" display="inline"><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is a full row vector and contains the derivatives of change in <inline-formula><mml:math id="M260" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> with respect to <inline-formula><mml:math id="M261" display="inline"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. It is expressed as

            <disp-formula id="Ch1.E27" content-type="numbered"><label>27</label><mml:math id="M262" display="block"><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>J</mml:mi><mml:mrow><mml:mi>T</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>c</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mi mathvariant="italic">ρ</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo mathsize="1.5em">[</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">v</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mo>+</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:msub><mml:mi>U</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>c</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo mathsize="1.5em">]</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>c</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mi mathvariant="italic">ρ</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo mathsize="1.5em">[</mml:mo><mml:msub><mml:mtext mathvariant="bold">C</mml:mtext><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mo>+</mml:mo><mml:msup><mml:mi>U</mml:mi><mml:mi>T</mml:mi></mml:msup><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mi>T</mml:mi></mml:msup><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msup><mml:msubsup><mml:mi>D</mml:mi><mml:mi mathvariant="normal">c</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo mathsize="1.5em">]</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          where <inline-formula><mml:math id="M263" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">v</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>∂</mml:mo><mml:msub><mml:mi>U</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:math></inline-formula> is the constant volume specific heat of the <inline-formula><mml:math id="M264" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula>th species. The first item in the Jacobian matrix, i.e., the entry in position <inline-formula><mml:math id="M265" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, is the derivative of the average mixture temperature change rate with respect to the system temperature itself,

            <disp-formula id="Ch1.E28" content-type="numbered"><label>28</label><mml:math id="M266" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>J</mml:mi><mml:mrow><mml:mi>T</mml:mi><mml:mi>T</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mo>=</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>c</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mi mathvariant="italic">ρ</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo mathsize="1.5em" mathvariant="italic">{</mml:mo><mml:mi mathvariant="italic">ρ</mml:mi><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>c</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi mathvariant="normal">v</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:mo mathsize="1.5em">[</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">v</mml:mi><mml:mo>,</mml:mo><mml:mi>l</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mover accent="true"><mml:mi>c</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mi>l</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>U</mml:mi><mml:mi>l</mml:mi></mml:msub><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>c</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo mathsize="1.5em">]</mml:mo><mml:mo mathvariant="italic" mathsize="1.5em">}</mml:mo><mml:mo>=</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>c</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mi mathvariant="italic">ρ</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close="]" open="["><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>c</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi mathvariant="normal">v</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:msub><mml:mtext mathvariant="bold">C</mml:mtext><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mover accent="true"><mml:mi>c</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mo>+</mml:mo><mml:msup><mml:mi>U</mml:mi><mml:mi>T</mml:mi></mml:msup><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mi>T</mml:mi></mml:msup><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub><mml:mtext mathvariant="bold">K</mml:mtext></mml:mrow></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
</sec>
<sec id="Ch1.S4.SS4">
  <label>4.4</label><title>Integration scheme for box-model chemistry</title>
      <p id="d2e7936">In this section, the resulting numerical method using the classical linear algebra formulation is shown. The ODE system Eq. (<xref ref-type="disp-formula" rid="Ch1.E23"/>) is assumed to be  autonomous. Substituting the values of <inline-formula><mml:math id="M267" display="inline"><mml:mi>J</mml:mi></mml:math></inline-formula>, Eq. (<xref ref-type="disp-formula" rid="Ch1.E24"/>), into the Rosenbrock method Eq. (<xref ref-type="disp-formula" rid="Ch1.E21"/>) yields the classic linear algebra formulation for computing a new state vector. Note that the partial derivative <inline-formula><mml:math id="M268" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>t</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, see Sect. <xref ref-type="sec" rid="Ch1.S4.SS1"/>, will be dropped. Also, still, for box-model atmospheric chemistry systems, the equation for <inline-formula><mml:math id="M269" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> will be dropped. Consequently, for atmospheric systems, no dependencies of the rate constants <inline-formula><mml:math id="M270" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are considered in the numerical procedure, i.e., the system is assumed to be fully autonomous from the numerical point of view. Still, rate constants of photolytic reactions are updated during integration, according to current time and the specified location, i.e., zenith angle of the sun. Accordingly, this gives

            <disp-formula id="Ch1.E29" content-type="numbered"><label>29</label><mml:math id="M271" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>s</mml:mi></mml:munderover><mml:msub><mml:mi>m</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo><mml:mtext>with</mml:mtext></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mfenced close="]" open="["><mml:mtable class="array" columnalign="center center"><mml:mtr><mml:mtd><mml:mrow><mml:mi>I</mml:mi><mml:mo>-</mml:mo><mml:mi>h</mml:mi><mml:mi mathvariant="italic">γ</mml:mi><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mi>T</mml:mi></mml:msup><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msup><mml:msubsup><mml:mi>D</mml:mi><mml:mi mathvariant="normal">c</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mi>h</mml:mi><mml:mi mathvariant="italic">γ</mml:mi><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mi>T</mml:mi></mml:msup><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub><mml:mtext mathvariant="bold">K</mml:mtext></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi>h</mml:mi><mml:mi mathvariant="italic">γ</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>c</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mi mathvariant="italic">ρ</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle><mml:mo mathsize="1.1em">(</mml:mo><mml:msub><mml:mtext mathvariant="bold">C</mml:mtext><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mo>+</mml:mo><mml:msup><mml:mi>U</mml:mi><mml:mi>T</mml:mi></mml:msup><mml:msub><mml:mi>J</mml:mi><mml:mi mathvariant="normal">cc</mml:mi></mml:msub><mml:mo mathsize="1.1em">)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi>h</mml:mi><mml:mi mathvariant="italic">γ</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>c</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mi mathvariant="italic">ρ</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle><mml:mo mathsize="1.1em">(</mml:mo><mml:mi mathvariant="italic">ρ</mml:mi><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>c</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi mathvariant="normal">v</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mo>+</mml:mo><mml:msub><mml:mtext mathvariant="bold">C</mml:mtext><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mover accent="true"><mml:mi>c</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mo>+</mml:mo><mml:msup><mml:mi>U</mml:mi><mml:mi>T</mml:mi></mml:msup><mml:msub><mml:mi>J</mml:mi><mml:mrow><mml:mi mathvariant="normal">c</mml:mi><mml:mi>T</mml:mi></mml:mrow></mml:msub><mml:mo mathsize="1.1em">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>=</mml:mo><mml:mi>h</mml:mi><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mi>T</mml:mi></mml:msup><mml:msup><mml:mi>r</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mtext>emis</mml:mtext></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:msubsup><mml:mover accent="true"><mml:mi>c</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi mathvariant="normal">v</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mi mathvariant="italic">ρ</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle><mml:mo>(</mml:mo><mml:msup><mml:mi>U</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:msup><mml:mo>)</mml:mo><mml:mi>T</mml:mi></mml:msup><mml:mo mathsize="1.1em">(</mml:mo><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mi>T</mml:mi></mml:msup><mml:msup><mml:mi>r</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mtext>emis</mml:mtext></mml:msup><mml:mo mathsize="1.1em">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:munderover><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover><mml:mrow><mml:mo>(</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          The values of both diagonal matrices <inline-formula><mml:math id="M272" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M273" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are calculated at the beginning of each time step (i.e., at <inline-formula><mml:math id="M274" display="inline"><mml:mrow><mml:msup><mml:mi>y</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>n</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>), meaning that they do not form intermediates. In contrast, the reaction rates <inline-formula><mml:math id="M275" display="inline"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, the mass-averaged specific heat at constant volume <inline-formula><mml:math id="M276" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>c</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mrow><mml:mi mathvariant="normal">v</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and the internal energy values <inline-formula><mml:math id="M277" display="inline"><mml:mrow><mml:msubsup><mml:mi>U</mml:mi><mml:mi>i</mml:mi><mml:mi>T</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> on the right-hand-side form the intermediate solution for each stage 

                <disp-formula specific-use="align"><mml:math id="M278" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msup><mml:mi>r</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:msup><mml:mi>r</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mi>h</mml:mi><mml:mspace linebreak="nobreak" width="0.33em"/><mml:mo>,</mml:mo><mml:mspace width="0.33em" linebreak="nobreak"/><mml:msub><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:munderover><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msubsup><mml:mover accent="true"><mml:mi>c</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi mathvariant="normal">v</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mover accent="true"><mml:mi>c</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi mathvariant="normal">v</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:munderover><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msup><mml:mi>U</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mi>U</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mfenced close=")" open="("><mml:mrow><mml:mi>T</mml:mi><mml:mo>+</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:munderover><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          Note that the value for <inline-formula><mml:math id="M279" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> is located in the last entry in the state vector <inline-formula><mml:math id="M280" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>n</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, see Eq. (<xref ref-type="disp-formula" rid="Ch1.E23"/>).</p>
</sec>
<sec id="Ch1.S4.SS5">
  <label>4.5</label><title>Direct sparse linear solver</title>
      <p id="d2e8897">In this work, direct linear solvers are considered to calculate the solution of the linear systems in the integration procedure. For reasons of simplicity, the linear systems are denoted as <inline-formula><mml:math id="M281" display="inline"><mml:mrow><mml:mi mathvariant="bold">A</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>=</mml:mo><mml:mi mathvariant="bold-italic">b</mml:mi></mml:mrow></mml:math></inline-formula> in this section. A direct solver strategy requires the factorization of the coefficient matrix <inline-formula><mml:math id="M282" display="inline"><mml:mi mathvariant="bold">A</mml:mi></mml:math></inline-formula> into a lower and an upper triangular matrix <inline-formula><mml:math id="M283" display="inline"><mml:mi mathvariant="bold">L</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M284" display="inline"><mml:mi mathvariant="bold">U</mml:mi></mml:math></inline-formula>, where <inline-formula><mml:math id="M285" display="inline"><mml:mrow><mml:mi mathvariant="bold">A</mml:mi><mml:mo>=</mml:mo><mml:mi mathvariant="bold">L</mml:mi><mml:mo>⋅</mml:mo><mml:mi mathvariant="bold">U</mml:mi></mml:mrow></mml:math></inline-formula>. The implemented sparse solver consists of three parts, (i) the symbolic phase, where the actual factor matrix <inline-formula><mml:math id="M286" display="inline"><mml:mrow><mml:mi mathvariant="bold">LU</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold">A</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is built and stored as separate sparse matrix as it has the same structure (i.e., non-zero pattern) in every time step, (ii) the numerical factorization within the Rosenbrock method, and (iii) a solution phase for the triangular systems. While factorizing sparse matrices, generally fill-in occurs and the factors of <inline-formula><mml:math id="M287" display="inline"><mml:mrow><mml:mi mathvariant="bold">LU</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold">A</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> become more dense than the original matrix <inline-formula><mml:math id="M288" display="inline"><mml:mi mathvariant="bold">A</mml:mi></mml:math></inline-formula>. However, to take advantage of the sparseness of the coefficient matrix <inline-formula><mml:math id="M289" display="inline"><mml:mi mathvariant="bold">A</mml:mi></mml:math></inline-formula>, the equations must be arranged in special order. To find a good ordering for the sparse matrix <inline-formula><mml:math id="M290" display="inline"><mml:mi mathvariant="bold">A</mml:mi></mml:math></inline-formula>, we have to determine a permutation <inline-formula><mml:math id="M291" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> that minimizes the fill-in in the factors <inline-formula><mml:math id="M292" display="inline"><mml:mi mathvariant="bold">L</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M293" display="inline"><mml:mi mathvariant="bold">U</mml:mi></mml:math></inline-formula>. Since the problem of finding a permutation <inline-formula><mml:math id="M294" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> that minimizes the amount of fill-in can be reduced to an NP-complete task <xref ref-type="bibr" rid="bib1.bibx37" id="paren.27"/>, finding the optimal solution becomes computationally infeasible for larger systems due to the exponential growth of required computational resources. Yet, Cminor uses the minimum-degree ordering heuristic proposed by <xref ref-type="bibr" rid="bib1.bibx19" id="text.28"/> in a symmetric manner, meaning the pivot always lies on the diagonal to preserve existing stability. Thus, if rows <inline-formula><mml:math id="M295" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M296" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> are swapped, then columns <inline-formula><mml:math id="M297" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M298" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> are swapped as well. The (symbolic) elimination process is denoted in Algorithm <xref ref-type="other" rid="Ch1.Prog1"/>. <inline-formula><mml:math id="M299" display="inline"><mml:mi mathvariant="bold">A</mml:mi></mml:math></inline-formula> is assumed to be unsymmetric and regular, which does generally not ensure that a solution exists. Nevertheless, numerical pivoting is not implemented in this approach. The numerical phase (ii) takes place once at each time step within the Rosenbrock method. By using the <xref ref-type="bibr" rid="bib1.bibx19" id="text.29"/> strategy, the growth of the number of non-zero elements is roughly bounded by the factor 2. </p><boxed-text content-type="algorithm" position="float" id="Ch1.Prog1"><label>Algorithm 1</label><caption><p id="d2e9079">Gaussian Elimination with a Minimum-Degree heuristic: Minimizing fill-in by selecting pivots with the smallest row-column non-zero product, guided by a restriction vector <italic>Restr</italic> to prioritize certain species for permutation to the final rows and columns.</p></caption><disp-quote content-type="algorithmic" specific-use="numbering{1}"><list>

    <list-item>

      <p id="d2e9089" specific-use="STATE"><bold>procedure</bold> Eliminate_MD(<inline-formula><mml:math id="M300" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>)</p>
            </list-item>

    <list-item>

      <p id="d2e9108" specific-use="FOR"><bold>for</bold> <inline-formula><mml:math id="M301" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>:</mml:mo></mml:mrow></mml:math></inline-formula> dim<inline-formula><mml:math id="M302" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>)</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> <bold>do</bold> <list>
    <list-item>
      <p id="d2e9152" specific-use="STATE"># count non-zero elements of every row and column in sub-matrix <inline-formula><mml:math id="M303" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></p></list-item>
    <list-item>
      <p id="d2e9167" specific-use="STATE"># choose pivot element: <inline-formula><mml:math id="M304" display="inline"><mml:mrow><mml:msub><mml:mi>j</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>min⁡</mml:mo><mml:mo mathvariant="italic">{</mml:mo><mml:mo>[</mml:mo></mml:mrow></mml:math></inline-formula>row<inline-formula><mml:math id="M305" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>]</mml:mo><mml:mo>⋅</mml:mo><mml:mo>[</mml:mo></mml:mrow></mml:math></inline-formula>col<inline-formula><mml:math id="M306" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>]</mml:mo><mml:mo mathvariant="italic">}</mml:mo></mml:mrow></mml:math></inline-formula> for <inline-formula><mml:math id="M307" display="inline"><mml:mrow><mml:mfenced open="{" close=""><mml:mtable class="array" columnalign="left left"><mml:mtr><mml:mtd><mml:mrow><mml:mi>k</mml:mi><mml:mo>≥</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi><mml:mo>∉</mml:mo><mml:mtext>Restr</mml:mtext></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>if </mml:mtext><mml:mo>∃</mml:mo><mml:mi>k</mml:mi><mml:mo>≥</mml:mo><mml:mi>i</mml:mi><mml:mo>:</mml:mo><mml:mi>k</mml:mi><mml:mo>∉</mml:mo><mml:mtext>Restr</mml:mtext></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi>k</mml:mi><mml:mo>≥</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mtext>else</mml:mtext></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:math></inline-formula></p></list-item>
    <list-item>
      <p id="d2e9289" specific-use="STATE"># swap row and column <inline-formula><mml:math id="M308" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>↔</mml:mo><mml:msub><mml:mi>j</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></p></list-item>
    <list-item>
      <p id="d2e9308" specific-use="STATE"># elimination of column <inline-formula><mml:math id="M309" display="inline"><mml:mrow><mml:msub><mml:mi>j</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in sub-matrix <inline-formula><mml:math id="M310" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></p></list-item></list></p>
            </list-item>

    <list-item>

      <p id="d2e9335" specific-use="ENDFOR"><bold>end</bold> <bold>for</bold></p>
            </list-item>

    <list-item>

      <p id="d2e9345" specific-use="STATE"><bold>end procedure</bold></p>
            </list-item>
          </list></disp-quote></boxed-text>
</sec>
<sec id="Ch1.S4.SS6">
  <label>4.6</label><title>Vectorized LU decomposition</title>
      <p id="d2e9359">For multi-phase systems in a box-model, droplets of the same size will behave equally as long as the initial concentrations are equal in each droplet. If this is not the case, as is for specifying log-normally distributed aerosol, each aqueous species has to be considered once for each droplet class. A droplet class refers to a number of droplets of equal size and chemical composition. This corresponds to the concept of superdroplets commonly used in cloud microphysics <xref ref-type="bibr" rid="bib1.bibx31 bib1.bibx9" id="paren.30"/>.</p>
      <p id="d2e9365">When considering multiple droplet classes, the number of equations in atmospheric systems grows from

                <disp-formula id="Ch1.Ex9"><mml:math id="M311" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>n</mml:mi><mml:mtext>Gas</mml:mtext></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mtext>Henry</mml:mtext></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mtext>Aq</mml:mtext></mml:msub><mml:mspace width="1em" linebreak="nobreak"/><mml:mtext> to </mml:mtext><mml:mspace width="1em" linebreak="nobreak"/><mml:msub><mml:mi>n</mml:mi><mml:mtext>Gas</mml:mtext></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mtext>Henry</mml:mtext></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>D</mml:mi></mml:msub><mml:mo>⋅</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mtext>Aq</mml:mtext></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M312" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mtext>Gas</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> is the number of purely gaseous species, i.e., not dissolving, <inline-formula><mml:math id="M313" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mtext>Henry</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> the number of gaseous species that may dissolve in droplets, <inline-formula><mml:math id="M314" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mtext>Aq</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> the number of aqueous species in the mechanism and <inline-formula><mml:math id="M315" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">D</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> the number of droplet classes. This is a significant increase for mechanisms with a prominent aqueous phase. For instance, a number of 50 droplet classes is common in super-droplet models. Since the equations for each droplet class are equal in structure, as the same reactions occur in every droplet class, the matrix <inline-formula><mml:math id="M316" display="inline"><mml:mi mathvariant="bold">A</mml:mi></mml:math></inline-formula> has a specific, repeating pattern. Examples are shown in Fig. <xref ref-type="fig" rid="F3"/>, displaying the sparsity pattern of the iteration matrix of a sulfur oxidation mechanism in clouds for one (a) and five droplet classes (b, c). The repeating pattern, in turn, can be represented by considering the matrix for one droplet class, with vectors representing the entries of aqueous species and mass transfer terms.</p>

      <fig id="F3" specific-use="star"><label>Figure 3</label><caption><p id="d2e9483">Sparsity patterns: iteration matrix of sulphate oxidation mechanism in clouds; one droplet class <bold>(a)</bold>, five droplet classes ordered by droplet classes <bold>(b)</bold>, five droplet classes ordered by species <bold>(c)</bold>.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/18/9039/2025/gmd-18-9039-2025-f03.png"/>

        </fig>

      <p id="d2e9502">By doing so, the (symbolic) matrix and its (symbolic) LU decomposition stay the same for any number of droplet classes. Therefore, only the solution phase (iii) changes from scalar operations to vector operations. These are fast and minimize indirect accesses to the respective arrays, which make up a major portion of the total solution process, and therefore also of the total simulation. Of course, since there are five droplet classes in this example, the matrix to be decomposed is (b) or (c), in Fig. <xref ref-type="fig" rid="F3"/>, which is just a matter of ordering.</p>
      <p id="d2e9507">In the following, we explore whether the decomposition can be determined using only (a). As shown in (c), the vector structure can be represented by arranging all entries corresponding to aqueous species into diagonal matrix blocks. If every zero entry modification (fill-in), i.e., change of a zero entry to a non-zero entry while decomposing the matrix, is part of a new diagonal matrix block, then it is possible to work with (a) to find the decomposition of (c). Consequently, when a diagonal block matrix transforms into a fully populated matrix during the decomposition process, the vector representation becomes impractical. In such iteration matrices, the vectorized decomposition approach is no longer viable. Also, any single entry appearing off-diagonal in a diagonal matrix block prevents the vector representation of the matrix as its position would have to be stored.</p>
      <p id="d2e9510">Every row in the iteration matrix corresponds to an equation of a specific species, while a column resembles the influence of a specific species on the other species. This means, every row and every column relate to one specific species. By permuting the rows and columns representing Henry species, i.e., species that are gaseous but may dissolve in droplets, to the last rows and columns, the vector structure will be preserved during decomposition. Ordered like this, the iteration matrix for multi-phase mechanisms exhibits the four regions

                <disp-formula specific-use="align"><mml:math id="M317" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mi mathvariant="bold">A</mml:mi><mml:mo>=</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mfenced open="(" close=")"><mml:mtable class="array" columnalign="center center" rowlines="solid" columnlines="solid"><mml:mtr><mml:mtd><mml:mtext>in-phase reactions</mml:mtext></mml:mtd><mml:mtd><mml:mstyle scriptlevel="+1"><mml:mtable class="substack"><mml:mtr><mml:mtd><mml:mtext mathvariant="normal">Henry species</mml:mtext></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>→</mml:mo><mml:mtext>aqueous or purely gaseous species</mml:mtext></mml:mtd></mml:mtr></mml:mtable></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle scriptlevel="+1"><mml:mtable class="substack"><mml:mtr><mml:mtd><mml:mtext mathvariant="normal">aqueous or purely gaseous species</mml:mtext></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>→</mml:mo><mml:mtext>Henry species</mml:mtext></mml:mtd></mml:mtr></mml:mtable></mml:mstyle></mml:mtd><mml:mtd><mml:mstyle scriptlevel="+1"><mml:mtable class="substack"><mml:mtr><mml:mtd><mml:mtext mathvariant="normal">Henry species</mml:mtext></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>→</mml:mo><mml:mtext>Henry species</mml:mtext></mml:mtd></mml:mtr></mml:mtable></mml:mstyle></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          where purely gaseous species means not dissolving in droplets.</p>
      <p id="d2e9590">In the following, the preservation of the vector structure by this ordering is reasoned by an induction approach. It is shown that, having a matrix which can be represented with vector entries and which is ordered in the proposed way, a new fill-in will always occur vector-wise, preserving the possibility to represent the matrix with vector entries. The following Algorithm <xref ref-type="other" rid="Ch1.Prog2"/> generates the LU decomposition of a matrix <inline-formula><mml:math id="M318" display="inline"><mml:mi mathvariant="bold">A</mml:mi></mml:math></inline-formula>.</p><boxed-text content-type="algorithm" position="float" id="Ch1.Prog2"><label>Algorithm 2</label><caption><p id="d2e9603">LU Decomposition: Generating a lower triangular and an upper triangular matrix, whose product yields <inline-formula><mml:math id="M319" display="inline"><mml:mi mathvariant="bold">A</mml:mi></mml:math></inline-formula>. The matrices <inline-formula><mml:math id="M320" display="inline"><mml:mi mathvariant="bold">L</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M321" display="inline"><mml:mi mathvariant="bold">U</mml:mi></mml:math></inline-formula> are stored in the upper and lower part of the over-written matrix <inline-formula><mml:math id="M322" display="inline"><mml:mi mathvariant="bold">A</mml:mi></mml:math></inline-formula>.</p></caption><disp-quote content-type="algorithmic" specific-use="numbering{1}"><list>

    <list-item>

      <p id="d2e9638" specific-use="FOR"><bold>for</bold> <monospace> i = 1 : n<sub>Spc</sub> </monospace> <bold>do</bold> <list>
    <list-item>
      <p id="d2e9661" specific-use="FOR"><bold>for</bold> <monospace> j = 1 : i-1 </monospace> <bold>do</bold> <list>
    <list-item>
      <p id="d2e9675" specific-use="STATE"><monospace>A[i,j] = A[i,j]/A[j,j]</monospace></p></list-item>
    <list-item>
      <p id="d2e9681" specific-use="FOR"><bold>for</bold> <monospace> k = j+1 : n<sub>Spc</sub> </monospace> <bold>do</bold> <list>
    <list-item>
      <p id="d2e9704" specific-use="STATE"><monospace>A[i,k] = A[i,k] - A[i,j]<inline-formula><mml:math id="M325" display="inline"><mml:mrow><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mo mathvariant="normal">⋅</mml:mo><mml:mspace width="0.125em" linebreak="nobreak"/></mml:mrow></mml:math></inline-formula>A[j,k]</monospace></p></list-item></list></p></list-item>
    <list-item>
      <p id="d2e9720" specific-use="ENDFOR"><bold>end</bold> <bold>for</bold></p></list-item></list></p></list-item>
    <list-item>
      <p id="d2e9729" specific-use="ENDFOR"><bold>end</bold> <bold>for</bold></p></list-item></list></p>
            </list-item>

    <list-item>

      <p id="d2e9739" specific-use="ENDFOR"><bold>end</bold> <bold>for</bold></p>
            </list-item>
          </list></disp-quote></boxed-text>
      <p id="d2e9748">It can be seen that a necessary condition for fill-in at entry <inline-formula><mml:math id="M326" display="inline"><mml:mrow><mml:mi mathvariant="bold">A</mml:mi><mml:mo>[</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> is

                <disp-formula id="Ch1.E30" content-type="numbered"><label>30</label><mml:math id="M327" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>∃</mml:mo><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi>j</mml:mi><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi>j</mml:mi><mml:mo>&lt;</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi>j</mml:mi><mml:mo>&lt;</mml:mo><mml:mi>k</mml:mi><mml:mo>:</mml:mo><mml:mi mathvariant="bold">A</mml:mi><mml:mo>[</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>]</mml:mo><mml:mo>⋅</mml:mo><mml:mi mathvariant="bold">A</mml:mi><mml:mo>[</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi><mml:mo>]</mml:mo><mml:mo>≠</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          With this necessary condition, the logical path of the following reasoning is</p>
      <p id="d2e9840">fill-in <inline-formula><mml:math id="M328" display="inline"><mml:mo>→</mml:mo></mml:math></inline-formula> Eq. (<xref ref-type="disp-formula" rid="Ch1.E30"/>) <inline-formula><mml:math id="M329" display="inline"><mml:mo>→</mml:mo></mml:math></inline-formula> appropriate fill-in (vector-wise where needed).</p>
      <p id="d2e9859">The bottom left and upper right regions of <inline-formula><mml:math id="M330" display="inline"><mml:mi mathvariant="bold">A</mml:mi></mml:math></inline-formula> can in any case be represented by vector entries as the vector representation only prevents storing zeros in the upper left region. The lower right region has scalar entries anyhow, representing gaseous reactions of dissolving species (not shown in Fig. <xref ref-type="fig" rid="F3"/>). Therefore, it is sufficient to show that if fill-in occurs for the case of <inline-formula><mml:math id="M331" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M332" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> both representing aqueous species, fill-in in the form of a diagonal matrix block follows.</p>
      <p id="d2e9885">Let <inline-formula><mml:math id="M333" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> be a triple of indices, for which <inline-formula><mml:math id="M334" display="inline"><mml:mrow><mml:mi mathvariant="bold">A</mml:mi><mml:mo>[</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>]</mml:mo><mml:mo>⋅</mml:mo><mml:mi mathvariant="bold">A</mml:mi><mml:mo>[</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi><mml:mo>]</mml:mo><mml:mo>≠</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> holds for a given matrix <inline-formula><mml:math id="M335" display="inline"><mml:mi mathvariant="bold">A</mml:mi></mml:math></inline-formula>, where the gaseous, dissolving species are permuted to the last rows and columns. If <inline-formula><mml:math id="M336" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi><mml:mo>≤</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mtext>Aq</mml:mtext></mml:msub><mml:mo>⋅</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mtext>D</mml:mtext></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mtext>Gas</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>, the entry <inline-formula><mml:math id="M337" display="inline"><mml:mrow><mml:mi mathvariant="bold">A</mml:mi><mml:mo>[</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> is in the region of either diagonal matrix entries, i.e., aqueous species, or single-value entries, i.e., purely gaseous species. As mentioned above, this is the only important case for which preservation of the vector structure of <inline-formula><mml:math id="M338" display="inline"><mml:mi mathvariant="bold">A</mml:mi></mml:math></inline-formula> needs to be shown. Any entry <inline-formula><mml:math id="M339" display="inline"><mml:mrow><mml:mi mathvariant="bold">A</mml:mi><mml:mo>[</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>]</mml:mo><mml:mo>≠</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> comes from a reaction of species <inline-formula><mml:math id="M340" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> to species <inline-formula><mml:math id="M341" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> (or an equivalent previous fill-in). Since there are no reactions between purely gaseous species and aqueous species, it follows that <inline-formula><mml:math id="M342" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M343" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> all belong to the same type of species, either purely gaseous or aqueous. It also follows that fill-in can never occur between aqueous and purely gaseous species. If they are gaseous, no vector structure has to be preserved, in this case the fill-in is irrelevant. If they are aqueous, <inline-formula><mml:math id="M344" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M345" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> can be written as

            <disp-formula id="Ch1.E31" content-type="numbered"><label>31</label><mml:math id="M346" display="block"><mml:mtable rowspacing="0.2ex" class="aligned" columnspacing="1em" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mi>i</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mrow><mml:mtext>Gas</mml:mtext><mml:mo>&lt;</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo><mml:mo>⋅</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mtext>D</mml:mtext></mml:msub><mml:mo>+</mml:mo><mml:mi>d</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi>j</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>=</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mrow><mml:mtext>Gas</mml:mtext><mml:mo>&lt;</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo><mml:mo>⋅</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mtext>D</mml:mtext></mml:msub><mml:mo>+</mml:mo><mml:mi>d</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mi>k</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mrow><mml:mtext>Gas</mml:mtext><mml:mo>&lt;</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo><mml:mo>⋅</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mtext>D</mml:mtext></mml:msub><mml:mo>+</mml:mo><mml:mi>d</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          where <inline-formula><mml:math id="M347" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mrow><mml:mtext>Gas</mml:mtext><mml:mo>&lt;</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is the number of purely gaseous species that were permuted before species <inline-formula><mml:math id="M348" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M349" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>∈</mml:mo><mml:mo mathvariant="italic">{</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mtext>Aq</mml:mtext></mml:msub><mml:mo mathvariant="italic">}</mml:mo></mml:mrow></mml:math></inline-formula> is the aqueous species number disregarding droplet classes, and <inline-formula><mml:math id="M350" display="inline"><mml:mrow><mml:mi>d</mml:mi><mml:mo>∈</mml:mo><mml:mo mathvariant="italic">{</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mtext>D</mml:mtext></mml:msub><mml:mo mathvariant="italic">}</mml:mo></mml:mrow></mml:math></inline-formula> is the droplet class in which species <inline-formula><mml:math id="M351" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> is dissolved. The analagous nomenclature is used for the variables containing <inline-formula><mml:math id="M352" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M353" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula>. Note that <inline-formula><mml:math id="M354" display="inline"><mml:mi>d</mml:mi></mml:math></inline-formula> is the same for <inline-formula><mml:math id="M355" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M356" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula>. Before fill-in, the matrix is assumed to have proper vector entries, and we re-iterate that there is no reaction from one droplet class to another. Thus, <inline-formula><mml:math id="M357" display="inline"><mml:mi>d</mml:mi></mml:math></inline-formula> is the same for <inline-formula><mml:math id="M358" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M359" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula>. Now, w.l.o.g., it is assumed that <inline-formula><mml:math id="M360" display="inline"><mml:mrow><mml:mi>d</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>. For other values of <inline-formula><mml:math id="M361" display="inline"><mml:mi>d</mml:mi></mml:math></inline-formula>, analogous calculations yield the same result. The vector structure is preserved if

            <disp-formula id="Ch1.E32" content-type="numbered"><label>32</label><mml:math id="M362" display="block"><mml:mrow><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>∀</mml:mo><mml:msub><mml:mi>l</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>l</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>∈</mml:mo><mml:mo mathvariant="italic">{</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mtext>D</mml:mtext></mml:msub><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo mathvariant="italic">}</mml:mo><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mi>l</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>≠</mml:mo><mml:msub><mml:mi>l</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mo>∀</mml:mo><mml:msup><mml:mi>j</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi>j</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>&lt;</mml:mo><mml:msup><mml:mi>i</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>:=</mml:mo><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>l</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi>j</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>&lt;</mml:mo><mml:msup><mml:mi>k</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>:=</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>l</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>:</mml:mo><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="bold">A</mml:mi><mml:mo>[</mml:mo><mml:msup><mml:mi>i</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>j</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>]</mml:mo><mml:mo>⋅</mml:mo><mml:mi mathvariant="bold">A</mml:mi><mml:mo>[</mml:mo><mml:msup><mml:mi>j</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>k</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>

          Under this condition, the entry <inline-formula><mml:math id="M363" display="inline"><mml:mrow><mml:mi mathvariant="bold">A</mml:mi><mml:mo>[</mml:mo><mml:msup><mml:mi>i</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>k</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> will not undergo fill-in, i.e., every off-diagonal entry in the submatrix

                <disp-formula id="Ch1.Ex12"><mml:math id="M364" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi mathvariant="bold">A</mml:mi><mml:mo>[</mml:mo><mml:mi>i</mml:mi><mml:mo>:</mml:mo><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mtext>D</mml:mtext></mml:msub><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>k</mml:mi><mml:mo>:</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mtext>D</mml:mtext></mml:msub><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>]</mml:mo></mml:mrow></mml:math></disp-formula>

          stays equal to zero. Then, the possible fill-in is a diagonal matrix, which is what needs to be shown. The updated representation of Eq. (<xref ref-type="disp-formula" rid="Ch1.E31"/>), which is

            <disp-formula id="Ch1.Ex13"><mml:math id="M365" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>=</mml:mo><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>l</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mrow><mml:mtext>Gas</mml:mtext><mml:mo>&lt;</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo><mml:mo>⋅</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mtext>D</mml:mtext></mml:msub><mml:mo>+</mml:mo><mml:mi>d</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>l</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mi>k</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>=</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>l</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mrow><mml:mtext>Gas</mml:mtext><mml:mo>&lt;</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo><mml:mo>⋅</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mtext>D</mml:mtext></mml:msub><mml:mo>+</mml:mo><mml:mi>d</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>l</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          helps recognizing that, since <inline-formula><mml:math id="M366" display="inline"><mml:mrow><mml:msub><mml:mi>l</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>≠</mml:mo><mml:msub><mml:mi>l</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> by Eq. (<xref ref-type="disp-formula" rid="Ch1.E32"/>), species <inline-formula><mml:math id="M367" display="inline"><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M368" display="inline"><mml:mrow><mml:msup><mml:mi>k</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> now belong to separate droplet classes, namely <inline-formula><mml:math id="M369" display="inline"><mml:mrow><mml:mi>d</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>l</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M370" display="inline"><mml:mrow><mml:mi>d</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>l</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, respectively. Since the matrix is assumed to have proper vector entries before the examined fill-in, it can only have non-zero values at entries which belong to the same droplet class. Any <inline-formula><mml:math id="M371" display="inline"><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> with <inline-formula><mml:math id="M372" display="inline"><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>&lt;</mml:mo><mml:msup><mml:mi>i</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M373" display="inline"><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>&lt;</mml:mo><mml:msup><mml:mi>k</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> may correspond to an aqueous species of a specific droplet class, where either <inline-formula><mml:math id="M374" display="inline"><mml:mrow><mml:mi mathvariant="bold">A</mml:mi><mml:mo>[</mml:mo><mml:msup><mml:mi>i</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>j</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> or <inline-formula><mml:math id="M375" display="inline"><mml:mrow><mml:mi mathvariant="bold">A</mml:mi><mml:mo>[</mml:mo><mml:msup><mml:mi>j</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>k</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> or both are equal to zero because of the aforementioned reason, or it may correspond to a purely gaseous species, where the respective matrix entries are zero, too, because purely gaseous species do not interact with the aqueous species <inline-formula><mml:math id="M376" display="inline"><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M377" display="inline"><mml:mrow><mml:msup><mml:mi>k</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>. Thus, Eq. (<xref ref-type="disp-formula" rid="Ch1.E32"/>) holds.</p>
      <p id="d2e11029">Hence, the vector structure of <inline-formula><mml:math id="M378" display="inline"><mml:mi mathvariant="bold-italic">A</mml:mi></mml:math></inline-formula>, e.g., the rightmost matrix in Fig. <xref ref-type="fig" rid="F3"/>, is preserved during decomposition for the proposed ordering, which is to permute the gaseous dissolving species to the last rows and columns. In opposition to this, if <inline-formula><mml:math id="M379" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> represents a Henry species, which is permuted between aqueous and purely gaseous ones, Eq. (<xref ref-type="disp-formula" rid="Ch1.E32"/>) is violated for <inline-formula><mml:math id="M380" display="inline"><mml:mrow><mml:msub><mml:mi>l</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M381" display="inline"><mml:mrow><mml:msub><mml:mi>l</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M382" display="inline"><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>=</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math></inline-formula>. In this case, the vector structure is not preserved.</p>
</sec>
<sec id="Ch1.S4.SS7">
  <label>4.7</label><title>Numerical treatment of parcel equations</title>
      <p id="d2e11104">For the Jacobian <inline-formula><mml:math id="M383" display="inline"><mml:mi>J</mml:mi></mml:math></inline-formula>, we need derivatives of Eqs. (<xref ref-type="disp-formula" rid="Ch1.E9"/>), (<xref ref-type="disp-formula" rid="Ch1.E14"/>), and (<xref ref-type="disp-formula" rid="Ch1.E15"/>) with respect to the rest of the variables. To minimize floating point operations, we neglect these derivatives, resulting in a sort of explicit scheme for these equations, which we assume is reasonable as they behave not as stiff as the chemical species' equations. The only exception is for the condensational equation, where we calculate the derivative with respect to the water masses, where <inline-formula><mml:math id="M384" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>∈</mml:mo><mml:mo mathvariant="italic">{</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">D</mml:mi></mml:msub><mml:mo mathvariant="italic">}</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M385" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">D</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is again the number of droplet classes. Here,

                <disp-formula specific-use="align" content-type="numbered"><mml:math id="M386" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mrow><mml:mi mathvariant="normal">l</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mtext>d</mml:mtext><mml:msub><mml:mi>q</mml:mi><mml:mrow><mml:mi mathvariant="normal">l</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mrow><mml:mi mathvariant="normal">l</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="[" close="]"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>⋅</mml:mo><mml:mo>(</mml:mo><mml:mi>S</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi mathvariant="normal">eq</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mrow><mml:mi mathvariant="normal">l</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>⋅</mml:mo><mml:mo>(</mml:mo><mml:mi>S</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi mathvariant="normal">eq</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>⋅</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mo>(</mml:mo><mml:mi>S</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mrow><mml:mi mathvariant="normal">l</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E33"><mml:mtd><mml:mtext>33</mml:mtext></mml:mtd><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>≈</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>⋅</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mo>(</mml:mo><mml:mi>S</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi mathvariant="normal">eq</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mrow><mml:mi mathvariant="normal">l</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

          Since supersaturations in liquid clouds are small, we neglect <inline-formula><mml:math id="M387" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mo>∂</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mrow><mml:mi mathvariant="normal">l</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mo>⋅</mml:mo><mml:mo>(</mml:mo><mml:mi>S</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi mathvariant="normal">eq</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M388" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> summarizes all remaining factors in Eq. (<xref ref-type="disp-formula" rid="Ch1.E9"/>). The remaining term splits up in the derivatives

                <disp-formula id="Ch1.E34" content-type="numbered"><label>34</label><mml:math id="M389" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mrow><mml:mi mathvariant="normal">l</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mtext> and </mml:mtext><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi mathvariant="normal">eq</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mrow><mml:mi mathvariant="normal">l</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          The first term is zero since <inline-formula><mml:math id="M390" display="inline"><mml:mi>S</mml:mi></mml:math></inline-formula> has no direct relation to the liquid water mixing ratio. For the second term, we omit the index indicating the droplet class because for <inline-formula><mml:math id="M391" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>≠</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math></inline-formula> the term is zero. Also, we again summarize factors to <inline-formula><mml:math id="M392" display="inline"><mml:mi>R</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M393" display="inline"><mml:mi>K</mml:mi></mml:math></inline-formula>, the Raoult and the Kelvin term, respectively. Thus,

            <disp-formula id="Ch1.E35" content-type="numbered"><label>35</label><mml:math id="M394" display="block"><mml:mtable rowspacing="0.2ex" class="aligned" columnspacing="1em" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">l</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mi>S</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">l</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>(</mml:mo><mml:mi>R</mml:mi><mml:mo>⋅</mml:mo><mml:mi>K</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">l</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="[" close="]"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">l</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">l</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>⋅</mml:mo><mml:mi>exp⁡</mml:mi><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>a</mml:mi><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:msup><mml:mi>R</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>⋅</mml:mo><mml:mi>K</mml:mi><mml:mo>+</mml:mo><mml:mi>R</mml:mi><mml:mo>⋅</mml:mo><mml:msup><mml:mi>K</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          The derivative of the Raoult term with respect to water mass is easily calculated as

                <disp-formula id="Ch1.E36" content-type="numbered"><label>36</label><mml:math id="M395" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msup><mml:mi>R</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">l</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:msup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          For the derivative of the Kelvin term, we note that the radius <inline-formula><mml:math id="M396" display="inline"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> might indicate the radius of a droplet not only consisting of water, but also soluble and insoluble material. However, assuming ideal solution behavior for droplets of a size larger than a few nanometers, the volume of a single droplet might be calculated as <inline-formula><mml:math id="M397" display="inline"><mml:mrow><mml:mi>V</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>V</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>V</mml:mi><mml:mtext>rest</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> with <inline-formula><mml:math id="M398" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">l</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub><mml:mi>n</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M399" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula> is the number of droplets (in the droplet class) per kg of air, and <inline-formula><mml:math id="M400" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mtext>rest</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> the volume of dissolved species. Doing so, we get

            <disp-formula id="Ch1.E37" content-type="numbered"><label>37</label><mml:math id="M401" display="block"><mml:mrow><mml:mtable columnspacing="1em" class="aligned" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msup><mml:mi>K</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>exp⁡</mml:mi><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mi>a</mml:mi><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>⋅</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>V</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>⋅</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>V</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">l</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:mfenced open="[" close="]"><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>a</mml:mi><mml:mrow><mml:msubsup><mml:mi>r</mml:mi><mml:mi mathvariant="normal">d</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:mfrac></mml:mstyle><mml:mi>exp⁡</mml:mi><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>a</mml:mi><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>⋅</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mn mathvariant="normal">4</mml:mn><mml:mi mathvariant="italic">π</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:msup><mml:mfenced close="]" open="["><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">4</mml:mn><mml:mi mathvariant="italic">π</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>(</mml:mo><mml:msub><mml:mi>V</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>V</mml:mi><mml:mtext>rest</mml:mtext></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mfenced><mml:mrow><mml:mo>-</mml:mo><mml:mstyle scriptlevel="+1"><mml:mfrac><mml:mn mathvariant="normal">2</mml:mn><mml:mn mathvariant="normal">3</mml:mn></mml:mfrac></mml:mstyle></mml:mrow></mml:msup><mml:mo>⋅</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub><mml:mi>n</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>a</mml:mi><mml:mrow><mml:mn mathvariant="normal">4</mml:mn><mml:mi mathvariant="italic">π</mml:mi><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub><mml:mi>n</mml:mi><mml:msubsup><mml:mi>r</mml:mi><mml:mi mathvariant="normal">d</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msubsup></mml:mrow></mml:mfrac></mml:mstyle><mml:mi>exp⁡</mml:mi><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>a</mml:mi><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula></p>
      <p id="d2e12093">The resulting classical linear algebra scheme is

            <disp-formula id="Ch1.E38" content-type="numbered"><label>38</label><mml:math id="M402" display="block"><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>s</mml:mi></mml:munderover><mml:msub><mml:mi>m</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo><mml:mtext>with</mml:mtext></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mfenced close="]" open="["><mml:mtable class="array" columnalign="center center"><mml:mtr><mml:mtd><mml:mrow><mml:mi>I</mml:mi><mml:mo>-</mml:mo><mml:mi>h</mml:mi><mml:mi mathvariant="italic">γ</mml:mi><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mi>T</mml:mi></mml:msup><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msup><mml:msubsup><mml:mi>D</mml:mi><mml:mi mathvariant="normal">c</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mn mathvariant="bold">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="bold">0</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:mi>I</mml:mi><mml:mo>-</mml:mo><mml:mi>h</mml:mi><mml:mi mathvariant="italic">γ</mml:mi><mml:msub><mml:mi>J</mml:mi><mml:mtext>parcel</mml:mtext></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mover accent="true"><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>=</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mi>h</mml:mi><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mi>T</mml:mi></mml:msup><mml:msup><mml:mi>r</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mtext>emis</mml:mtext></mml:msup><mml:mo>+</mml:mo><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mfrac><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mi mathvariant="italic">ρ</mml:mi></mml:mfrac></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mover accent="true"><mml:mi mathvariant="bold-italic">q</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mi mathvariant="normal">l</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mi>g</mml:mi><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">pa</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle><mml:mi>w</mml:mi><mml:mo>+</mml:mo><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">pa</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle><mml:msubsup><mml:mover accent="true"><mml:mi>q</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mi mathvariant="normal">l</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:msubsup><mml:mover accent="true"><mml:mi>q</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mi mathvariant="normal">l</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msub><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msub><mml:mi>T</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle><mml:mi>w</mml:mi><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msub><mml:msup><mml:mi>T</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle><mml:mfenced open="(" close=")"><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mi>g</mml:mi><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">pa</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle><mml:mi>w</mml:mi><mml:mo>+</mml:mo><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">pa</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle><mml:msubsup><mml:mover accent="true"><mml:mi>q</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mi mathvariant="normal">l</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>w</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:munderover><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mover accent="true"><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover><mml:mrow><mml:mo>(</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="2em"/><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          where <inline-formula><mml:math id="M403" display="inline"><mml:mrow><mml:msup><mml:mover accent="true"><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover><mml:mrow><mml:mo>(</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> denotes the <inline-formula><mml:math id="M404" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula>th intermediate of the transformed parcel variables,

                <disp-formula id="Ch1.E39" content-type="numbered"><label>39</label><mml:math id="M405" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msubsup><mml:mover accent="true"><mml:mi mathvariant="bold-italic">q</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mi mathvariant="normal">l</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mtext>diag</mml:mtext><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold">D</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>)</mml:mo><mml:mo>(</mml:mo><mml:msup><mml:mi>S</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>⋅</mml:mo><mml:mn mathvariant="bold">1</mml:mn><mml:mo>-</mml:mo><mml:msubsup><mml:mi mathvariant="bold">S</mml:mi><mml:mi mathvariant="normal">eq</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula>

          and

                <disp-formula id="Ch1.E40" content-type="numbered"><label>40</label><mml:math id="M406" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>J</mml:mi><mml:mtext>parcel</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:mfenced open="(" close=")"><mml:mtable class="matrix" columnalign="center center center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mtext mathvariant="bold">J</mml:mtext><mml:mrow><mml:mi>m</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mtext mathvariant="bold">J</mml:mtext><mml:mrow><mml:mi>m</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          with

            <disp-formula id="Ch1.E41" content-type="numbered"><label>41</label><mml:math id="M407" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="bold">J</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mtext>diag</mml:mtext><mml:mo>(</mml:mo><mml:mi mathvariant="bold">D</mml:mi><mml:mo>)</mml:mo><mml:mfenced open="[" close="]"><mml:mrow><mml:mtext>diag</mml:mtext><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold">R</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>)</mml:mo><mml:mi mathvariant="bold">K</mml:mi><mml:mo>+</mml:mo><mml:mtext>diag</mml:mtext><mml:mo>(</mml:mo><mml:mi mathvariant="bold">R</mml:mi><mml:mo>)</mml:mo><mml:msup><mml:mi mathvariant="bold">K</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          The bold letters indicate vectors containing values of all droplet classes. This represents an approximate Jacobian matrix. Note that the concept of vector entries of Sect. <xref ref-type="sec" rid="Ch1.S4.SS6"/> is applied here (if <inline-formula><mml:math id="M408" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">D</mml:mi></mml:msub><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>). Wherever no index to indicate the stage value is written, the value of the first stage is taken, i.e., <inline-formula><mml:math id="M409" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>, as the Jacobian is only calculated at the beginning of a time step. Again, the reaction rates <inline-formula><mml:math id="M410" display="inline"><mml:mrow><mml:msup><mml:mi>r</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> form the intermediate solution for each stage as

                <disp-formula id="Ch1.Ex16"><mml:math id="M411" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msup><mml:mi>r</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mi>r</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mi>h</mml:mi><mml:mspace linebreak="nobreak" width="0.33em"/><mml:mo>,</mml:mo><mml:mspace width="0.33em" linebreak="nobreak"/><mml:msub><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:munderover><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mover accent="true"><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
</sec>
</sec>
<sec id="Ch1.S5">
  <label>5</label><title>Evaluation and First Results</title>
      <p id="d2e13019">Cminor is evaluated by the numerical simulation of six different chemical mechanisms in a box-model setup, followed by a comparison to two other chemical solvers with a box-model gas-phase simulation, and a simulation of a rising adiabatic parcel. Five reaction mechanisms are derived from atmospheric chemistry modeling, and three mechanisms from the field of combustion chemistry, which are used in internal combustion engine CFD, autoignition and flame simulations. These simulations are meant to present the functionality of the solver. All results can be reproduced by a python script, provided in the repository <xref ref-type="bibr" rid="bib1.bibx25" id="text.31"/>. Tables <xref ref-type="table" rid="T3"/> and <xref ref-type="table" rid="T4"/> provide an overview of the conditions simulated and the references to the chemical mechanisms. All simulations are carried out on a MacBook Pro 2015 with a 2.5 GHz Quad-Core Intel Core i7 processor.</p>
      <p id="d2e13029">The first atmospheric mechanism is the Chapman mechanism <xref ref-type="bibr" rid="bib1.bibx27" id="paren.32"/>, using 7 species and 10 reactions to explain the presence of the ozone layer in earth's stratosphere. The results are shown in Fig. <xref ref-type="fig" rid="F4"/>a.</p>

<table-wrap id="T3" specific-use="star"><label>Table 3</label><caption><p id="d2e13040">Mechanism features for the four atmospheric (multi-phase) systems. For multiple droplet classes, aqueous species and reactions need to be considered once for every droplet class in the ODE system, due to different concentrations. The resulting number of species and reactions in the ODE system is shown in parenthesis, if multiple droplet classes are present.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="5">
     <oasis:colspec colnum="1" colname="col1" align="left" colsep="1"/>
     <oasis:colspec colnum="2" colname="col2" align="left" colsep="1"/>
     <oasis:colspec colnum="3" colname="col3" align="left" colsep="1"/>
     <oasis:colspec colnum="4" colname="col4" align="left" colsep="1"/>
     <oasis:colspec colnum="5" colname="col5" align="left"/>
     <oasis:thead>
       <oasis:row rowsep="1">

         <oasis:entry colname="col1">mechanism</oasis:entry>

         <oasis:entry colname="col2">Chapman</oasis:entry>

         <oasis:entry colname="col3">RACM+CAPRAMv2.4</oasis:entry>

         <oasis:entry colname="col4">MCMv3.2+CAPRAMv4.0<inline-formula><mml:math id="M412" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula></oasis:entry>

         <oasis:entry colname="col5">Sulfur Oxidation</oasis:entry>

       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row rowsep="1">

         <oasis:entry colname="col1">class</oasis:entry>

         <oasis:entry colname="col2">pure gas phase</oasis:entry>

         <oasis:entry namest="col3" nameend="col5" align="center" colsep="0">multiphase (gas, aqua) </oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry rowsep="1" colname="col1" morerows="1">scenario</oasis:entry>

         <oasis:entry colname="col2">no emissions</oasis:entry>

         <oasis:entry namest="col3" nameend="col4" align="center" colsep="1">urban conditions </oasis:entry>

         <oasis:entry colname="col5">relatively unpolluted</oasis:entry>

       </oasis:row>
       <oasis:row rowsep="1">

         <oasis:entry colname="col2">no cloud</oasis:entry>

         <oasis:entry namest="col3" nameend="col4" align="center" colsep="1">mono-disperse droplet distribution </oasis:entry>

         <oasis:entry colname="col5">50 superdroplets</oasis:entry>

       </oasis:row>
       <oasis:row rowsep="1">

         <oasis:entry colname="col1"><inline-formula><mml:math id="M413" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>

         <oasis:entry colname="col2"><inline-formula><mml:math id="M414" display="inline"><mml:mn mathvariant="normal">7</mml:mn></mml:math></inline-formula></oasis:entry>

         <oasis:entry colname="col3"><inline-formula><mml:math id="M415" display="inline"><mml:mn mathvariant="normal">250</mml:mn></mml:math></inline-formula></oasis:entry>

         <oasis:entry colname="col4"><inline-formula><mml:math id="M416" display="inline"><mml:mrow><mml:mn mathvariant="normal">10</mml:mn><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mn mathvariant="normal">196</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>

         <oasis:entry colname="col5"><inline-formula><mml:math id="M417" display="inline"><mml:mn mathvariant="normal">26</mml:mn></mml:math></inline-formula> <inline-formula><mml:math id="M418" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">906</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></oasis:entry>

       </oasis:row>
       <oasis:row rowsep="1">

         <oasis:entry colname="col1"><inline-formula><mml:math id="M419" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>

         <oasis:entry colname="col2"><inline-formula><mml:math id="M420" display="inline"><mml:mn mathvariant="normal">10</mml:mn></mml:math></inline-formula></oasis:entry>

         <oasis:entry colname="col3"><inline-formula><mml:math id="M421" display="inline"><mml:mn mathvariant="normal">787</mml:mn></mml:math></inline-formula></oasis:entry>

         <oasis:entry colname="col4"><inline-formula><mml:math id="M422" display="inline"><mml:mrow><mml:mn mathvariant="normal">23</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mn mathvariant="normal">098</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>

         <oasis:entry colname="col5"><inline-formula><mml:math id="M423" display="inline"><mml:mn mathvariant="normal">36</mml:mn></mml:math></inline-formula> <inline-formula><mml:math id="M424" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1800</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry colname="col1" morerows="1">reference</oasis:entry>

         <oasis:entry colname="col2" morerows="1">
                    <xref ref-type="bibr" rid="bib1.bibx27" id="text.33"/>
                  </oasis:entry>

         <oasis:entry colname="col3"><xref ref-type="bibr" rid="bib1.bibx32" id="text.34"/>;</oasis:entry>

         <oasis:entry colname="col4"><xref ref-type="bibr" rid="bib1.bibx11" id="text.35"/>;</oasis:entry>

         <oasis:entry colname="col5" morerows="1">
                    <xref ref-type="bibr" rid="bib1.bibx15" id="text.36"/>
                  </oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry colname="col3">
                  <xref ref-type="bibr" rid="bib1.bibx3" id="text.37"/>
                </oasis:entry>

         <oasis:entry colname="col4">
                  <xref ref-type="bibr" rid="bib1.bibx1" id="text.38"/>
                </oasis:entry>

       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

<table-wrap id="T4" specific-use="star"><label>Table 4</label><caption><p id="d2e13302">Mechanism features for the  three constant-volume reactor combustion systems.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="4">
     <oasis:colspec colnum="1" colname="col1" align="left" colsep="1"/>
     <oasis:colspec colnum="2" colname="col2" align="left" colsep="1"/>
     <oasis:colspec colnum="3" colname="col3" align="left" colsep="1"/>
     <oasis:colspec colnum="4" colname="col4" align="left"/>
     <oasis:thead>
       <oasis:row rowsep="1">

         <oasis:entry colname="col1">mechanism</oasis:entry>

         <oasis:entry colname="col2">ERC <inline-formula><mml:math id="M425" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula>-heptane</oasis:entry>

         <oasis:entry colname="col3">LLNL <inline-formula><mml:math id="M426" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula>-heptane</oasis:entry>

         <oasis:entry colname="col4">LLNL methyl-decanoate</oasis:entry>

       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row rowsep="1">

         <oasis:entry colname="col1">class</oasis:entry>

         <oasis:entry namest="col2" nameend="col4" align="center" colsep="0">gas phase combustion – constant volume reactor </oasis:entry>

       </oasis:row>
       <oasis:row rowsep="1">

         <oasis:entry colname="col1"><inline-formula><mml:math id="M427" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>

         <oasis:entry colname="col2"><inline-formula><mml:math id="M428" display="inline"><mml:mn mathvariant="normal">29</mml:mn></mml:math></inline-formula></oasis:entry>

         <oasis:entry colname="col3"><inline-formula><mml:math id="M429" display="inline"><mml:mn mathvariant="normal">160</mml:mn></mml:math></inline-formula></oasis:entry>

         <oasis:entry colname="col4"><inline-formula><mml:math id="M430" display="inline"><mml:mn mathvariant="normal">2878</mml:mn></mml:math></inline-formula></oasis:entry>

       </oasis:row>
       <oasis:row rowsep="1">

         <oasis:entry colname="col1"><inline-formula><mml:math id="M431" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>

         <oasis:entry colname="col2"><inline-formula><mml:math id="M432" display="inline"><mml:mn mathvariant="normal">104</mml:mn></mml:math></inline-formula></oasis:entry>

         <oasis:entry colname="col3"><inline-formula><mml:math id="M433" display="inline"><mml:mn mathvariant="normal">1540</mml:mn></mml:math></inline-formula></oasis:entry>

         <oasis:entry colname="col4"><inline-formula><mml:math id="M434" display="inline"><mml:mrow><mml:mn mathvariant="normal">16</mml:mn><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mn mathvariant="normal">831</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry rowsep="1" colname="col1" morerows="2">initial mixture</oasis:entry>

         <oasis:entry colname="col2">[C<sub>7</sub>H<sub>16</sub>] <inline-formula><mml:math id="M437" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 15.3846 %</oasis:entry>

         <oasis:entry colname="col3">[C<sub>7</sub>H<sub>16</sub>] = 15.3846 %</oasis:entry>

         <oasis:entry colname="col4">[C<sub>11</sub>H<sub>22</sub>O<sub>2</sub>] <inline-formula><mml:math id="M443" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 8.43882 %</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry colname="col2">[O<sub>2</sub>] <inline-formula><mml:math id="M445" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 17.7689 %</oasis:entry>

         <oasis:entry colname="col3">[O<sub>2</sub>] <inline-formula><mml:math id="M447" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 17.7689 %</oasis:entry>

         <oasis:entry colname="col4">[O<sub>2</sub>] <inline-formula><mml:math id="M449" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 19.2275 %</oasis:entry>

       </oasis:row>
       <oasis:row rowsep="1">

         <oasis:entry colname="col2">[N<sub>2</sub>] <inline-formula><mml:math id="M451" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 66.8465 %</oasis:entry>

         <oasis:entry colname="col3">[N<sub>2</sub>] <inline-formula><mml:math id="M453" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 66.8465 %</oasis:entry>

         <oasis:entry colname="col4">[N<sub>2</sub>] = 72.3337 %</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry colname="col1">reference</oasis:entry>

         <oasis:entry colname="col2">
                  <xref ref-type="bibr" rid="bib1.bibx21" id="text.39"/>
                </oasis:entry>

         <oasis:entry colname="col3">
                  <xref ref-type="bibr" rid="bib1.bibx30" id="text.40"/>
                </oasis:entry>

         <oasis:entry colname="col4">
                  <xref ref-type="bibr" rid="bib1.bibx7" id="text.41"/>
                </oasis:entry>

       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <fig id="F4" specific-use="star"><label>Figure 4</label><caption><p id="d2e13677">Numerical simulation results of three atmospheric (multi-phase) chemistry mechanisms for a one day time interval, with panel <bold>(a)</bold> presenting the Chapman, <bold>(b)</bold> the RACM+CAPRAMv2.4, and <bold>(c)</bold> the MCMv3.2+CAPRAMv4.0<inline-formula><mml:math id="M455" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula> mechanism. To visualize all species' concentrations in a single plot, the concentrations have been normalized by individual scaling factors, as indicated in the legend. The blue columns indicate the formation of cloud droplets, which is required for aqueous-phase reactions. CPU time is the total time spent for integration with a relatively strict relative error tolerance of <inline-formula><mml:math id="M456" display="inline"><mml:mrow class="unit"><mml:mn mathvariant="normal">1.0</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>.</p></caption>
        <graphic xlink:href="https://gmd.copernicus.org/articles/18/9039/2025/gmd-18-9039-2025-f04.png"/>

      </fig>

      <fig id="F5" specific-use="star"><label>Figure 5</label><caption><p id="d2e13722">Numerical simulation results of three combustion mechanisms: <bold>(a)</bold> ERC <inline-formula><mml:math id="M457" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula>-heptane, <bold>(b)</bold> LLNL <inline-formula><mml:math id="M458" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula>-heptane, and <bold>(c)</bold> LLNL methyl-decanoate. CPU time is the total time spent for integration with a relatively strict relative error tolerance of <inline-formula><mml:math id="M459" display="inline"><mml:mrow class="unit"><mml:mn mathvariant="normal">1.0</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>.</p></caption>
        <graphic xlink:href="https://gmd.copernicus.org/articles/18/9039/2025/gmd-18-9039-2025-f05.png"/>

      </fig>

      <p id="d2e13773">The second atmospheric mechanism, RACM+CAPRAMv2.4, consists of the gas phase Regional Atmospheric Chemistry Model (RACM) by <xref ref-type="bibr" rid="bib1.bibx32" id="text.42"/>, coupled with the Chemical Aqueous Phase Radical Mechanism version 2.4 (CAPRAM2.4) by <xref ref-type="bibr" rid="bib1.bibx3" id="text.43"/>. RACM is an upgrade of previously developed mechanisms for acid deposition in the troposphere, and intends to be valid for remote to polluted conditions in the whole troposphere. It is still a condensed mechanism, i.e., not a near-explicit description of all resolved processes, but it resembles thoroughly revised inorganic as well as organic chemistry. The aqueous phase mechanism CAPRAM2.4 contains inorganic, extended organic, and transition metal chemistry. Simulation results have been analyzed earlier by <xref ref-type="bibr" rid="bib1.bibx33" id="text.44"/>, including time resolved source and sink studies focusing particularly on multiphase phase processing of radical oxidants and of C2–C4 organic compounds. Results are presented in Fig. <xref ref-type="fig" rid="F4"/>b.</p>
      <p id="d2e13787">The third atmospheric mechanism, MCMv3.2+CAPRAMv4.0<inline-formula><mml:math id="M460" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>, consists of the detailed Master Chemical Mechanism version 3.2 (MCMv3.2) developed by <xref ref-type="bibr" rid="bib1.bibx11" id="text.45"/>, which is a near-explicit, pure gas phase mechanism of the troposphere. Coupled with version 4.0<inline-formula><mml:math id="M461" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula> of the Chemical Aqueous Phase Radical Mechanism (CAPRAM4.0<inline-formula><mml:math id="M462" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>) <xref ref-type="bibr" rid="bib1.bibx1" id="paren.46"/>, it represents a detailed documentation of chemical processes in the gaseous and aqueous phase of the troposphere. The Master Chemical Mechanism was developed to investigate the degradation of emitted volatile organic compounds (VOCs), which have a major influence on the chemistry of the troposphere, contributing to the formation of ozone, secondary organic aerosol (SOA), and other secondary pollutants. CAPRAM4.0<inline-formula><mml:math id="M463" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula> is the most comprehensive version of the CAPRAM mechanism and is also used to study oxidant budgets and SOA formation in the aqueous phase. Figure <xref ref-type="fig" rid="F4"/>c shows the corresponding results.</p>
      <p id="d2e13828">In homogeneous charge compression ignition engines, the mixture of fuel and oxidizer is compressed to the point of auto-ignition, creating heat to be transformed into work by the engine. Investigating and optimizing such engines requires deep understanding of the ongoing chemistry and intermediate chemical states of the fuel as well as of physical properties, especially temperature. The following three combustion mechanisms were chosen because they were used as representatives for combustion chemistry in <xref ref-type="bibr" rid="bib1.bibx22" id="text.47"/>.</p>

      <fig id="F6" specific-use="star"><label>Figure 6</label><caption><p id="d2e13836">Comparison of eight species of a simulation of the MCMv3.2 mechanism with KPP and Cminor. Black lines show simulation results of Cminor, yellow dots indicate the results of the simulation using KPP. Red dots indicate a 2 % relative difference between the results of KPP and Cminor, blue dots indicate 5 % relative difference, and cyan dots 10 % relative difference between the two models.</p></caption>
        <graphic xlink:href="https://gmd.copernicus.org/articles/18/9039/2025/gmd-18-9039-2025-f06.png"/>

      </fig>

      <p id="d2e13845">Being used as a reference fuel, <inline-formula><mml:math id="M464" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula>-heptane studies are crucial and a number of mechanisms exist to simulate ignition delay times, heat release rates, and more, some being more reduced versions and some containing more detailed descriptions of the chemical processes. Two are shown here, a strongly reduced version from the Engine Research Center (ERC) at the University of Wisconsin-Madison <xref ref-type="bibr" rid="bib1.bibx21" id="paren.48"/>, and a slightly larger mechanism developed at the Lawrence Livermore National Laboratory (LLNL) in California <xref ref-type="bibr" rid="bib1.bibx30" id="paren.49"/>. The results are shown in Fig. <xref ref-type="fig" rid="F5"/>a and b. The third combustion mechanism, also developed at LLNL <xref ref-type="bibr" rid="bib1.bibx7" id="paren.50"/>, describes the consumption of an alternative fuel, driven by methyl decanoate. Such large methyl esters are characteristic for rapeseed or soybean derived biodiesels and such fuels show different behavior, e.g., early formation of carbon dioxide, which this larger mechanism is able to reproduce. It serves as an example for state-of-the-art comprehensive combustion mechanisms and results are shown in Fig. <xref ref-type="fig" rid="F5"/>c.</p>
      <p id="d2e13869">The last two mechanisms are used to validate the correctness of the solver. The MCMv3.2 <xref ref-type="bibr" rid="bib1.bibx11" id="paren.51"/> is used to analyze Cminor’s ability to solve pure chemistry. The mechanism is simulated using Cminor and KPP with the same initial and environmental conditions, numerical methods, and tolerances. The results match, while the times to perform a simulation differ, demonstrating different usages of the two solvers. Also, KPP has been maintained and optimized over many years and creates a source code perfectly fitting one specific mechanism. Cminor has unused optimization potential in matrix-vector operations and possibly elsewhere. The simulation times are 4.55 and 3.08 s for Cminor and KPP, respectively (a factor of 1.48). This is primarily because KPP needs less computation time per numerical time step. While KPP does 1358 time steps in total, Cminor does 1394. Reading and preparing the simulation, on the other hand, takes 5 h and 52 min for KPP, and 2.2 s for Cminor. While this showcases that Cminor enables fast and flexible modification and analysis of mechanisms, sensitivites, and different scenarios, an optimization effort should be made to reach closer to KPP’s simulation times.</p>
      <p id="d2e13875">For the parcel model, we chose to reproduce the case used in the intercomparison study by <xref ref-type="bibr" rid="bib1.bibx15" id="text.52"/> and in <xref ref-type="bibr" rid="bib1.bibx10" id="text.53"/>. The sulfur oxidation mechanism deployed there describes the irreversible accumulation of sulfur in cloud droplets via oxidation pathways with hydrogen peroxide and ozone. This models the aging of aerosol, in this case the growth, by existence of the aqueous phase, i.e., a cloud. Results are shown in Fig. 7, where yellow dots indicate the results presented in <xref ref-type="bibr" rid="bib1.bibx10" id="text.54"/>. Most distinctly, Cminor predicts a cloud droplet concentration of 397 cm<sup>−3</sup>, while <xref ref-type="bibr" rid="bib1.bibx10" id="text.55"/> estimated a concentration of 269 cm<sup>−3</sup>. This difference is due to the lower water accommodation coefficient of 0.0415 used by Cminor, while  <xref ref-type="bibr" rid="bib1.bibx10" id="text.56"/> used a value of 1.0. Using a water accommodation coefficient of <inline-formula><mml:math id="M467" display="inline"><mml:mn mathvariant="normal">1.0</mml:mn></mml:math></inline-formula>, Cminor predicts a cloud droplet number concentration of <inline-formula><mml:math id="M468" display="inline"><mml:mn mathvariant="normal">338</mml:mn></mml:math></inline-formula> cm<sup>−3</sup>. All values are well within the range presented in the intercomparison study <xref ref-type="bibr" rid="bib1.bibx15" id="text.57"/>, the results of <xref ref-type="bibr" rid="bib1.bibx10" id="text.58"/> being at the lower end, while Cminor is located more in the upper region.</p>

      <fig id="F7" specific-use="star"><label>Figure 7</label><caption><p id="d2e13954">Simulated conditions in the adiabatic parcel setup <xref ref-type="bibr" rid="bib1.bibx15" id="paren.59"/>. Subplot <bold>(a)</bold> shows the evolution of the aerosol size distribution with the number concentration of activated aerosol, denoted by N, <bold>(b)</bold> the liquid water mixing ratio, <bold>(c)</bold> the SO<sub>2</sub> concentration (both gaseous and dissolved), and <bold>(d)</bold> the negative logarithm of the volumetric mean H<sup>+</sup> concentration in the droplets. Yellow dots indicate the results presented in <xref ref-type="bibr" rid="bib1.bibx10" id="text.60"/>.</p></caption>
        <graphic xlink:href="https://gmd.copernicus.org/articles/18/9039/2025/gmd-18-9039-2025-f07.png"/>

      </fig>

      <p id="d2e14000">Finally, Fig. <xref ref-type="fig" rid="F8"/> shows a collection of statistics of the mechanisms presented here. It gives a glimpse on how the computational effort and simulation times scale with the number of species and reactions, how the sparsity grows in the respective matrices, and of the robustness of the symmetric Markowitz ordering strategy <xref ref-type="bibr" rid="bib1.bibx19" id="paren.61"/>, used to prevent sparse matrices from becoming dense matrices upon decomposition. This can only be seen as an empirical demonstration since the computational effort depends heavily on aspects of the chemical mechanism and cannot be predicted in terms of species number or other simple measures. The computation time for one integration time step shows linear behavior on the log-log scale, but this cannot be used as a general estimate as there are more factors determining computation times. For total simulation time, especially the number of steps needed is important. The total simulation times can be seen in Figs. <xref ref-type="fig" rid="F4"/> and <xref ref-type="fig" rid="F5"/>.</p>

      <fig id="F8" specific-use="star"><label>Figure 8</label><caption><p id="d2e14014">Overview of some statistics of the presented mechanisms. The abscissa is the number of species, determining where the mechanism statistics are placed, to preserve any scaling behavior with the number of species (which is the number of equations in the ODE system). The ordinates do not have units, unless indicated in the legends. The bars indicate <inline-formula><mml:math id="M472" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, the number of reactions, the number of non-zeros in the iteration matrix <inline-formula><mml:math id="M473" display="inline"><mml:mrow><mml:mi mathvariant="bold">I</mml:mi><mml:mo>-</mml:mo><mml:mi>h</mml:mi><mml:mi mathvariant="italic">γ</mml:mi><mml:mi>J</mml:mi></mml:mrow></mml:math></inline-formula>, and the number of non-zero entries in the LU decomposition of the iteration matrix. The lines with circles indicate the time to prepare the mechanism, i.e., everything what has to be done before integration, namely, reading reactions and symbolic decomposition. Lines with squares show the time spent for one Rosenbrock step. Times for atmospheric and combustion mechanisms are shown separately, because the temperature equation for combustion increases the computational effort, as clearly visible in the figure. The grey line with triangles shows the decreasing density of the decomposed iteration matrix, i.e. the number of non-zero entries divided by the matrix size <inline-formula><mml:math id="M474" display="inline"><mml:mrow><mml:msubsup><mml:mi>n</mml:mi><mml:mi mathvariant="normal">S</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:math></inline-formula>.</p></caption>
        <graphic xlink:href="https://gmd.copernicus.org/articles/18/9039/2025/gmd-18-9039-2025-f08.png"/>

      </fig>

</sec>
<sec id="Ch1.S6" sec-type="conclusions">
  <label>6</label><title>Summary and Outlook</title>
      <p id="d2e14071">In this work, we presented Cminor – a highly efficient stand-alone solver environment designed to simulate chemical kinetic systems, from skeletal mechanisms to detailed descriptions of the atmosphere's chemical processes in the gaseous and aqueous phase. The optimized implementation allows for fast and accurate simulations of these chemical systems. Additionally, the lifting of an adiabatic parcel and cloud droplet formation can be simulated, which are influenced by chemical processes and vice versa. Furthermore, Cminor can solve the energy conservation equation needed for a perfectly adiabatic constant-volume reactor to investigate combustion chemistry instead of atmospheric systems.</p>
      <p id="d2e14074">The solver of Cminor uses linear-implicit Rosenbrock numerical schemes, which are well-suited for the integration of stiff systems of chemical kinetics. Moreover, Cminor’s solver is implemented in a way that is tailored to specifically consider and exploit the characteristics of ODE systems of chemical kinetics. The following list of key features illustrates the improvements of the solver. Using sparse linear algebra is essential, but also exploiting matrix block structures, the sparsity of the analytical Jacobian matrix, only considering relevant derivatives which corresponds to an approximated Jacobian matrix, efficient evaluation of the rate constants, a symbolic and droplet-wise vectorized algebra and LU decomposition, and automated adaptive step size with error control.</p>
      <p id="d2e14077">The input syntax of atmospheric mechanisms for Cminor is outlined in the text, and elaborated on in the Supplement. A collection of rate constants can be chosen of to simulate Arrhenius-type laws, photolytic reactions, third-body interactions, pressure-dependencies, humidity-dependencies, gas-aqua phase transfer, dissociation, pH-independence, and special reaction types, including custom formulas. The setup of a simulation is designed to be intuitive and only requires use of readable ASCII files to list the chemical reactions, initial values, and simulation parameters such as temperature, output frequency, and error tolerances. For combustion systems, the system description follows the widely used ChemKin syntax rules and JANAF standards.</p>
      <p id="d2e14080">Flexibility is achieved by the stand-alone nature of Cminor, which reads the mechanism and other inputs to construct the required ODE system on the fly with a high-speed mechanism parser. Chemical mechanisms, ambient conditions, and all simulation parameters can be changed and studied without recompiling, by typing a new parameter in the respective text file and re-executing the Cminor run command. Output is written in NetCDF format, or binary files for more abundant data.</p>
      <p id="d2e14084">The code is fully modularized and does not require the use of additional 3rd party software, except the output data format (NetCDF) and the basic Linear Algebra Pack (LAPack). Cminor v1.0 is open source and available under the terms of the GNU General Public License version 3.0.</p>
      <p id="d2e14087">We showed that Cminor is applicable to smaller as well as modern detailed descriptions of chemical processes in atmospheric and combustion chemistry. State-of-the-art multiphase mechanisms, e.g., the Master Chemical Mechanism version 3.2 <xref ref-type="bibr" rid="bib1.bibx11" id="paren.62"/> coupled with the Chemical Aqueous Phase RAdical Mechanism version 4.0<inline-formula><mml:math id="M475" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula> <xref ref-type="bibr" rid="bib1.bibx8" id="paren.63"/>, with more than 10 000 species and 23 000 reactions, or a methyl decanoate mechanism <xref ref-type="bibr" rid="bib1.bibx7" id="paren.64"/>, derived from bio-fuel chemistry, with nearly 3000 species and 17 000 reactions can be simulated. Also, Cminor is able to accurately reproduce previously studied effects of chemical processes on aerosol size distributions <xref ref-type="bibr" rid="bib1.bibx15" id="paren.65"/>. We found that it takes 3.08 s to simulate the Master Chemical Mechanism version 3.2 with a state-of-the-art KPP code, while Cminor required 4.55 s, which is slower by a factor of 1.48. Reading the mechanism and preparing the simulation, however, took 5 h and 52 min for KPP, and 2.2 s for Cminor. This overhead is required any time a reaction, a parameter, or an environmental variable is changed, demonstrating the flexibility and handiness of Cminor. Nonetheless, further optimization is desirable to reach closer to KPP’s simulation time, for example in Cminor's linear algebra routines.</p>
      <p id="d2e14109">Cminor's current box-model setup can be used to study sensitivites, new mechanisms, specific interactions or other detailed research interests. The workflow of Cminor also enables ensemble simulations and analysis. Moreover, Cminor can easily be coupled with three-dimensional models, enabling the integration with comprehensive modeling frameworks, such as chemical transport or physical processes of the atmosphere. The droplet condensation equation resembles an important interaction of chemical and physical processes, which is accurately modeled by Cminor.</p>
      <p id="d2e14112">In future work, we aim to couple Cminor to a large-eddy simulation (LES) model with Lagrangian cloud microphysics. The droplet classes of Cminor match the concept of superdroplets in Lagrangian cloud models, while the LES simulates the transport of chemical constituents of the atmosphere. This will enable the investigation of the interplay of atmospheric chemistry with dynamics and cloud physics on larger scales. Due to its modular structure, Cminor is easily extendable. Resolving processes including a particulate phase would be a valuable addition, as well as ionic strength effects and other peculiarities for small water contents. Adding the possibility to include particle nucleation will be subject of future work. In this way, Cminor will contribute to a more systematic understanding of the influences of atmospheric chemistry on physical, meteorological, and climatological processes.</p>
</sec>

      
      </body>
    <back><notes notes-type="codeavailability"><title>Code availability</title>

      <p id="d2e14119">The code is published on Zenodo <xref ref-type="bibr" rid="bib1.bibx25" id="paren.66"><named-content content-type="post">DOI: <ext-link xlink:href="https://doi.org/10.5281/zenodo.17186119" ext-link-type="DOI">10.5281/zenodo.17186119</ext-link></named-content></xref> and maintained on the Github repository linked there.</p>
  </notes><app-group>
        <supplementary-material position="anchor"><p id="d2e14129">The supplement related to this article is available online at <inline-supplementary-material xlink:href="https://doi.org/10.5194/gmd-18-9039-2025-supplement" xlink:title="pdf">https://doi.org/10.5194/gmd-18-9039-2025-supplement</inline-supplementary-material>.</p></supplementary-material>
        </app-group><notes notes-type="authorcontribution"><title>Author contributions</title>

      <p id="d2e14138">LR and WS developed the draft and the source code. OK and FH supervised the process and contributed to editing and improving it.</p>
  </notes><notes notes-type="competinginterests"><title>Competing interests</title>

      <p id="d2e14144">The contact author has declared that none of the authors has any competing interests.</p>
  </notes><notes notes-type="disclaimer"><title>Disclaimer</title>

      <p id="d2e14150">Publisher’s note: Copernicus Publications remains neutral with regard to jurisdictional claims made in the text, published maps, institutional affiliations, or any other geographical representation in this paper. While Copernicus Publications makes every effort to include appropriate place names, the final responsibility lies with the authors. Views expressed in the text are those of the authors and do not necessarily reflect the views of the publisher.</p>
  </notes><ack><title>Acknowledgements</title><p id="d2e14156">The authors thank Andreas Tilgner and Erik Hoffmann for their assistance in all questions related to atmospheric chemistry.</p></ack><notes notes-type="financialsupport"><title>Financial support</title>

      <p id="d2e14161">This research has been supported by the Deutsche Forschungsgemeinschaft (grant nos. HO 6588/1-1 and HO 6588/3-1) and the EU Horizon 2020 (EUROCHAMP-2020 (grant no. 730997)). The article processing charges for this open-access publication were covered by the Freie Universität Berlin.</p>
  </notes><notes notes-type="reviewstatement"><title>Review statement</title>

      <p id="d2e14173">This paper was edited by Simon Unterstrasser and reviewed by two anonymous referees.</p>
  </notes><ref-list>
    <title>References</title>

      <ref id="bib1.bibx1"><label>Bräuer(2015)</label><mixed-citation>Bräuer, P.: Extension and application of a tropospheric aqueous phase chemical mechanism (CAPRAM) for aerosol and cloud models, Ph.D. thesis, Leipzig, Univ., Diss., 2015., <uri>http://nbn-resolving.de/urn:nbn:de:bsz:15-qucosa-183743</uri> (last access: 11 November 2025), 2015.</mixed-citation></ref>
      <ref id="bib1.bibx2"><label>Christner et al.(2008)Christner, Cai, Morris, McCarter, Foreman, Skidmore, Montross, and Sands</label><mixed-citation>Christner, B. C., Cai, R., Morris, C. E., McCarter, K. S., Foreman, C. M., Skidmore, M. L., Montross, S. N., and Sands, D. C.: Geographic, seasonal, and precipitation chemistry influence on the abundance and activity of biological ice nucleators in rain and snow, Proceedings of the National Academy of Sciences, 105, 18854–18859, <ext-link xlink:href="https://doi.org/10.1073/pnas.0809816105" ext-link-type="DOI">10.1073/pnas.0809816105</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx3"><label>Ervens et al.(2003)Ervens, George, Williams, Buxton, Salmon, Bydder, Wilkinson, Dentener, Mirabel, Wolke, and Herrmann</label><mixed-citation>Ervens, B., George, C., Williams, J. E., Buxton, G. V., Salmon, G. A., Bydder, M., Wilkinson, F., Dentener, F., Mirabel, P., Wolke, R., and Herrmann, H.: CAPRAM 2.4 (MODAC mechanism): An extended and condensed tropospheric aqueous phase mechanism and its application, J. Geophys. Res., 108, 4426, <ext-link xlink:href="https://doi.org/10.1029/2002jd002202" ext-link-type="DOI">10.1029/2002jd002202</ext-link>, 2003.</mixed-citation></ref>
      <ref id="bib1.bibx4"><label>Fukuta and Walter(1970)</label><mixed-citation>Fukuta, N. and Walter, L.: Kinetics of hydrometeor growth from a vapor-spherical model, Journal of Atmospheric Sciences, 27, 1160–1172, <ext-link xlink:href="https://doi.org/10.1175/1520-0469(1970)027&lt;1160:KOHGFA&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0469(1970)027&lt;1160:KOHGFA&gt;2.0.CO;2</ext-link>, 1970.</mixed-citation></ref>
      <ref id="bib1.bibx5"><label>Goel et al.(2020)Goel, Mishra, Pal, Ahlawat, Vijayan, Jain, and Sharma</label><mixed-citation>Goel, V., Mishra, S. K., Pal, P., Ahlawat, A., Vijayan, N., Jain, S., and Sharma, C.: Influence of chemical aging on physico-chemical properties of mineral dust particles: A case study of 2016 dust storms over Delhi, Environmental Pollution, 267, 115338, <ext-link xlink:href="https://doi.org/10.1016/j.envpol.2020.115338" ext-link-type="DOI">10.1016/j.envpol.2020.115338</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx6"><label>Hairer et al.(1991)Hairer, Nørsett, and Wanner</label><mixed-citation>Hairer, E., Nørsett, S. P., and Wanner, G.: Stiff and differential algebraic problems, Springer, Berlin, ISBN 0387537759, <ext-link xlink:href="https://doi.org/10.1007/978-3-642-05221-7" ext-link-type="DOI">10.1007/978-3-642-05221-7</ext-link>, 1991.</mixed-citation></ref>
      <ref id="bib1.bibx7"><label>Herbinet et al.(2008)Herbinet, Pitz, and Westbrook</label><mixed-citation>Herbinet, O., Pitz, W. J., and Westbrook, C. K.: Detailed chemical kinetic oxidation mechanism for a biodiesel surrogate, Combustion and Flame, 154, 507–528, <ext-link xlink:href="https://doi.org/10.1016/j.combustflame.2008.03.003" ext-link-type="DOI">10.1016/j.combustflame.2008.03.003</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx8"><label>Herrmann et al.(2005)Herrmann, Tilgner, Barzaghi, Majdik, Gligorovski, Poulain, and Monod</label><mixed-citation>Herrmann, H., Tilgner, A., Barzaghi, P., Majdik, Z., Gligorovski, S., Poulain, L., and Monod, A.: Towards a more detailed description of tropospheric aqueous phase organic chemistry: CAPRAM 3.0, Atmospheric Environment, 39, 4351–4363, <ext-link xlink:href="https://doi.org/10.1016/j.atmosenv.2005.02.016" ext-link-type="DOI">10.1016/j.atmosenv.2005.02.016</ext-link>, 2005.</mixed-citation></ref>
      <ref id="bib1.bibx9"><label>Hoffmann et al.(2015)Hoffmann, Raasch, and Noh</label><mixed-citation>Hoffmann, F., Raasch, S., and Noh, Y.: Entrainment of aerosols and their activation in a shallow cumulus cloud studied with a coupled LCM–LES approach, Atmospheric Research, 156, 43–57, <ext-link xlink:href="https://doi.org/10.1016/j.atmosres.2014.12.008" ext-link-type="DOI">10.1016/j.atmosres.2014.12.008</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx10"><label>Jaruga and Pawlowska(2018)</label><mixed-citation>Jaruga, A. and Pawlowska, H.: libcloudph++ 2.0: aqueous-phase chemistry extension of the particle-based cloud microphysics scheme, Geosci. Model Dev., 11, 3623–3645, <ext-link xlink:href="https://doi.org/10.5194/gmd-11-3623-2018" ext-link-type="DOI">10.5194/gmd-11-3623-2018</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx11"><label>Jenkin et al.(2012)Jenkin, Wyche, Evans, Carr, Monks, Alfarra, Barley, McFiggans, Young, and Rickard</label><mixed-citation>Jenkin, M. E., Wyche, K. P., Evans, C. J., Carr, T., Monks, P. S., Alfarra, M. R., Barley, M. H., McFiggans, G. B., Young, J. C., and Rickard, A. R.: Development and chamber evaluation of the MCM v3.2 degradation scheme for β-caryophyllene, Atmos. Chem. Phys., 12, 5275–5308, <ext-link xlink:href="https://doi.org/10.5194/acp-12-5275-2012" ext-link-type="DOI">10.5194/acp-12-5275-2012</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx12"><label>Kazil et al.(2011)Kazil, Wang, Feingold, Clarke, Snider, and Bandy</label><mixed-citation>Kazil, J., Wang, H., Feingold, G., Clarke, A. D., Snider, J. R., and Bandy, A. R.: Modeling chemical and aerosol processes in the transition from closed to open cells during VOCALS-REx, Atmos. Chem. Phys., 11, 7491–7514, <ext-link xlink:href="https://doi.org/10.5194/acp-11-7491-2011" ext-link-type="DOI">10.5194/acp-11-7491-2011</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx13"><label>Kee et al.(1990)Kee, Rupley, and Miller</label><mixed-citation>Kee, R., Rupley, F., and Miller, J.: The Chemkin Thermodynamic Data Base, <ext-link xlink:href="https://doi.org/10.2172/7073290" ext-link-type="DOI">10.2172/7073290</ext-link>, 1990.</mixed-citation></ref>
      <ref id="bib1.bibx14"><label>Kee et al.(1996)Kee, Rupley, Meeks, and Miller</label><mixed-citation>Kee, R., Rupley, F., Meeks, E., and Miller, J.: CHEMKIN-III: A Fortran Chemical Kinetics Package for the Analysis of Gas Phase Chemical and Plasma Kinetics, Sandia National Laboratories Report, <ext-link xlink:href="https://doi.org/10.2172/481621" ext-link-type="DOI">10.2172/481621</ext-link>, 1996.</mixed-citation></ref>
      <ref id="bib1.bibx15"><label>Kreidenweis et al.(2003)Kreidenweis, Walcek, Feingold, Gong, Jacobson, Kim, Liu, Penner, Nenes, and Seinfeld</label><mixed-citation>Kreidenweis, S. M., Walcek, C. J., Feingold, G., Gong, W., Jacobson, M. Z., Kim, C.-H., Liu, X., Penner, J. E., Nenes, A., and Seinfeld, J. H.: Modification of aerosol mass and size distribution due to aqueous-phase SO2 oxidation in clouds: Comparisons of several models, Journal of Geophysical Research: Atmospheres, 108, <ext-link xlink:href="https://doi.org/10.1029/2002jd002697" ext-link-type="DOI">10.1029/2002jd002697</ext-link>, 2003.</mixed-citation></ref>
      <ref id="bib1.bibx16"><label>Kulmala et al.(2000)Kulmala, Pirjola, and Mäkelä</label><mixed-citation>Kulmala, M., Pirjola, L., and Mäkelä, J. M.: Stable sulphate clusters as a source of new atmospheric particles, Nature, 404, 66–69, <ext-link xlink:href="https://doi.org/10.1038/35003550" ext-link-type="DOI">10.1038/35003550</ext-link>, 2000.</mixed-citation></ref>
      <ref id="bib1.bibx17"><label>Kupc et al.(2020)Kupc, Williamson, Hodshire, Kazil, Ray, Bui, Dollner, Froyd, McKain, Rollins et al.</label><mixed-citation>Kupc, A., Williamson, C. J., Hodshire, A. L., Kazil, J., Ray, E., Bui, T. P., Dollner, M., Froyd, K. D., McKain, K., Rollins, A., Schill, G. P., Thames, A., Weinzierl, B. B., Pierce, J. R., and Brock, C. A.: The potential role of organics in new particle formation and initial growth in the remote tropical upper troposphere, Atmos. Chem. Phys., 20, 15037–15060, <ext-link xlink:href="https://doi.org/10.5194/acp-20-15037-2020" ext-link-type="DOI">10.5194/acp-20-15037-2020</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx18"><label>Lamb and Verlinde(2011)</label><mixed-citation>Lamb, D. and Verlinde, J.: Physics and chemistry of clouds, Cambridge University Press, <ext-link xlink:href="https://doi.org/10.1017/cbo9780511976377" ext-link-type="DOI">10.1017/cbo9780511976377</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx19"><label>Markowitz(1957)</label><mixed-citation>Markowitz, H. M.: The Elimination Form of the Inverse and Its Application to Linear Programming, Management Science, 3, 255–269, <ext-link xlink:href="https://doi.org/10.1287/mnsc.3.3.255" ext-link-type="DOI">10.1287/mnsc.3.3.255</ext-link>, 1957.</mixed-citation></ref>
      <ref id="bib1.bibx20"><label>Murphy et al.(1998)Murphy, Anderson, Quinn, McInnes, Brechtel, Kreidenweis, Middlebrook, Pósfai, Thomson, and Buseck</label><mixed-citation>Murphy, D., Anderson, J., Quinn, P., McInnes, L., Brechtel, F., Kreidenweis, S., Middlebrook, A., Pósfai, M., Thomson, D., and Buseck, P.: Influence of sea-salt on aerosol radiative properties in the Southern Ocean marine boundary layer, Nature, 392, 62–65, <ext-link xlink:href="https://doi.org/10.1038/32138" ext-link-type="DOI">10.1038/32138</ext-link>, 1998.</mixed-citation></ref>
      <ref id="bib1.bibx21"><label>Patel et al.(2004)Patel, Kong, and Reitz</label><mixed-citation>Patel, A., Kong, S.-C., and Reitz, R.: Development and validation of a reduced reaction mechanism for HCCI engine simulations, SAE Paper 2004-01-0558, 63–76, <ext-link xlink:href="https://doi.org/10.4271/2004-01-0558" ext-link-type="DOI">10.4271/2004-01-0558</ext-link>, 2004.</mixed-citation></ref>
      <ref id="bib1.bibx22"><label>Perini et al.(2012)Perini, Galligani, and Reitz</label><mixed-citation>Perini, F., Galligani, E., and Reitz, R. D.: An analytical Jacobian approach to sparse reaction kinetics for computationally efficient combustion modeling with large reaction mechanisms, Energy and Fuels, 26, 4804–4822, <ext-link xlink:href="https://doi.org/10.1021/ef300747n" ext-link-type="DOI">10.1021/ef300747n</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx23"><label>Pruppacher and Klett(1978)</label><mixed-citation>Pruppacher, H. R. and Klett, J. D.: Microphysics of clouds and precipitation: Reprinted 1980, Springer Science &amp; Business Media, <ext-link xlink:href="https://doi.org/10.1007/978-94-009-9905-3" ext-link-type="DOI">10.1007/978-94-009-9905-3</ext-link>, 1978.</mixed-citation></ref>
      <ref id="bib1.bibx24"><label>Rosenbrock(1963)</label><mixed-citation>Rosenbrock, H. H.: Some general implicit processes for the numerical solution of differential equations, The Computer Journal, 5, 329–330, <ext-link xlink:href="https://doi.org/10.1093/comjnl/5.4.329" ext-link-type="DOI">10.1093/comjnl/5.4.329</ext-link>, 1963.</mixed-citation></ref>
      <ref id="bib1.bibx25"><label>Rug et al.(2025)Rug, Schimmel, Hoffmann, and Knoth</label><mixed-citation>Rug, L., Schimmel, W., Hoffmann, F., and Knoth, O.: Cminor v1.0, Zenodo [code], <ext-link xlink:href="https://doi.org/10.5281/zenodo.17186119" ext-link-type="DOI">10.5281/zenodo.17186119</ext-link>, 2025.</mixed-citation></ref>
      <ref id="bib1.bibx26"><label>Sander et al.(2011)Sander, Baumgaertner, Gromov, Harder, Jöckel, Kerkweg, Kubistin, Regelin, Riede, Sandu, Taraborrelli, Tost, and Xie</label><mixed-citation>Sander, R., Baumgaertner, A., Gromov, S., Harder, H., Jöckel, P., Kerkweg, A., Kubistin, D., Regelin, E., Riede, H., Sandu, A., Taraborrelli, D., Tost, H., and Xie, Z.-Q.: The atmospheric chemistry box model CAABA/MECCA-3.0, Geosci. Model Dev., 4, 373–380, <ext-link xlink:href="https://doi.org/10.5194/gmd-4-373-2011" ext-link-type="DOI">10.5194/gmd-4-373-2011</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx27"><label>Sandu and Sander(2006)</label><mixed-citation>Sandu, A. and Sander, R.: Technical note: Simulating chemical systems in Fortran90 and Matlab with the Kinetic PreProcessor KPP-2.1, Atmos. Chem. Phys., 6, 187–195, <ext-link xlink:href="https://doi.org/10.5194/acp-6-187-2006" ext-link-type="DOI">10.5194/acp-6-187-2006</ext-link>, 2006.</mixed-citation></ref>
      <ref id="bib1.bibx28"><label>Sandu et al.(1997)Sandu, Verwer, Blom, Spee, Carmichael, and Potra</label><mixed-citation>Sandu, A., Verwer, J. G., Blom, J. G., Spee, E. J., Carmichael, G. R., and Potra, F. A.: Benchmarking stiff ODE solvers for atmospheric chemistry problems II: Rosenbrock solvers, Atmospheric Environment, 31, 3459–3472, <ext-link xlink:href="https://doi.org/10.1016/S1352-2310(97)83212-8" ext-link-type="DOI">10.1016/S1352-2310(97)83212-8</ext-link>, 1997.</mixed-citation></ref>
      <ref id="bib1.bibx29"><label>Schwartz(1986)</label><mixed-citation>Schwartz, S. E.: Mass-transport considerations pertinent to aqueous-phase reactions of gases in liquid-water clouds, Chemistry of Multiphase Atmospheric Systems,  415–471, <ext-link xlink:href="https://doi.org/10.1007/978-3-642-70627-1_16" ext-link-type="DOI">10.1007/978-3-642-70627-1_16</ext-link>, 1986.</mixed-citation></ref>
      <ref id="bib1.bibx30"><label>Seiser et al.(2000)Seiser, Pitsch, Seshadri, Pitz, and Gurran</label><mixed-citation>Seiser, R., Pitsch, H., Seshadri, K., Pitz, W., and Gurran, H.: Extinction and autoignition of n-heptane in counterflow configuration, Proceedings of the Combustion Institute, 28, 2029–2037, <ext-link xlink:href="https://doi.org/10.1016/S0082-0784(00)80610-4" ext-link-type="DOI">10.1016/S0082-0784(00)80610-4</ext-link>, 2000.</mixed-citation></ref>
      <ref id="bib1.bibx31"><label>Shima et al.(2009)Shima, Kusano, Kawano, Sugiyama, and Kawahara</label><mixed-citation>Shima, S.-I., Kusano, K., Kawano, A., Sugiyama, T., and Kawahara, S.: The super-droplet method for the numerical simulation of clouds and precipitation: A particle-based and probabilistic microphysics model coupled with a non-hydrostatic model, Quarterly Journal of the Royal Meteorological Society: A journal of the atmospheric sciences, applied meteorology and physical oceanography, 135, 1307–1320, <ext-link xlink:href="https://doi.org/10.1002/qj.441" ext-link-type="DOI">10.1002/qj.441</ext-link>, 2009.</mixed-citation></ref>
      <ref id="bib1.bibx32"><label>Stockwell et al.(1997)Stockwell, Kirchner, Kuhn, and Seefeld</label><mixed-citation>Stockwell, W. R., Kirchner, F., Kuhn, M., and Seefeld, S.: A new mechanism for regional atmospheric chemistry modeling, Journal of Geophysical Research, 102, 25847, <ext-link xlink:href="https://doi.org/10.1029/97JD00849" ext-link-type="DOI">10.1029/97JD00849</ext-link>, 1997.</mixed-citation></ref>
      <ref id="bib1.bibx33"><label>Tilgner et al.(2008)Tilgner, Wolke, and Herrmann</label><mixed-citation>Tilgner, A., Wolke, R., and Herrmann, H.: Capram Modeling Of Aqueous Aerosol And Cloud Chemistry, in: Simulation and Assessment of Chemical Processes in a Multiphase Environment, edited by Barnes, I. and Kharytonov, M. M., Springer Netherlands, Dordrecht, 107–122, ISBN 978-1-4020-8846-9, <ext-link xlink:href="https://doi.org/10.1007/978-1-4020-8846-9_9" ext-link-type="DOI">10.1007/978-1-4020-8846-9_9</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx34"><label>Weininger(1988)</label><mixed-citation>Weininger, D.: SMILES, a chemical language and information system. 1. Introduction to methodology and encoding rules, Journal of chemical information and computer sciences, 28, 31–36, <ext-link xlink:href="https://doi.org/10.1021/ci00057a005" ext-link-type="DOI">10.1021/ci00057a005</ext-link>, 1988.</mixed-citation></ref>
      <ref id="bib1.bibx35"><label>Wolke and Knoth(2002)</label><mixed-citation>Wolke, R. and Knoth, O.: Time-integration of multiphase chemistry in size-resolved cloud models, Applied Numerical Mathematics, 42, 473–487, <ext-link xlink:href="https://doi.org/10.1016/S0168-9274(01)00169-6" ext-link-type="DOI">10.1016/S0168-9274(01)00169-6</ext-link>,   2002.</mixed-citation></ref>
      <ref id="bib1.bibx36"><label>Wolke et al.(2005)Wolke, Sehili, Simmel, Knoth, Tilgner, and Herrmann</label><mixed-citation>Wolke, R., Sehili, A. M., Simmel, M., Knoth, O., Tilgner, A., and Herrmann, H.: SPACCIM: A parcel model with detailed microphysics and complex multiphase chemistry, Atmospheric Environment, 39, 4375–4388, <ext-link xlink:href="https://doi.org/10.1016/j.atmosenv.2005.02.038" ext-link-type="DOI">10.1016/j.atmosenv.2005.02.038</ext-link>, 2005.</mixed-citation></ref>
      <ref id="bib1.bibx37"><label>Yannakakis(1981)</label><mixed-citation>Yannakakis, M.: Computing the Minimum Fill-In is NP-Complete, SIAM Journal on Algebraic Discrete Methods, 2, 77–79, <ext-link xlink:href="https://doi.org/10.1137/0602010" ext-link-type="DOI">10.1137/0602010</ext-link>, 1981.</mixed-citation></ref>
      <ref id="bib1.bibx38"><label>Zaveri et al.(2010)Zaveri, Barnard, Easter, Riemer, and West</label><mixed-citation>Zaveri, R. A., Barnard, J. C., Easter, R. C., Riemer, N., and West, M.: Particle-resolved simulation of aerosol size, composition, mixing state, and the associated optical and cloud condensation nuclei activation properties in an evolving urban plume, Journal of Geophysical Research: Atmospheres, 115, <ext-link xlink:href="https://doi.org/10.1029/2009jd013616" ext-link-type="DOI">10.1029/2009jd013616</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx39"><label>Zhang et al.(2024)Zhang, Peng, Sun, Fu, Yang, Liu, Shi, Tang, Wang, and Bi</label><mixed-citation>Zhang, G., Peng, X., Sun, W., Fu, Y., Yang, Y., Liu, D., Shi, Z., Tang, M., Wang, X., and Bi, X.: Fog/cloud processing of atmospheric aerosols from a single particle perspective: a review of field observations, Atmospheric Environment,   120536, <ext-link xlink:href="https://doi.org/10.1016/j.atmosenv.2024.120536" ext-link-type="DOI">10.1016/j.atmosenv.2024.120536</ext-link>, 2024.</mixed-citation></ref>
      <ref id="bib1.bibx40"><label>Zhang et al.(2011)Zhang, Linford, Sandu, and Sander</label><mixed-citation>Zhang, H., Linford, J. C., Sandu, A., and Sander, R.: Chemical mechanism solvers in air quality models, Atmosphere, 2, 510–532, <ext-link xlink:href="https://doi.org/10.3390/atmos2030510" ext-link-type="DOI">10.3390/atmos2030510</ext-link>, 2011.</mixed-citation></ref>

  </ref-list></back>
    <!--<article-title-html>The Chemical Mechanism Integrator <i>Cminor</i> v1.0: a stand-alone Fortran environment for the particle-based simulation of chemical multiphase mechanisms</article-title-html>
<abstract-html/>
<ref-html id="bib1.bib1"><label>Bräuer(2015)</label><mixed-citation>
      
Bräuer, P.: Extension and application of a tropospheric aqueous phase chemical
mechanism (CAPRAM) for aerosol and cloud models, Ph.D. thesis, Leipzig,
Univ., Diss., 2015.,
<a href="http://nbn-resolving.de/urn:nbn:de:bsz:15-qucosa-183743" target="_blank"/> (last access: 11 November 2025),
2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib2"><label>Christner et al.(2008)Christner, Cai, Morris, McCarter, Foreman,
Skidmore, Montross, and Sands</label><mixed-citation>
      
Christner, B. C., Cai, R., Morris, C. E., McCarter, K. S., Foreman, C. M.,
Skidmore, M. L., Montross, S. N., and Sands, D. C.: Geographic, seasonal, and
precipitation chemistry influence on the abundance and activity of biological
ice nucleators in rain and snow, Proceedings of the National Academy of
Sciences, 105, 18854–18859, <a href="https://doi.org/10.1073/pnas.0809816105" target="_blank">https://doi.org/10.1073/pnas.0809816105</a>, 2008.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib3"><label>Ervens et al.(2003)Ervens, George, Williams, Buxton, Salmon, Bydder,
Wilkinson, Dentener, Mirabel, Wolke, and Herrmann</label><mixed-citation>
      
Ervens, B., George, C., Williams, J. E., Buxton, G. V., Salmon, G. A., Bydder,
M., Wilkinson, F., Dentener, F., Mirabel, P., Wolke, R., and Herrmann, H.:
CAPRAM 2.4 (MODAC mechanism): An extended and condensed tropospheric aqueous
phase mechanism and its application, J. Geophys. Res., 108, 4426,
<a href="https://doi.org/10.1029/2002jd002202" target="_blank">https://doi.org/10.1029/2002jd002202</a>, 2003.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib4"><label>Fukuta and Walter(1970)</label><mixed-citation>
      
Fukuta, N. and Walter, L.: Kinetics of hydrometeor growth from a
vapor-spherical model, Journal of Atmospheric Sciences, 27, 1160–1172,
<a href="https://doi.org/10.1175/1520-0469(1970)027&lt;1160:KOHGFA&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0469(1970)027&lt;1160:KOHGFA&gt;2.0.CO;2</a>, 1970.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib5"><label>Goel et al.(2020)Goel, Mishra, Pal, Ahlawat, Vijayan, Jain, and
Sharma</label><mixed-citation>
      
Goel, V., Mishra, S. K., Pal, P., Ahlawat, A., Vijayan, N., Jain, S., and
Sharma, C.: Influence of chemical aging on physico-chemical properties of
mineral dust particles: A case study of 2016 dust storms over Delhi,
Environmental Pollution, 267, 115338, <a href="https://doi.org/10.1016/j.envpol.2020.115338" target="_blank">https://doi.org/10.1016/j.envpol.2020.115338</a>,
2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib6"><label>Hairer et al.(1991)Hairer, Nørsett, and Wanner</label><mixed-citation>
      
Hairer, E., Nørsett, S. P., and Wanner, G.: Stiff and differential algebraic
problems, Springer, Berlin, ISBN 0387537759, <a href="https://doi.org/10.1007/978-3-642-05221-7" target="_blank">https://doi.org/10.1007/978-3-642-05221-7</a>,
1991.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib7"><label>Herbinet et al.(2008)Herbinet, Pitz, and Westbrook</label><mixed-citation>
      
Herbinet, O., Pitz, W. J., and Westbrook, C. K.: Detailed chemical kinetic
oxidation mechanism for a biodiesel surrogate, Combustion and Flame, 154, 507–528, <a href="https://doi.org/10.1016/j.combustflame.2008.03.003" target="_blank">https://doi.org/10.1016/j.combustflame.2008.03.003</a>, 2008.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib8"><label>Herrmann et al.(2005)Herrmann, Tilgner, Barzaghi, Majdik,
Gligorovski, Poulain, and Monod</label><mixed-citation>
      
Herrmann, H., Tilgner, A., Barzaghi, P., Majdik, Z., Gligorovski, S., Poulain,
L., and Monod, A.: Towards a more detailed description of tropospheric
aqueous phase organic chemistry: CAPRAM 3.0, Atmospheric Environment, 39,
4351–4363, <a href="https://doi.org/10.1016/j.atmosenv.2005.02.016" target="_blank">https://doi.org/10.1016/j.atmosenv.2005.02.016</a>, 2005.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib9"><label>Hoffmann et al.(2015)Hoffmann, Raasch, and Noh</label><mixed-citation>
      
Hoffmann, F., Raasch, S., and Noh, Y.: Entrainment of aerosols and their
activation in a shallow cumulus cloud studied with a coupled LCM–LES
approach, Atmospheric Research, 156, 43–57,
<a href="https://doi.org/10.1016/j.atmosres.2014.12.008" target="_blank">https://doi.org/10.1016/j.atmosres.2014.12.008</a>, 2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib10"><label>Jaruga and Pawlowska(2018)</label><mixed-citation>
      
Jaruga, A. and Pawlowska, H.: libcloudph++ 2.0: aqueous-phase chemistry extension of the particle-based cloud microphysics scheme, Geosci. Model Dev., 11, 3623–3645, <a href="https://doi.org/10.5194/gmd-11-3623-2018" target="_blank">https://doi.org/10.5194/gmd-11-3623-2018</a>, 2018.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib11"><label>Jenkin et al.(2012)Jenkin, Wyche, Evans, Carr, Monks, Alfarra,
Barley, McFiggans, Young, and Rickard</label><mixed-citation>
      
Jenkin, M. E., Wyche, K. P., Evans, C. J., Carr, T., Monks, P. S., Alfarra, M. R., Barley, M. H., McFiggans, G. B., Young, J. C., and Rickard, A. R.: Development and chamber evaluation of the MCM v3.2 degradation scheme for β-caryophyllene, Atmos. Chem. Phys., 12, 5275–5308, <a href="https://doi.org/10.5194/acp-12-5275-2012" target="_blank">https://doi.org/10.5194/acp-12-5275-2012</a>, 2012.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib12"><label>Kazil et al.(2011)Kazil, Wang, Feingold, Clarke, Snider, and
Bandy</label><mixed-citation>
      
Kazil, J., Wang, H., Feingold, G., Clarke, A. D., Snider, J. R., and Bandy, A. R.: Modeling chemical and aerosol processes in the transition from closed to open cells during VOCALS-REx, Atmos. Chem. Phys., 11, 7491–7514, <a href="https://doi.org/10.5194/acp-11-7491-2011" target="_blank">https://doi.org/10.5194/acp-11-7491-2011</a>, 2011.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib13"><label>Kee et al.(1990)Kee, Rupley, and Miller</label><mixed-citation>
      
Kee, R., Rupley, F., and Miller, J.: The Chemkin Thermodynamic Data Base,
<a href="https://doi.org/10.2172/7073290" target="_blank">https://doi.org/10.2172/7073290</a>, 1990.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib14"><label>Kee et al.(1996)Kee, Rupley, Meeks, and Miller</label><mixed-citation>
      
Kee, R., Rupley, F., Meeks, E., and Miller, J.: CHEMKIN-III: A Fortran Chemical
Kinetics Package for the Analysis of Gas Phase Chemical and Plasma Kinetics,
Sandia National Laboratories Report, <a href="https://doi.org/10.2172/481621" target="_blank">https://doi.org/10.2172/481621</a>, 1996.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib15"><label>Kreidenweis et al.(2003)Kreidenweis, Walcek, Feingold, Gong,
Jacobson, Kim, Liu, Penner, Nenes, and Seinfeld</label><mixed-citation>
      
Kreidenweis, S. M., Walcek, C. J., Feingold, G., Gong, W., Jacobson, M. Z.,
Kim, C.-H., Liu, X., Penner, J. E., Nenes, A., and Seinfeld, J. H.:
Modification of aerosol mass and size distribution due to aqueous-phase SO2
oxidation in clouds: Comparisons of several models, Journal of Geophysical
Research: Atmospheres, 108, <a href="https://doi.org/10.1029/2002jd002697" target="_blank">https://doi.org/10.1029/2002jd002697</a>, 2003.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib16"><label>Kulmala et al.(2000)Kulmala, Pirjola, and
Mäkelä</label><mixed-citation>
      
Kulmala, M., Pirjola, L., and Mäkelä, J. M.: Stable sulphate clusters
as a source of new atmospheric particles, Nature, 404, 66–69,
<a href="https://doi.org/10.1038/35003550" target="_blank">https://doi.org/10.1038/35003550</a>, 2000.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib17"><label>Kupc et al.(2020)Kupc, Williamson, Hodshire, Kazil, Ray, Bui,
Dollner, Froyd, McKain, Rollins et al.</label><mixed-citation>
      
Kupc, A., Williamson, C. J., Hodshire, A. L., Kazil, J., Ray, E., Bui, T. P., Dollner, M., Froyd, K. D., McKain, K., Rollins, A., Schill, G. P., Thames, A., Weinzierl, B. B., Pierce, J. R., and Brock, C. A.: The potential role of organics in new particle formation and initial growth in the remote tropical upper troposphere, Atmos. Chem. Phys., 20, 15037–15060, <a href="https://doi.org/10.5194/acp-20-15037-2020" target="_blank">https://doi.org/10.5194/acp-20-15037-2020</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib18"><label>Lamb and Verlinde(2011)</label><mixed-citation>
      
Lamb, D. and Verlinde, J.: Physics and chemistry of clouds, Cambridge
University Press, <a href="https://doi.org/10.1017/cbo9780511976377" target="_blank">https://doi.org/10.1017/cbo9780511976377</a>, 2011.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib19"><label>Markowitz(1957)</label><mixed-citation>
      
Markowitz, H. M.: The Elimination Form of the Inverse and Its Application to
Linear Programming, Management Science, 3, 255–269,
<a href="https://doi.org/10.1287/mnsc.3.3.255" target="_blank">https://doi.org/10.1287/mnsc.3.3.255</a>, 1957.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib20"><label>Murphy et al.(1998)Murphy, Anderson, Quinn, McInnes, Brechtel,
Kreidenweis, Middlebrook, Pósfai, Thomson, and Buseck</label><mixed-citation>
      
Murphy, D., Anderson, J., Quinn, P., McInnes, L., Brechtel, F., Kreidenweis,
S., Middlebrook, A., Pósfai, M., Thomson, D., and Buseck, P.: Influence of
sea-salt on aerosol radiative properties in the Southern Ocean marine
boundary layer, Nature, 392, 62–65, <a href="https://doi.org/10.1038/32138" target="_blank">https://doi.org/10.1038/32138</a>, 1998.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib21"><label>Patel et al.(2004)Patel, Kong, and Reitz</label><mixed-citation>
      
Patel, A., Kong, S.-C., and Reitz, R.: Development and validation of a reduced
reaction mechanism for HCCI engine simulations, SAE Paper 2004-01-0558,
63–76, <a href="https://doi.org/10.4271/2004-01-0558" target="_blank">https://doi.org/10.4271/2004-01-0558</a>, 2004.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib22"><label>Perini et al.(2012)Perini, Galligani, and Reitz</label><mixed-citation>
      
Perini, F., Galligani, E., and Reitz, R. D.: An analytical Jacobian approach
to sparse reaction kinetics for computationally efficient combustion modeling
with large reaction mechanisms, Energy and Fuels, 26, 4804–4822,
<a href="https://doi.org/10.1021/ef300747n" target="_blank">https://doi.org/10.1021/ef300747n</a>, 2012.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib23"><label>Pruppacher and Klett(1978)</label><mixed-citation>
      
Pruppacher, H. R. and Klett, J. D.: Microphysics of clouds and precipitation:
Reprinted 1980, Springer Science &amp; Business Media,
<a href="https://doi.org/10.1007/978-94-009-9905-3" target="_blank">https://doi.org/10.1007/978-94-009-9905-3</a>, 1978.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib24"><label>Rosenbrock(1963)</label><mixed-citation>
      
Rosenbrock, H. H.: Some general implicit processes for the numerical solution
of differential equations, The Computer Journal, 5, 329–330,
<a href="https://doi.org/10.1093/comjnl/5.4.329" target="_blank">https://doi.org/10.1093/comjnl/5.4.329</a>, 1963.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib25"><label>Rug et al.(2025)Rug, Schimmel, Hoffmann, and Knoth</label><mixed-citation>
      
Rug, L., Schimmel, W., Hoffmann, F., and Knoth, O.: Cminor v1.0, Zenodo [code],
<a href="https://doi.org/10.5281/zenodo.17186119" target="_blank">https://doi.org/10.5281/zenodo.17186119</a>, 2025.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib26"><label>Sander et al.(2011)Sander, Baumgaertner, Gromov, Harder,
Jöckel, Kerkweg, Kubistin, Regelin, Riede, Sandu,
Taraborrelli, Tost, and Xie</label><mixed-citation>
      
Sander, R., Baumgaertner, A., Gromov, S., Harder, H., Jöckel, P., Kerkweg, A., Kubistin, D., Regelin, E., Riede, H., Sandu, A., Taraborrelli, D., Tost, H., and Xie, Z.-Q.: The atmospheric chemistry box model CAABA/MECCA-3.0, Geosci. Model Dev., 4, 373–380, <a href="https://doi.org/10.5194/gmd-4-373-2011" target="_blank">https://doi.org/10.5194/gmd-4-373-2011</a>, 2011.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib27"><label>Sandu and Sander(2006)</label><mixed-citation>
      
Sandu, A. and Sander, R.: Technical note: Simulating chemical systems in Fortran90 and Matlab with the Kinetic PreProcessor KPP-2.1, Atmos. Chem. Phys., 6, 187–195, <a href="https://doi.org/10.5194/acp-6-187-2006" target="_blank">https://doi.org/10.5194/acp-6-187-2006</a>, 2006.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib28"><label>Sandu et al.(1997)Sandu, Verwer, Blom, Spee, Carmichael, and
Potra</label><mixed-citation>
      
Sandu, A., Verwer, J. G., Blom, J. G., Spee, E. J., Carmichael, G. R., and
Potra, F. A.: Benchmarking stiff ODE solvers for atmospheric chemistry
problems II: Rosenbrock solvers, Atmospheric Environment, 31, 3459–3472,
<a href="https://doi.org/10.1016/S1352-2310(97)83212-8" target="_blank">https://doi.org/10.1016/S1352-2310(97)83212-8</a>, 1997.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib29"><label>Schwartz(1986)</label><mixed-citation>
      
Schwartz, S. E.: Mass-transport considerations pertinent to aqueous-phase
reactions of gases in liquid-water clouds, Chemistry of Multiphase
Atmospheric Systems,  415–471, <a href="https://doi.org/10.1007/978-3-642-70627-1_16" target="_blank">https://doi.org/10.1007/978-3-642-70627-1_16</a>, 1986.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib30"><label>Seiser et al.(2000)Seiser, Pitsch, Seshadri, Pitz, and
Gurran</label><mixed-citation>
      
Seiser, R., Pitsch, H., Seshadri, K., Pitz, W., and Gurran, H.: Extinction and
autoignition of n-heptane in counterflow configuration, Proceedings of the
Combustion Institute, 28, 2029–2037, <a href="https://doi.org/10.1016/S0082-0784(00)80610-4" target="_blank">https://doi.org/10.1016/S0082-0784(00)80610-4</a>,
2000.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib31"><label>Shima et al.(2009)Shima, Kusano, Kawano, Sugiyama, and
Kawahara</label><mixed-citation>
      
Shima, S.-I., Kusano, K., Kawano, A., Sugiyama, T., and Kawahara, S.: The
super-droplet method for the numerical simulation of clouds and
precipitation: A particle-based and probabilistic microphysics model coupled
with a non-hydrostatic model, Quarterly Journal of the Royal Meteorological
Society: A journal of the atmospheric sciences, applied meteorology and
physical oceanography, 135, 1307–1320, <a href="https://doi.org/10.1002/qj.441" target="_blank">https://doi.org/10.1002/qj.441</a>, 2009.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib32"><label>Stockwell et al.(1997)Stockwell, Kirchner, Kuhn, and
Seefeld</label><mixed-citation>
      
Stockwell, W. R., Kirchner, F., Kuhn, M., and Seefeld, S.: A new mechanism for
regional atmospheric chemistry modeling, Journal of Geophysical Research,
102, 25847, <a href="https://doi.org/10.1029/97JD00849" target="_blank">https://doi.org/10.1029/97JD00849</a>, 1997.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib33"><label>Tilgner et al.(2008)Tilgner, Wolke, and Herrmann</label><mixed-citation>
      
Tilgner, A., Wolke, R., and Herrmann, H.: Capram Modeling Of Aqueous Aerosol
And Cloud Chemistry, in: Simulation and Assessment of Chemical Processes in a
Multiphase Environment, edited by Barnes, I. and Kharytonov, M. M.,
Springer Netherlands, Dordrecht, 107–122, ISBN 978-1-4020-8846-9,
<a href="https://doi.org/10.1007/978-1-4020-8846-9_9" target="_blank">https://doi.org/10.1007/978-1-4020-8846-9_9</a>, 2008.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib34"><label>Weininger(1988)</label><mixed-citation>
      
Weininger, D.: SMILES, a chemical language and information system. 1.
Introduction to methodology and encoding rules, Journal of chemical
information and computer sciences, 28, 31–36, <a href="https://doi.org/10.1021/ci00057a005" target="_blank">https://doi.org/10.1021/ci00057a005</a>,
1988.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib35"><label>Wolke and Knoth(2002)</label><mixed-citation>
      
Wolke, R. and Knoth, O.: Time-integration of multiphase chemistry in
size-resolved cloud models, Applied Numerical Mathematics, 42, 473–487,
<a href="https://doi.org/10.1016/S0168-9274(01)00169-6" target="_blank">https://doi.org/10.1016/S0168-9274(01)00169-6</a>,   2002.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib36"><label>Wolke et al.(2005)Wolke, Sehili, Simmel, Knoth, Tilgner, and
Herrmann</label><mixed-citation>
      
Wolke, R., Sehili, A. M., Simmel, M., Knoth, O., Tilgner, A., and Herrmann, H.:
SPACCIM: A parcel model with detailed microphysics and complex multiphase
chemistry, Atmospheric Environment, 39, 4375–4388,
<a href="https://doi.org/10.1016/j.atmosenv.2005.02.038" target="_blank">https://doi.org/10.1016/j.atmosenv.2005.02.038</a>, 2005.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib37"><label>Yannakakis(1981)</label><mixed-citation>
      
Yannakakis, M.: Computing the Minimum Fill-In is NP-Complete, SIAM Journal on
Algebraic Discrete Methods, 2, 77–79, <a href="https://doi.org/10.1137/0602010" target="_blank">https://doi.org/10.1137/0602010</a>, 1981.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib38"><label>Zaveri et al.(2010)Zaveri, Barnard, Easter, Riemer, and
West</label><mixed-citation>
      
Zaveri, R. A., Barnard, J. C., Easter, R. C., Riemer, N., and West, M.:
Particle-resolved simulation of aerosol size, composition, mixing state, and
the associated optical and cloud condensation nuclei activation properties in
an evolving urban plume, Journal of Geophysical Research: Atmospheres, 115,
<a href="https://doi.org/10.1029/2009jd013616" target="_blank">https://doi.org/10.1029/2009jd013616</a>, 2010.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib39"><label>Zhang et al.(2024)Zhang, Peng, Sun, Fu, Yang, Liu, Shi, Tang, Wang,
and Bi</label><mixed-citation>
      
Zhang, G., Peng, X., Sun, W., Fu, Y., Yang, Y., Liu, D., Shi, Z., Tang, M.,
Wang, X., and Bi, X.: Fog/cloud processing of atmospheric aerosols from a
single particle perspective: a review of field observations, Atmospheric
Environment,   120536, <a href="https://doi.org/10.1016/j.atmosenv.2024.120536" target="_blank">https://doi.org/10.1016/j.atmosenv.2024.120536</a>, 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib40"><label>Zhang et al.(2011)Zhang, Linford, Sandu, and Sander</label><mixed-citation>
      
Zhang, H., Linford, J. C., Sandu, A., and Sander, R.: Chemical mechanism
solvers in air quality models, Atmosphere, 2, 510–532,
<a href="https://doi.org/10.3390/atmos2030510" target="_blank">https://doi.org/10.3390/atmos2030510</a>, 2011.

    </mixed-citation></ref-html>--></article>
