<?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-19-7503-2026</article-id><title-group><article-title>BinMod1D v1.0.10: a Python package for explicitly simulating 1D collisional coalescence/breakup processes with corresponding polarimetric radar signatures</article-title><alt-title>BinMod1D v1.0.10</alt-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author" corresp="yes" rid="aff1 aff2">
          <name><surname>Dunnavan</surname><given-names>Edwin Lee</given-names></name>
          <email>edwin.dunnavan@noaa.gov</email>
        </contrib>
        <aff id="aff1"><label>1</label><institution>Cooperative Institute for Severe and High-Impact Weather Research and Observations, Norman, OK, USA</institution>
        </aff>
        <aff id="aff2"><label>2</label><institution>National Severe Storms Laboratory, Norman, OK, USA</institution>
        </aff>
      </contrib-group>
      <author-notes><corresp id="corr1">Edwin Lee Dunnavan (edwin.dunnavan@noaa.gov)</corresp></author-notes><pub-date><day>13</day><month>August</month><year>2026</year></pub-date>
      
      <volume>19</volume>
      <issue>15</issue>
      <fpage>7503</fpage><lpage>7523</lpage>
      <history>
        <date date-type="received"><day>8</day><month>April</month><year>2026</year></date>
           <date date-type="rev-request"><day>4</day><month>May</month><year>2026</year></date>
           <date date-type="rev-recd"><day>8</day><month>July</month><year>2026</year></date>
           <date date-type="accepted"><day>27</day><month>July</month><year>2026</year></date>
      </history>
      <permissions>
        <copyright-statement>Copyright: © 2026 Edwin Lee Dunnavan</copyright-statement>
        <copyright-year>2026</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/19/7503/2026/gmd-19-7503-2026.html">This article is available from https://gmd.copernicus.org/articles/19/7503/2026/gmd-19-7503-2026.html</self-uri><self-uri xlink:href="https://gmd.copernicus.org/articles/19/7503/2026/gmd-19-7503-2026.pdf">The full text article is available as a PDF file from https://gmd.copernicus.org/articles/19/7503/2026/gmd-19-7503-2026.pdf</self-uri>
      <abstract><title>Abstract</title>

      <p id="d2e87">This paper details a computationally efficient and versatile Python package (BinMod1D v1.0.10) that explicitly evolves spectral bin distributions and corresponding polarimetric radar variables for rain or snow according to atmospheric collisional coalescence and breakup processes. BinMod1D can be executed as a box model, a 1D steady-state model in height, or a full (time and height) 1D column model utilizing multiple particle categories, each of which can have their own densities, aspect ratios, and fall speeds. Forward simulations of polarimetric radar variables are implemented using standard Rayleigh analytic scattering equations. Two-moment (mass and number) or one-moment (mass only) particle interaction calculations follow a source-based spectral bin method. Bin interaction computations are parallelized using just-in-time (JIT) compilation for high performance. BinMod1D box model solutions are validated using analytic solutions of collision-coalescence using a variety of kernels as well as for breakup and the steady-state balance of coalescence with breakup. BinMod1D capabilities are demonstrated through steady-state simulations of rainfall and snow signatures, as well as vertical profiles of diverse meteorological scenarios. Convergence and timing tests are provided for the meteorological scenario of a cloud to rain transition using a realistic collision kernel and fragment distribution. BinMod1D is intended to enable cloud microphysics and weather radar researchers to efficiently simulate vertical profiles of complex weather events. Such a tool can be used to provide reference solutions for training machine learning models and validating various retrieval methodologies.</p>
  </abstract>
    
<funding-group>
<award-group id="gs1">
<funding-source>National Oceanic and Atmospheric Administration</funding-source>
<award-id>NA21OAR4320204</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="d2e101">Reference solutions to complex weather phenomena provide a useful way to develop and evaluate new methods for retrieving microphysical variables from weather radar measurements. Such retrievals can involve simple analytic formulas  <xref ref-type="bibr" rid="bib1.bibx48" id="paren.1"><named-content content-type="pre">e.g.,</named-content></xref> or more involved machine learning models <xref ref-type="bibr" rid="bib1.bibx14" id="paren.2"><named-content content-type="pre">e.g.,</named-content></xref> that connect radar products like reflectivity to microphysical parameters such as rain or snow rates. Typically, these retrieval equations are developed through a combination of theory and observations, but often without rigorous consideration of microphysical and scattering uncertainties as well as the precise nature of the simulated particle size distribution (PSD). Instead, parameteric approaches, often by assuming an underlying exponential or gamma distribution, are used to connect observed radar variables to desirable microphysical quantities. As a result, however, these parametric approaches sever the important connections between the quantities that are inferred from radar signatures with their underlying microphysical causes.</p>
      <p id="d2e114">Of the many microphysical processes in precipitation physics, collision-coalescence and collisional breakup represent two of the most important yet difficult to explicitly simulate. This difficulty can be seen directly from the general equation for collision-coalesence and collsional breakup in time and in height (ignoring horizontal advection terms), which can be expressed as <xref ref-type="bibr" rid="bib1.bibx38" id="paren.3"><named-content content-type="pre">cf.</named-content></xref>

          <disp-formula id="Ch1.E1" content-type="numbered"><label>1</label><mml:math id="M1" display="block"><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><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:mo>∂</mml:mo><mml:mfenced close="]" open="["><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mfenced></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace linebreak="nobreak" width="1em"/><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow><mml:mi>m</mml:mi></mml:munderover><mml:mi>C</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace width="1em" linebreak="nobreak"/><mml:mo>-</mml:mo><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow><mml:mi mathvariant="normal">∞</mml:mi></mml:munderover><mml:mi>C</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi><mml:mo>+</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace linebreak="nobreak" width="1em"/><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow><mml:mi mathvariant="normal">∞</mml:mi></mml:munderover><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow><mml:mi mathvariant="normal">∞</mml:mi></mml:munderover><mml:mi>B</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:mi>P</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>|</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>y</mml:mi><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi><mml:mo>-</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace linebreak="nobreak" width="1em"/><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow><mml:mi mathvariant="normal">∞</mml:mi></mml:munderover><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi>B</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mo>+</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mi mathvariant="normal">d</mml:mi><mml:mi>y</mml:mi><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mo>+</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:munderover><mml:mi>x</mml:mi><mml:mi>P</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>|</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

        where <inline-formula><mml:math id="M2" display="inline"><mml:mrow><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is the number distribution function for mass <inline-formula><mml:math id="M3" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula>, height <inline-formula><mml:math id="M4" display="inline"><mml:mi>z</mml:mi></mml:math></inline-formula>, and time <inline-formula><mml:math id="M5" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula>; <inline-formula><mml:math id="M6" display="inline"><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is the fall speed for particles of mass <inline-formula><mml:math id="M7" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula>; <inline-formula><mml:math id="M8" display="inline"><mml:mrow><mml:mi>C</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M9" display="inline"><mml:mrow><mml:mi>B</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> are the collision-coalescence and collision-breakup kernels, respectively; and <inline-formula><mml:math id="M10" display="inline"><mml:mrow><mml:mi>P</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>|</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is the conditional fragment distribution that determines the number of mass <inline-formula><mml:math id="M11" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> fragments generated from collisions involving particles of mass <inline-formula><mml:math id="M12" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M13" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula>. The left hand side of Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>) represents the tendency and sedimentation terms of the evolving PSD (in terms of mass) whereas the first two right hand side terms represent the gain and loss terms for coalescence and the last two terms represent the gain and loss terms for breakup. Equation (<xref ref-type="disp-formula" rid="Ch1.E1"/>) reduces to the well-known Smoluchowski equation <xref ref-type="bibr" rid="bib1.bibx54" id="paren.4"/> when the sedimentation and breakup terms are neglected. The Smoluchowski equation is also frequently referred to by many other names such as the coagulation equation, the stochastic collection equation <xref ref-type="bibr" rid="bib1.bibx58 bib1.bibx23 bib1.bibx10 bib1.bibx53 bib1.bibx43" id="paren.5"/>, the kinetic collection equation <xref ref-type="bibr" rid="bib1.bibx1" id="paren.6"/> and the scalar transport equation <xref ref-type="bibr" rid="bib1.bibx37 bib1.bibx16 bib1.bibx17" id="paren.7"/>. Equation (<xref ref-type="disp-formula" rid="Ch1.E1"/>) is difficult to solve for several reasons. First, the integro-differential equation is functional in the coalescence gain term through <inline-formula><mml:math id="M14" display="inline"><mml:mrow><mml:mi>C</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M15" display="inline"><mml:mrow><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. As such, standard finite difference numerical methods are not sufficient for directly solving Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>). Secondly, the integral regions are constrained by the particle masses themselves as seen in Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>) with the coalescence gain term and the breakup loss term. This entails that different integration methods are potentially required for different particle <inline-formula><mml:math id="M16" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> masses. Finally, there are large uncertainties involving the nature and form of the breakup conditional distribution <inline-formula><mml:math id="M17" display="inline"><mml:mrow><mml:mi>P</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>|</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. By its nature, <inline-formula><mml:math id="M18" display="inline"><mml:mrow><mml:mi>P</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>|</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> should respect detailed mass conservation in the loss term (i.e., <inline-formula><mml:math id="M19" display="inline"><mml:mrow><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mo>+</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:munderover><mml:mi>x</mml:mi><mml:mi>P</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>|</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi>m</mml:mi><mml:mo>+</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:math></inline-formula>), however this condition isn't always exactly met <xref ref-type="bibr" rid="bib1.bibx23" id="paren.8"/>. For rain collisional breakup, this has led to several intricate methods that use mixture distributions involving, for example, Gaussian and  lognormal distributions to represent the different types of breakup events (i.e., filament, sheet, or disk) as constrained by laboratory measurements <xref ref-type="bibr" rid="bib1.bibx34 bib1.bibx35 bib1.bibx36 bib1.bibx56" id="paren.9"/>.</p>
      <p id="d2e910">The complexity of Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>) has historically led to roughly three different types of numerical solution methods: <italic>point-based</italic> methods, <italic>target-based spectral moment</italic> methods, and <italic>source-based spectral moment</italic> methods.</p>
      <p id="d2e924"><italic>Point-based</italic> approaches such as the <xref ref-type="bibr" rid="bib1.bibx5" id="text.10"/> method approximate the number distribution function as a set of discrete points and attempt to solve Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>) by interpolating the functional gain term. This approach is computationally intensive compared to other methods but is considered to be quite accurate and is often used to provide reference solutions for other methods <xref ref-type="bibr" rid="bib1.bibx60" id="paren.11"><named-content content-type="pre">e.g.,</named-content></xref>. The gain and loss terms are handled separately which leads to mass not being exactly conserved, although with enough points this lack of conservation can be mitigated somewhat.</p>
      <p id="d2e940"><italic>Target-based spectral moment</italic> methods instead evolve bin moments (i.e., number and/or mass) and were originally developed by <xref ref-type="bibr" rid="bib1.bibx8" id="text.12"/> and <xref ref-type="bibr" rid="bib1.bibx22" id="text.13"/> and improved upon by <xref ref-type="bibr" rid="bib1.bibx58" id="text.14"/> and <xref ref-type="bibr" rid="bib1.bibx23" id="text.15"/>. In the moment-based approach, Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>) is integrated for each <inline-formula><mml:math id="M20" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> bin with the kernel <inline-formula><mml:math id="M21" display="inline"><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mi>r</mml:mi></mml:msup><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:math></inline-formula> from the left bin edge <inline-formula><mml:math id="M22" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> to the right bin edge <inline-formula><mml:math id="M23" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>. This transforms Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>) into

          <disp-formula id="Ch1.E2" content-type="numbered"><label>2</label><mml:math id="M24" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msubsup><mml:mi>M</mml:mi><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><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:mo>∂</mml:mo><mml:msubsup><mml:mi>S</mml:mi><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace linebreak="nobreak" width="1em"/><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:msup><mml:mi>m</mml:mi><mml:mi>r</mml:mi></mml:msup><mml:mi mathvariant="normal">d</mml:mi><mml:mi>m</mml:mi><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow><mml:mi>m</mml:mi></mml:munderover><mml:mi>C</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi><mml:mo>-</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:msup><mml:mi>m</mml:mi><mml:mi>r</mml:mi></mml:msup><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>m</mml:mi><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow><mml:mi mathvariant="normal">∞</mml:mi></mml:munderover><mml:mi>C</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi><mml:mo>+</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace linebreak="nobreak" width="1em"/><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:msup><mml:mi>m</mml:mi><mml:mi>r</mml:mi></mml:msup><mml:mi mathvariant="normal">d</mml:mi><mml:mi>m</mml:mi><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow><mml:mi mathvariant="normal">∞</mml:mi></mml:munderover><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow><mml:mi mathvariant="normal">∞</mml:mi></mml:munderover><mml:mi>B</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:mi>P</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>|</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace linebreak="nobreak" width="1em"/><mml:mspace linebreak="nobreak" width="1em"/><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>y</mml:mi><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi><mml:mo>-</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace linebreak="nobreak" width="1em"/><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:msup><mml:mi>m</mml:mi><mml:mi>r</mml:mi></mml:msup><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>m</mml:mi><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow><mml:mi mathvariant="normal">∞</mml:mi></mml:munderover><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi>B</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mo>+</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mi mathvariant="normal">d</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace width="1em" linebreak="nobreak"/><mml:mspace linebreak="nobreak" width="1em"/><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mo>+</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:munderover><mml:mi>x</mml:mi><mml:mi>P</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>|</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

        where <inline-formula><mml:math id="M25" display="inline"><mml:mrow><mml:msubsup><mml:mi>M</mml:mi><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>≡</mml:mo><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:msup><mml:mi>m</mml:mi><mml:mi>r</mml:mi></mml:msup><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:math></inline-formula> is the <inline-formula><mml:math id="M26" display="inline"><mml:mi>r</mml:mi></mml:math></inline-formula>th mass moment of bin <inline-formula><mml:math id="M27" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M28" display="inline"><mml:mrow><mml:msubsup><mml:mi>S</mml:mi><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>z</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:msub><mml:mi>x</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:msup><mml:mi>m</mml:mi><mml:mi>r</mml:mi></mml:msup><mml:msub><mml:mi>v</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:math></inline-formula> is the bin's <inline-formula><mml:math id="M29" display="inline"><mml:mi>r</mml:mi></mml:math></inline-formula>th mass moment vertical flux. Often, Eq. (<xref ref-type="disp-formula" rid="Ch1.E2"/>) is used to generate ordinary differential equations for evolving the mass moment (<inline-formula><mml:math id="M30" display="inline"><mml:mrow><mml:mi>r</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>) and the number moment (<inline-formula><mml:math id="M31" display="inline"><mml:mrow><mml:mi>r</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>). While this integral transform increases the dimensionality by one, the advantage is that differential equations for evolving moments of the number distribution function can be represented, at least partially, in terms of the moments themselves. This can be seen schematically in Fig. <xref ref-type="fig" rid="F1"/> for collision-coalescence (panel a) and breakup (panel b). In Fig. <xref ref-type="fig" rid="F1"/>a, each <inline-formula><mml:math id="M32" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> bin of the <italic>target</italic> distribution is treated separately one-at-a-time. Each <inline-formula><mml:math id="M33" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> bin integrates all <inline-formula><mml:math id="M34" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M35" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> source bin regions that overlap with the <inline-formula><mml:math id="M36" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> bin such that <inline-formula><mml:math id="M37" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>≤</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mi>y</mml:mi><mml:mo>≤</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>. This can be seen in Fig. <xref ref-type="fig" rid="F1"/>a by the red “Gain” region created by the <inline-formula><mml:math id="M38" display="inline"><mml:mrow><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M39" display="inline"><mml:mrow><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> diagonal lines. This collision-coalescence gain term for bin <inline-formula><mml:math id="M40" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> can be numerically calculated by splitting the full integral region (red) into quadrilateral regions of all <inline-formula><mml:math id="M41" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M42" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> bin interactions where the individual interacting source <inline-formula><mml:math id="M43" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M44" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> bin amounts are shown as black hashes. The loss region for the <inline-formula><mml:math id="M45" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> bin (blue) is simply a rectangular integration region created by the <inline-formula><mml:math id="M46" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> (<inline-formula><mml:math id="M47" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula>) bin interaction with each <inline-formula><mml:math id="M48" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> bin. The gain term is often very lengthy and suffers from the problem of closure, i.e. the subregions are expressed in terms of higher-order moments of the <inline-formula><mml:math id="M49" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M50" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> bins. This has led to different closure techniques. For example, <xref ref-type="bibr" rid="bib1.bibx58" id="text.16"/> uses a nondimensional integral parameter to connect higher order moments to lower order moments whereby the error is small and the maximum possible error can be determined using Schwarz's inequality for a given bin resolution. Because of this error, mass conservation might not be completely satisfied, however the error is apparently minimal. These tricky integral regions are even more complicated when considering collisional breakup as shown in Fig. <xref ref-type="fig" rid="F1"/>b where these quadrilateral gain and loss regions are represented as three dimensional volumes that are constrained and separated by the <inline-formula><mml:math id="M51" display="inline"><mml:mrow><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:mi>m</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M52" display="inline"><mml:mrow><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mi>y</mml:mi><mml:mo>+</mml:mo><mml:mi>m</mml:mi></mml:mrow></mml:math></inline-formula> planes. Other methods such as used by <xref ref-type="bibr" rid="bib1.bibx43" id="text.17"/> have simplified the lengthy gain and loss integral terms by using the so-called “fixed-pivot” method pioneered by <xref ref-type="bibr" rid="bib1.bibx29" id="text.18"/> and later by <xref ref-type="bibr" rid="bib1.bibx30" id="text.19"/>. In this approach, particles are redistributed by conserving mass and number through a linear interpolation between bin edges and the newly generate particles from the gain terms.</p>
      <p id="d2e2055"><italic>Source-based spectral moment</italic> methods are perhaps the most conceptually simple to understand and implement. In these approaches such as detailed in  <xref ref-type="bibr" rid="bib1.bibx9 bib1.bibx10 bib1.bibx53 bib1.bibx60" id="text.20"/>, each bin-pair interaction (i.e., each pair of <inline-formula><mml:math id="M53" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M54" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> bin) and integral region are computed <italic>separately</italic> and then redistributed to the target distribution bins according to the gain integral regions for each target bin that map to the bin-pair interaction source region. These methods utilize Eulerian geometric mass grids as this ensures that the redistribution will always include a maximum of two bins: a <inline-formula><mml:math id="M55" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> bin and <inline-formula><mml:math id="M56" display="inline"><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> bin. By considering each source bin-pair interaction, mass conservation for each bin-pair interaction can be ensured unlike the first two methods. Various source-based models treat the <inline-formula><mml:math id="M57" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M58" display="inline"><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> bin partitioning differently. <xref ref-type="bibr" rid="bib1.bibx9" id="text.21"/> uses an advection or “flux” scheme whereby the total mass of the <inline-formula><mml:math id="M59" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M60" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> collection event are placed in the <inline-formula><mml:math id="M61" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> bin and a certain fraction of this total mass is then transferred to the <inline-formula><mml:math id="M62" display="inline"><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> bin by calculating a fractional parameter that is analogous to a weighted Courant number. The <xref ref-type="bibr" rid="bib1.bibx53" id="text.22"/> method is even simpler in that it approximates the collection kernel as a constant such that each source bin-pair interaction provides a fully closed set of ordinary differential equations in terms of the mass and number moments of the interacting distribution bins. A time-dependent linear distribution is then fit between the <inline-formula><mml:math id="M63" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M64" display="inline"><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> bins in order to partition the total mass and number between each gain bin.</p>
      <p id="d2e2178">The source-based method of the Bin Integral Method with Gauss Quadrature (BIMGQ) model by  <xref ref-type="bibr" rid="bib1.bibx60" id="text.23"/> provided a more rigorous and exact way to perform the <inline-formula><mml:math id="M65" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M66" display="inline"><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> bin partitioning compared to the linear flux method of <xref ref-type="bibr" rid="bib1.bibx9" id="text.24"/> and the improved version of <xref ref-type="bibr" rid="bib1.bibx10" id="text.25"/> as well as the linear discrete method of <xref ref-type="bibr" rid="bib1.bibx53" id="text.26"/>. <xref ref-type="bibr" rid="bib1.bibx60" id="text.27"/> found that the source bin-pair integral area regions can be calculated exactly through purely geometric considerations and a bilinear approximation of the collection kernel leads to theoretically polynomial terms for each source bin pair. In this way, the gain terms for the <inline-formula><mml:math id="M67" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> or <inline-formula><mml:math id="M68" display="inline"><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> bin are expressed in terms of the full <italic>source</italic> region defined by the <inline-formula><mml:math id="M69" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M70" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> bin interaction. Therefore, only the <inline-formula><mml:math id="M71" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> or <inline-formula><mml:math id="M72" display="inline"><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> integration calculation is needed as the other bin's calculation can be determined by subtracting the other bin's contribution from the total rectangular source region. In order to simplify these integration calculations, <xref ref-type="bibr" rid="bib1.bibx60" id="text.28"/> used a Gaussian quadrature routine which, with enough nodes, would yield the exact polynomial values. <xref ref-type="bibr" rid="bib1.bibx60" id="text.29"/> further uses the two predicted moments to diagnose a subgrid linear distribution using the inversion formulas of <xref ref-type="bibr" rid="bib1.bibx22" id="text.30"/>. Thus, the model evolves both total <inline-formula><mml:math id="M73" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> bin mass <inline-formula><mml:math id="M74" display="inline"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and number <inline-formula><mml:math id="M75" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> whereas <xref ref-type="bibr" rid="bib1.bibx9" id="text.31"/> and <xref ref-type="bibr" rid="bib1.bibx10" id="text.32"/> evolves the mass distribution function directly by transferring bin-pair interacting masses and then using this mass transfer to fit the new mass distribution function.</p>
      <p id="d2e2317">While classic Fortran-based collision-coalescence spectral bin solvers exist such as the TAU model <xref ref-type="bibr" rid="bib1.bibx23" id="paren.33"/> and the <xref ref-type="bibr" rid="bib1.bibx9 bib1.bibx10" id="text.34"/> scheme, there has recently been an adoption toward more accessible, modern languages. This transition toward modern accessibility is also reflected in 1D column models and coalescence-based microphysics solvers. For instance, Python-based packages such as LCM1D <xref ref-type="bibr" rid="bib1.bibx59" id="paren.35"/> and PySDM <xref ref-type="bibr" rid="bib1.bibx4" id="paren.36"/> use the <xref ref-type="bibr" rid="bib1.bibx52" id="text.37"/> Lagrangian super-droplet method to simulate coalescence. Similarly, Cloudy.jl from <xref ref-type="bibr" rid="bib1.bibx7" id="text.38"/> provides a Julia-based bulk microphysics scheme for simulating cloud microphysics and coalescence. Python-based packages such as the DustPy package from <xref ref-type="bibr" rid="bib1.bibx55" id="text.39"/> also simulate coagulation but for different disciplines such as astrophysics. For weather radar purposes, it is often not necessary to produce full 3D or 2D simulations when data is often displayed and analyzed in a time/height format such as for quasi-vertical profiles <xref ref-type="bibr" rid="bib1.bibx47" id="paren.40"/>, range-defined quasi vertical profiles <xref ref-type="bibr" rid="bib1.bibx57" id="paren.41"/>, columnar vertical profiles <xref ref-type="bibr" rid="bib1.bibx39" id="paren.42"/>, Path-columnar vertical profiles <xref ref-type="bibr" rid="bib1.bibx12" id="paren.43"/>. In these cases, it would be convenient for users to specify some initial distribution and then efficiently produce corresponding spectral distributions as well as microphysical and forward simulated radar variables representing mean vertical profiles. Thus, users could use such a simplified model to investigate plausible microphysical explanations for observed vertical radar profiles or for developing retrieval methods from such vertical profiles.</p>
      <p id="d2e2354">To this end, this paper details a new class-based Python package “BinMod1D” which provides an efficient and versatile spectral bin model along with useful plotting methods. The previous collision-coalescence and breakup methods discussed above often focus on a box model setup and only account for interactions within a single particle class. In contrast, BinMod1D can incorporate as many particle classes as desired as well as custom coalescence and breakup kernels and fragment distributions. Furthermore, the model can be run as a box model, a height-based steady-state model, or a full 1D time/height model. In particular, the steady-state versions of Eqs. (<xref ref-type="disp-formula" rid="Ch1.E1"/>) and (<xref ref-type="disp-formula" rid="Ch1.E2"/>) are functionally distinct from the box model and 1D column model in the sense that the tendency term is omitted. Therefore, the ability of BinMod1D to directly simulate steady-state vertical profiles drastically decreases the computational time compared to running the 1D column model to its steady state as done in several rainshaft studies <xref ref-type="bibr" rid="bib1.bibx44 bib1.bibx45 bib1.bibx31" id="paren.44"><named-content content-type="pre">e.g.,</named-content></xref>. The BinMod1D model is based upon the source-based approach of <xref ref-type="bibr" rid="bib1.bibx60" id="text.45"/> but with several computational optimizations. For example, the model heavily utilizes Numba <xref ref-type="bibr" rid="bib1.bibx32" id="paren.46"/> which automatically parallelizes calculations for computationally intensive model runs. The model can also be run using the 2-moment (mass and number) subgrid linear distribution approach of <xref ref-type="bibr" rid="bib1.bibx60" id="text.47"/> or as a 1-moment (mass only) subgrid uniform distribution approach. The BinMod1D methodology is described in more detail in Sect. <xref ref-type="sec" rid="Ch1.S2"/> along with the Python class architecture. Section <xref ref-type="sec" rid="Ch1.S3"/> provides several box model, steady-state, and column model results derived from Jupyter notebook examples available in the BinMod1D v1.0.10 repository <xref ref-type="bibr" rid="bib1.bibx19" id="paren.48"/>. Section <xref ref-type="sec" rid="Ch1.S4"/> performs a computation speed and accuracy test using a realistic meteorological scenario for both two-moment and one-moment calculations. Finally, Sect. <xref ref-type="sec" rid="Ch1.S5"/> discusses several potential uses of BinMod1D and likely future additions and improvements to the package.</p>

      <fig id="F1"><label>Figure 1</label><caption><p id="d2e2390">The spectral bin “method-of-moments” target-based integration regions from <xref ref-type="bibr" rid="bib1.bibx23" id="text.49"/> for: <bold>(a)</bold> collision-coalescence and <bold>(b)</bold> collisional breakup where <inline-formula><mml:math id="M76" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula>.</p></caption>
        <graphic xlink:href="https://gmd.copernicus.org/articles/19/7503/2026/gmd-19-7503-2026-f01.png"/>

      </fig>

</sec>
<sec id="Ch1.S2">
  <label>2</label><title>Methodology</title>
<sec id="Ch1.S2.SS1">
  <label>2.1</label><title>Numerical integration method</title>
      <p id="d2e2438">For a single distribution with bin <inline-formula><mml:math id="M77" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula>, the moment equations (Eq. <xref ref-type="disp-formula" rid="Ch1.E2"/>) can be cast in the following discrete form for moment order <inline-formula><mml:math id="M78" display="inline"><mml:mi>r</mml:mi></mml:math></inline-formula>:

            <disp-formula id="Ch1.E3" content-type="numbered"><label>3</label><mml:math id="M79" 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:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msubsup><mml:mi>M</mml:mi><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><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:mo>∂</mml:mo><mml:mfenced close="]" open="["><mml:mrow><mml:msubsup><mml:mi>S</mml:mi><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mfenced></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>z</mml:mi></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:msubsup><mml:mi>M</mml:mi><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></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:mi>v</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msubsup><mml:mi>M</mml:mi><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace linebreak="nobreak" width="1em"/><mml:mo>=</mml:mo><mml:munder><mml:mo movablelimits="false">∑</mml:mo><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:mrow></mml:munder><mml:msubsup><mml:mover accent="true"><mml:mi>C</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mrow><mml:mi mathvariant="normal">gain</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi></mml:mrow><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:munder><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mo>max⁡</mml:mo><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>k</mml:mi><mml:mo>→</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:munder><mml:msubsup><mml:mover accent="true"><mml:mi>B</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mrow><mml:mi mathvariant="normal">gain</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi></mml:mrow><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><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:mo>-</mml:mo><mml:munder><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>j</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:mi>k</mml:mi></mml:mrow></mml:munder><mml:msubsup><mml:mover accent="true"><mml:mi>D</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mrow><mml:mi mathvariant="normal">loss</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi></mml:mrow><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msubsup><mml:mi>I</mml:mi><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M80" display="inline"><mml:mrow><mml:msubsup><mml:mover accent="true"><mml:mi>D</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mrow><mml:mi mathvariant="normal">loss</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi></mml:mrow><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>≡</mml:mo><mml:msubsup><mml:mover accent="true"><mml:mi>C</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mrow><mml:mi mathvariant="normal">loss</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi></mml:mrow><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:msubsup><mml:mover accent="true"><mml:mi>B</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mrow><mml:mi mathvariant="normal">loss</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi></mml:mrow><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> are the combined bin moment losses from the <inline-formula><mml:math id="M81" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math></inline-formula> bin-pair interaction<fn id="Ch1.Footn1"><p id="d2e2923">Combining the coalescence and breakup losses like this only works because <inline-formula><mml:math id="M82" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M83" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are constants. Future work will allow for <inline-formula><mml:math id="M84" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M85" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> to be parameterized separately.</p></fn>, and the sedimentation shown as the second term on the left hand side of Eq. (<xref ref-type="disp-formula" rid="Ch1.E3"/>) is approximated using the bin mass midpoint fall speed value in order to achieve moment closure when solving the stochastic collection/breakup equation. The terms <inline-formula><mml:math id="M86" display="inline"><mml:mrow><mml:msubsup><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">gain</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi></mml:mrow><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M87" display="inline"><mml:mrow><mml:msubsup><mml:mi>B</mml:mi><mml:mrow><mml:mi mathvariant="normal">gain</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi></mml:mrow><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> are the gain terms for each <inline-formula><mml:math id="M88" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> bin moment <inline-formula><mml:math id="M89" display="inline"><mml:mrow><mml:msubsup><mml:mi>M</mml:mi><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> due to coalescence and breakup, respectively for <inline-formula><mml:math id="M90" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math></inline-formula> bin-pair. Each term on the right hand side represents a separate integral
          

                <disp-formula id="Ch1.E4" specific-use="gather" content-type="subnumberedsingle"><mml:math id="M91" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E4.5"><mml:mtd><mml:mtext>4a</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msubsup><mml:mover accent="true"><mml:mi>C</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mrow><mml:mi mathvariant="normal">gain</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi></mml:mrow><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><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:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:munder><mml:msup><mml:mi>x</mml:mi><mml:mi>r</mml:mi></mml:msup><mml:mi>C</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</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:msub><mml:mi>n</mml:mi><mml:mrow><mml:mi>x</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:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mrow><mml:mi>y</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:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E4.6"><mml:mtd><mml:mtext>4b</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msubsup><mml:mover accent="true"><mml:mi>B</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mrow><mml:mi mathvariant="normal">gain</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi></mml:mrow><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:munderover><mml:msup><mml:mi>m</mml:mi><mml:mi>r</mml:mi></mml:msup><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:mi>B</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</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:mi>P</mml:mi><mml:mo>(</mml:mo><mml:mi>m</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:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace linebreak="nobreak" width="1em"/><mml:msub><mml:mi>n</mml:mi><mml:mrow><mml:mi>x</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:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mrow><mml:mi>y</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:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>m</mml:mi><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi><mml:mi mathvariant="normal">d</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E4.7"><mml:mtd><mml:mtext>4c</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msubsup><mml:mover accent="true"><mml:mi>D</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mrow><mml:mi mathvariant="normal">loss</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi></mml:mrow><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:msup><mml:mi>x</mml:mi><mml:mi>r</mml:mi></mml:msup><mml:mfenced open="[" close="]"><mml:mrow><mml:mi>C</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</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>B</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</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:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace width="1em" linebreak="nobreak"/><mml:msub><mml:mi>n</mml:mi><mml:mrow><mml:mi>x</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:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mrow><mml:mi>y</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:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi><mml:mi mathvariant="normal">d</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

          where
          

                <disp-formula id="Ch1.E8" specific-use="gather" content-type="subnumberedsingle"><mml:math id="M92" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E8.9"><mml:mtd><mml:mtext>5a</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mi>C</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</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:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">col</mml:mi></mml:msub><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:mi>K</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</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:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E8.10"><mml:mtd><mml:mtext>5b</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi>B</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</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:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">col</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mi>K</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</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:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

          and <inline-formula><mml:math id="M93" display="inline"><mml:mrow><mml:mi>K</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</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:mrow></mml:math></inline-formula> is the collection kernel which dictates the physics of the <inline-formula><mml:math id="M94" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M95" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> interactions in the <inline-formula><mml:math id="M96" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>≤</mml:mo><mml:mi>x</mml:mi><mml:mo>≤</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M97" display="inline"><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>≤</mml:mo><mml:mi>y</mml:mi><mml:mo>≤</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> rectangular space for the <inline-formula><mml:math id="M98" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math></inline-formula> bin-pair. <inline-formula><mml:math id="M99" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> represents the region of the <inline-formula><mml:math id="M100" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math></inline-formula> bin-pair <inline-formula><mml:math id="M101" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> space that leads to a gain in bin <inline-formula><mml:math id="M102" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula>.</p>
      <p id="d2e3983">The awkward summation notation in Eq. (<xref ref-type="disp-formula" rid="Ch1.E3"/>) indicates the conditions under which <inline-formula><mml:math id="M103" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math></inline-formula> bin-pair interactions leads to a gain or loss in the <inline-formula><mml:math id="M104" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> bin. For the first term (coalescence), this means summing all <inline-formula><mml:math id="M105" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math></inline-formula> pairs where <inline-formula><mml:math id="M106" display="inline"><mml:mrow><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:mi>m</mml:mi></mml:mrow></mml:math></inline-formula> such that <inline-formula><mml:math id="M107" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>≤</mml:mo><mml:mi>m</mml:mi><mml:mo>≤</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>. For the second term (breakup) this means summing all <inline-formula><mml:math id="M108" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math></inline-formula> pairs where <inline-formula><mml:math id="M109" display="inline"><mml:mrow><mml:mi>k</mml:mi><mml:mo>≤</mml:mo><mml:mo>max⁡</mml:mo><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> such that the bin-pair interaction leads to a gain in the <inline-formula><mml:math id="M110" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> bin. For the third term (combined total loss), this means summing all <inline-formula><mml:math id="M111" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math></inline-formula> pairs that involve bin <inline-formula><mml:math id="M112" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula>. Note that cases of self-collection (i.e., collection of bins from the same distribution) necessarily requires the calculation of only one of these pairs. <inline-formula><mml:math id="M113" display="inline"><mml:mrow><mml:msubsup><mml:mi>I</mml:mi><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> therefore represents the full interaction of all <inline-formula><mml:math id="M114" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math></inline-formula> bin pairs that lead to moment changes in the <inline-formula><mml:math id="M115" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> bin. Therefore, BinMod1D solves one of the three following equations depending upon the user's chosen mode
          

                <disp-formula id="Ch1.E11" specific-use="gather" content-type="subnumberedsingle"><mml:math id="M116" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E11.12"><mml:mtd><mml:mtext>6a</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msubsup><mml:mi>M</mml:mi><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:msubsup><mml:mi>I</mml:mi><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:mtext>(Box Model)</mml:mtext></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E11.13"><mml:mtd><mml:mtext>6b</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>v</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msubsup><mml:mi>M</mml:mi><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:msubsup><mml:mi>I</mml:mi><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo><mml:mspace linebreak="nobreak" width="1em"/><mml:mtext>(Steady-state Model)</mml:mtext></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E11.14"><mml:mtd><mml:mtext>6c</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msubsup><mml:mi>M</mml:mi><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></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:mi>v</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msubsup><mml:mi>M</mml:mi><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:msubsup><mml:mi>I</mml:mi><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><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:mtext>(Full 1D Column Model)</mml:mtext><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

          for either <inline-formula><mml:math id="M117" display="inline"><mml:mrow><mml:mi>r</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> (mass; 1 moment) or <inline-formula><mml:math id="M118" display="inline"><mml:mrow><mml:mi>r</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M119" display="inline"><mml:mrow><mml:mi>r</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> (mass and number; 2 moments). These equations for  <inline-formula><mml:math id="M120" display="inline"><mml:mrow><mml:msubsup><mml:mi>M</mml:mi><mml:mi>k</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msubsup><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>≡</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> (1 moment) or <inline-formula><mml:math id="M121" display="inline"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M122" display="inline"><mml:mrow><mml:msubsup><mml:mi>M</mml:mi><mml:mi>k</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msubsup><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>≡</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> (2 moment) are numerically solved using an upwind advection scheme in height and a generalized Runge-Kutta method (with options of 1st to 4th order) in time. Adaptive time steps are also employed to ensure numerical stability where the target timstep is determined from either the <monospace>dt</monospace> parameter or, for the steady-state mode, the calculated residence time for each bin while solving <inline-formula><mml:math id="M123" display="inline"><mml:mrow><mml:msubsup><mml:mi>I</mml:mi><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. Generally these split time steps are not necessary and are not even used. However, these additional steps become necessary  in regimes with, for example, large numbers of particle interactions with aggressive breakup.</p>
      <p id="d2e4557">The main computational load and complexity of the BinMod1D package comes from using the <xref ref-type="bibr" rid="bib1.bibx60" id="text.50"/> approach to solve <inline-formula><mml:math id="M124" display="inline"><mml:mrow><mml:msubsup><mml:mi>I</mml:mi><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> for <inline-formula><mml:math id="M125" display="inline"><mml:mrow><mml:mi>r</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> (mass; one-moment prediction) or <inline-formula><mml:math id="M126" display="inline"><mml:mrow><mml:mi>r</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M127" display="inline"><mml:mrow><mml:mi>r</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> (mass and number; two-moment prediction). Figure <xref ref-type="fig" rid="F2"/> shows a schematic of the <xref ref-type="bibr" rid="bib1.bibx60" id="text.51"/> approach using example interactions for self-collection (<inline-formula><mml:math id="M128" display="inline"><mml:mrow><mml:mi>j</mml:mi><mml:mo>-</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math></inline-formula>) and cross-collection (<inline-formula><mml:math id="M129" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math></inline-formula>). For this schematic, it is assumed that a distribution with <inline-formula><mml:math id="M130" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> bins is interacting with a distribution of <inline-formula><mml:math id="M131" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> bins to produce particles that will be added to a distribution with <inline-formula><mml:math id="M132" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> bins. Each time/height step therefore calculates each combination of <inline-formula><mml:math id="M133" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M134" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> bin-pair interactions and transfers particles (i.e., total mass or total mass and number) from the <inline-formula><mml:math id="M135" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M136" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> bin to the <inline-formula><mml:math id="M137" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M138" display="inline"><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> bins of a target distribution. Here, distribution <inline-formula><mml:math id="M139" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M140" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> are assumed identical although the procedure works if <inline-formula><mml:math id="M141" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M142" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> are different. As in <xref ref-type="bibr" rid="bib1.bibx60" id="text.52"/> and other coagulation solvers, BinMod1D uses a geometric mass grid where bin edges are determined by

            <disp-formula id="Ch1.E15" content-type="numbered"><label>7</label><mml:math id="M143" display="block"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>≡</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:msup><mml:mn mathvariant="normal">2</mml:mn><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:mo>/</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:math></disp-formula>

          for <inline-formula><mml:math id="M144" 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:mn mathvariant="normal">2</mml:mn><mml:mo>,</mml:mo><mml:mn mathvariant="normal">3</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">bin</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> <xref ref-type="bibr" rid="bib1.bibx60" id="paren.53"><named-content content-type="pre">see Eq. 9 from</named-content></xref> and <inline-formula><mml:math id="M145" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in Eq. (<xref ref-type="disp-formula" rid="Ch1.E15"/>) is an integer resolution parameter which governs the number of bins per mass doubling. With the Eq. (<xref ref-type="disp-formula" rid="Ch1.E15"/>) mass grid, self-collection of an <inline-formula><mml:math id="M146" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M147" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> bin results in a gain to the <inline-formula><mml:math id="M148" display="inline"><mml:mrow><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> bin (green lines in Fig. <xref ref-type="fig" rid="F2"/>a). This can be seen by <inline-formula><mml:math id="M149" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>x</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>→</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M150" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>j</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>x</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>j</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>x</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> mappings (skewed green arrows). The gain integrals for cross-collection, in general, will cover two bins: <inline-formula><mml:math id="M151" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M152" display="inline"><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>. An example of cross-collection is shown by the rectangular red/purple region in Fig. <xref ref-type="fig" rid="F2"/>a. Here the <inline-formula><mml:math id="M153" display="inline"><mml:mrow><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> line which delineates the <inline-formula><mml:math id="M154" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M155" display="inline"><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> bins cuts directly through the rectangular source region defined by the <inline-formula><mml:math id="M156" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M157" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> bin interaction. As a result, the quadrilateral region that is above this line maps to the <inline-formula><mml:math id="M158" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> (red) bin whereas the quadrilateral region below this line maps to the <inline-formula><mml:math id="M159" display="inline"><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> (purple) bin. As shown by Fig. <xref ref-type="fig" rid="F2"/>b, these quadrilateral regions can be segmented into rectangular and triangular parts, each of which can be integrated separately. As stated in Sect. <xref ref-type="sec" rid="Ch1.S1"/>, only one of these quadrilateral regions needs to be calculated as the other one can be determined through continuity with the full rectangular region integration needed for computing the loss term for the <inline-formula><mml:math id="M160" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M161" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> bin interaction. While the projected integration region for the mass and number gain integrals cuts through both the <inline-formula><mml:math id="M162" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M163" display="inline"><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> bins, the values will be added to each respective bin in its entirely. This is shown schematically in Fig. <xref ref-type="fig" rid="F2"/> as “smearing” the total added amounts from the left bin edge to the right edge (shown here as red and purple colored transparencies).  Each integration region type is therefore treated separately and the general solution is to treat each <inline-formula><mml:math id="M164" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> or <inline-formula><mml:math id="M165" display="inline"><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> bin sub region as either a triangle, rectangle, or a triangle and a rectangle as in Fig. <xref ref-type="fig" rid="F2"/>b. As in <xref ref-type="bibr" rid="bib1.bibx60" id="text.54"/>, moment closure is ensured by performing a bilinear interpolation of the collision/coalescence kernel in the form: <inline-formula><mml:math id="M166" display="inline"><mml:mrow><mml:mi>K</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:mo>≡</mml:mo><mml:mi>a</mml:mi><mml:mo>+</mml:mo><mml:mi>b</mml:mi><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mi>c</mml:mi><mml:mi>y</mml:mi><mml:mo>+</mml:mo><mml:mi>d</mml:mi><mml:mi>x</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:math></inline-formula>, for each source bin-pair interaction. Notice that this form is slightly different than Eq. (22) in <xref ref-type="bibr" rid="bib1.bibx60" id="text.55"/> in order to elucidate the polynomial form of the bilinear collection kernel approximate in the integrand of each integral:

            <disp-formula id="Ch1.E16" content-type="numbered"><label>8</label><mml:math id="M167" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mi>K</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:mo>≈</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mn mathvariant="normal">00</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mn mathvariant="normal">10</mml:mn></mml:msub><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mn mathvariant="normal">01</mml:mn></mml:msub><mml:mi>y</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mn mathvariant="normal">11</mml:mn></mml:msub><mml:mi>x</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace width="1em" linebreak="nobreak"/><mml:mo>+</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mn mathvariant="normal">20</mml:mn></mml:msub><mml:msup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mn mathvariant="normal">21</mml:mn></mml:msub><mml:msup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mi>y</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mn mathvariant="normal">02</mml:mn></mml:msub><mml:msup><mml:mi>y</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mn mathvariant="normal">12</mml:mn></mml:msub><mml:mi>x</mml:mi><mml:msup><mml:mi>y</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mn mathvariant="normal">22</mml:mn></mml:msub><mml:msup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:msup><mml:mi>y</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          As can be seen from Eqs. (<xref ref-type="disp-formula" rid="Ch1.E4"/>) and (<xref ref-type="disp-formula" rid="Ch1.E8"/>), all integrals use the same collection kernel <inline-formula><mml:math id="M168" display="inline"><mml:mrow><mml:mi>K</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</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:mrow></mml:math></inline-formula> where  BinMod1D v1.0.10 considers only a single type of kernel (e.g., hydrodynamic) between each combination of distribution categories. Therefore, the four types of integrals that need to be solved for each term are
          

                <disp-formula id="Ch1.E17" specific-use="gather" content-type="subnumberedsingle"><mml:math id="M169" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E17.18"><mml:mtd><mml:mtext>9a</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:munder><mml:mi>K</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mspace linebreak="nobreak" width="1em"/><mml:mo>(</mml:mo><mml:mtext>number loss/gain</mml:mtext><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E17.19"><mml:mtd><mml:mtext>9b</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:munder><mml:mi>x</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi>K</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mspace width="1em" linebreak="nobreak"/><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mtext> mass loss</mml:mtext><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E17.20"><mml:mtd><mml:mtext>9c</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:munder><mml:mi>y</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi>K</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mspace width="1em" linebreak="nobreak"/><mml:mo>(</mml:mo><mml:mi>y</mml:mi><mml:mtext> mass loss</mml:mtext><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E17.21"><mml:mtd><mml:mtext>9d</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:munder><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi>K</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mspace width="1em" linebreak="nobreak"/><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mi>y</mml:mi><mml:mtext> mass gain</mml:mtext><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

          where <inline-formula><mml:math id="M170" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is either a rectangular region, a triangular region, or a polygonal region that can be split into a triangular and a rectangular region. Rectangular regions can simply be integrated directly into polynomials of one degree higher than in the integrand. However, the number of polynomials from analytical integration of the triangular regions increases geometrically with higher order integrand polynomials. For these triangular regions, the number of monomials for the mass gain integrals becomes very high. To simplify the calculations, the <xref ref-type="bibr" rid="bib1.bibx60" id="text.56"/> quadrature idea is used to calculate these triangular region integrals using the 7-point Dunavant rule <xref ref-type="bibr" rid="bib1.bibx18" id="paren.57"/> to determine weights and locations for the quadrature rule. The 7-point rule is used here specifically because this rule produces exact values for triangular region integrations with polynomial integrands up to order 5 which is the maximum possible order for subgrid linear distributions of BinMod1D 2-moment scheme.</p>
      <p id="d2e5703">The <xref ref-type="bibr" rid="bib1.bibx60" id="text.58"/> method described above pertains to coalescence only. However, the same general source-based method can be extended to include collisional breakup as well. This new method for collisional breakup is shown schematically in  Fig. <xref ref-type="fig" rid="F3"/> for an example <inline-formula><mml:math id="M171" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M172" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> bin-pair interaction. The BinMod1D model first calculates the total breakup mass (1 moment) or mass and number (2 moments) for the <inline-formula><mml:math id="M173" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math></inline-formula> interaction using Eq. (<xref ref-type="disp-formula" rid="Ch1.E4.7"/>). Then, the conditional fragment distribution <inline-formula><mml:math id="M174" display="inline"><mml:mrow><mml:mi>P</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>|</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is determined by taking the assumed fragment distribution form <inline-formula><mml:math id="M175" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and scaling this distribution by ensuring mass continuity with the total mass integral from the full rectangular <inline-formula><mml:math id="M176" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math></inline-formula> region (i.e., <inline-formula><mml:math id="M177" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi mathvariant="normal">f</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mi mathvariant="normal">b</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>). Then, the total mass (or mass and number) are binned by integrating each <inline-formula><mml:math id="M178" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> bin from <inline-formula><mml:math id="M179" display="inline"><mml:mrow><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> to <inline-formula><mml:math id="M180" display="inline"><mml:mrow><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mo>max⁡</mml:mo><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula><fn id="Ch1.Footn2"><p id="d2e5877">The formulation of the stochastic breakup equation used in target-based spectral moment approaches such as <xref ref-type="bibr" rid="bib1.bibx23" id="text.59"/> actually considers the fragment distribution to span from <inline-formula><mml:math id="M181" display="inline"><mml:mrow><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> to <inline-formula><mml:math id="M182" display="inline"><mml:mrow><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:math></inline-formula> as shown in Eqs. (<xref ref-type="disp-formula" rid="Ch1.E1"/>) and (<xref ref-type="disp-formula" rid="Ch1.E2"/>). The physical intuition behind these bounds stems from the logic that a fragment cannot be greater than the combined mass of the two interacting species. This upper bound could be plausible if coalescence and breakup are conceptually and mathematically thought of as mutually independent processes (i.e., coalesced particles can then break up in the same time step). However, because BinMod1D considers coalescence and breakup to be mutually exclusive events within a timestep, the maximum bin is instead taken to be the maximum bin of the <inline-formula><mml:math id="M183" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math></inline-formula> pair. The <inline-formula><mml:math id="M184" display="inline"><mml:mrow><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:math></inline-formula> assumption is therefore used in the idealistic kernels in order to compare the BinMod1D results with the analytical breakup and steady-state coalescence-breakup solutions of <xref ref-type="bibr" rid="bib1.bibx23" id="text.60"/> in Sect. <xref ref-type="sec" rid="Ch1.S3.SS1"/>.</p></fn>. This is shown schematically as partitioning the full rectangular integration region into <inline-formula><mml:math id="M185" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> rectangular subregions, each of which represents the integrated amounts added to each <inline-formula><mml:math id="M186" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> bin for the <inline-formula><mml:math id="M187" display="inline"><mml:mrow><mml:mi>j</mml:mi><mml:mo>-</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:math></inline-formula> bin interaction. Users can specify various fragment distributions by either using examples from the <monospace>habits.py</monospace> module or by specifying the fragment dictionaries themselves. These integrations are computed beforehand for a fixed fragment distribution form.</p>

      <fig id="F2"><label>Figure 2</label><caption><p id="d2e5983">The source-based spectral bin model of <xref ref-type="bibr" rid="bib1.bibx60" id="text.61"/> (cf. their Fig. 2) using <inline-formula><mml:math id="M188" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> resolution. <bold>(a)</bold> Shows an example of the self-collection square integration region and target mapping (<inline-formula><mml:math id="M189" display="inline"><mml:mrow><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math></inline-formula>; green), whereas the rectangular region <bold>(b)</bold> illustrates cross-collection (<inline-formula><mml:math id="M190" 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 geometry in <bold>(b)</bold> illustrates how the integration is handled exactly by splitting the integrals into rectangles and triangles that are used to segregate the target amounts in <inline-formula><mml:math id="M191" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M192" display="inline"><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> bins <xref ref-type="bibr" rid="bib1.bibx60" id="paren.62"><named-content content-type="pre">see Fig. 4 from</named-content></xref>.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/7503/2026/gmd-19-7503-2026-f02.png"/>

        </fig>

      <fig id="F3"><label>Figure 3</label><caption><p id="d2e6070">The collisional breakup methodology of BinMod1D. Each collision event between <inline-formula><mml:math id="M193" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M194" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> bins represents a rectangular integration space from which the total mass is determined. The total mass is binned following the <inline-formula><mml:math id="M195" display="inline"><mml:mrow><mml:mi>P</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>|</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> conditional distribution (dashed green line) and then rescaled by ensuring mass continuity of the entire rectangular integral region. Schematically, this can be thought of as breaking the source bin-pair interaction integration region into <inline-formula><mml:math id="M196" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> pieces (see inset) which are then normalized by the total mass, binned, and added to the <inline-formula><mml:math id="M197" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> distribution (here shown to be identical to the <inline-formula><mml:math id="M198" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> distribution).</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/7503/2026/gmd-19-7503-2026-f03.png"/>

        </fig>

      <p id="d2e6137">BinMod1D diagnoses each distribution's linear subgrid distribution set of parameters after each time/height step when <inline-formula><mml:math id="M199" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and/or <inline-formula><mml:math id="M200" display="inline"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> evolves. This form is given as
          

                <disp-formula id="Ch1.E22" specific-use="gather" content-type="subnumberedsingle"><mml:math id="M201" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E22.23"><mml:mtd><mml:mtext>10a</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>a</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:mtext>2-moment</mml:mtext></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E22.24"><mml:mtd><mml:mtext>10b</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mspace linebreak="nobreak" width="1em"/><mml:mtext>1-moment.</mml:mtext></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

          where the Eq. (<xref ref-type="disp-formula" rid="Ch1.E22.23"/>) formulas for <inline-formula><mml:math id="M202" display="inline"><mml:mrow><mml:msub><mml:mi>a</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M203" display="inline"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> can be derived from equations 15 through 20 in <xref ref-type="bibr" rid="bib1.bibx60" id="text.63"/>. Each bin therefore has four separate parameters that govern the subgrid linear distribution function: <inline-formula><mml:math id="M204" display="inline"><mml:mrow><mml:msub><mml:mi>a</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M205" display="inline"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M206" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M207" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>. Note that when  <monospace>moments=1</monospace>, a subgrid uniform distribution across each bin is used such that these parameters are diagnosed as: <inline-formula><mml:math id="M208" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>k</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>x</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M209" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M210" display="inline"><mml:mrow><mml:msub><mml:mi>a</mml:mi><mml:mi>k</mml:mi></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="M211" display="inline"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>M</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:mo>(</mml:mo><mml:msubsup><mml:mi>x</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mi>x</mml:mi><mml:mi>k</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M212" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M213" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the bin midpoint mass.</p>
      <p id="d2e6474">To simplify the calculations, each <inline-formula><mml:math id="M214" display="inline"><mml:mrow><mml:msubsup><mml:mi>I</mml:mi><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> term is computed <italic>separately</italic> and then recombined for each <inline-formula><mml:math id="M215" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> bin for each distribution. This is because each <inline-formula><mml:math id="M216" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math></inline-formula> interaction will generate gains in multiple, scattered bins. To perform these calculations, BinMod1D first flattens all arrays needed for each bin-pair interaction such that each bin-pair interaction has a <italic>unique</italic> set of integration values and destination bin indices. Then, BinMod1D efficiently utilizes “just-in-time” (JIT) compilation using the Numba Python package to perform the interaction integration calculations <italic>in parallel for all bin-pair interactions at all heights at once</italic>. This leads to BinMod1D effectively using machine code to loop through each possible bin-pair interaction even when utilizing multiple distributions in the full 1D column model mode for all heights at once. For coalescence, the loss and gain transfer calculations are performed for each bin-pair interaction first using Numba-compiled loops and are stored in arrays with the length of the total number of bin pairs. The transfer of the calculation from the <inline-formula><mml:math id="M217" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math></inline-formula> source space to the <inline-formula><mml:math id="M218" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M219" display="inline"><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> target space (Fig. <xref ref-type="fig" rid="F2"/>) is performed through scattered addition using the Numpy add.at method after all integration calculations are performed and stored. Collisional breakup, on the other hand, uses additional Numba-compiled loops after the breakup gain amounts are calculated to transfer the breakup fraction of the total <inline-formula><mml:math id="M220" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math></inline-formula> bin-pair source loss to each <inline-formula><mml:math id="M221" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> target bin (see Fig. <xref ref-type="fig" rid="F3"/>) in the breakup distribution. Multidimensional temporary arrays are used to prevent race conditions during this transfer process where the Numba thread number, heights, and bins represent a three dimensional buffer array from which the transfer sequentially adds to each bin and height in the fragment distribution index for <inline-formula><mml:math id="M222" display="inline"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (and <inline-formula><mml:math id="M223" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> if 2 moments are used). Several core BinMod1D components, including the parallelizable interaction kernel computations, were algorithmically streamlined using Google Gemini Pro as a code-refinement tool to ensure maximum computational speed in standard Python environments. </p>
</sec>
<sec id="Ch1.S2.SS2">
  <label>2.2</label><title>BinMod1D class architecture and workflow</title>
      <p id="d2e6605">Comprehensive documentation and step-by-step tutorials that cover BinMod1D model initialization, parameter specification, customization, and more are provided in the software documentation <xref ref-type="bibr" rid="bib1.bibx20" id="paren.64"/>. This section provides only a technical overview of the BinMod1D methodology and classes.</p>
      <p id="d2e6611">Regardless of how the model is run, the general workflow is the same. Users first initialize a <monospace>spectral_1d</monospace> object with a set of input parameters that govern the initial distribution, habit parameters, processes included, and model mode. Each <monospace>spectral_1d</monospace> object represents a separate model instance of BinMod1D where the object performs several tasks: <list list-type="order"><list-item>
      <p id="d2e6622">It uses the user's prescribed number of distributions and other input parameters and initializes an object of the <monospace>Interaction</monospace> class which is used to determine the bin-pair interactions when the <monospace>run</monospace> method is called. If <monospace>moments=1</monospace> is specified, then bin-pair interactions for collision-coalescence is precalculated whereas <monospace>moments=2</monospace> bin interaction calculations are computed during model runtime.</p></list-item><list-item>
      <p id="d2e6638">It runs the BinMod1D model with the <monospace>run</monospace> method which runs the model as a box model, a steady-state model, or a full 1D (time/height) model with either one or two predicted moments for each bin. The run mode selection depends upon the prescribed inputs for parameters <inline-formula><mml:math id="M224" display="inline"><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M225" display="inline"><mml:mrow><mml:msub><mml:mi>z</mml:mi><mml:mi mathvariant="normal">bot</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M226" display="inline"><mml:mrow><mml:msub><mml:mi>z</mml:mi><mml:mi mathvariant="normal">top</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. If <inline-formula><mml:math id="M227" display="inline"><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mo>max⁡</mml:mo></mml:msub><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M228" display="inline"><mml:mrow><mml:msub><mml:mi>z</mml:mi><mml:mi mathvariant="normal">bot</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mi mathvariant="normal">top</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> then the box model is run, if <inline-formula><mml:math id="M229" display="inline"><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mo>max⁡</mml:mo></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="M230" display="inline"><mml:mrow><mml:msub><mml:mi>z</mml:mi><mml:mi mathvariant="normal">bot</mml:mi></mml:msub><mml:mo>&lt;</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mi mathvariant="normal">top</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> then the steady-state model is run, and if <inline-formula><mml:math id="M231" display="inline"><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mo>max⁡</mml:mo></mml:msub><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M232" display="inline"><mml:mrow><mml:msub><mml:mi>z</mml:mi><mml:mi mathvariant="normal">bot</mml:mi></mml:msub><mml:mo>&lt;</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mi mathvariant="normal">top</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> then the full 1D model is run.</p></list-item><list-item>
      <p id="d2e6778">It stores each distribution's <inline-formula><mml:math id="M233" display="inline"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> or (<inline-formula><mml:math id="M234" display="inline"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M235" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) value in a 4D array where the array is indexed by distribution, height, bins, and output time.</p></list-item><list-item>
      <p id="d2e6815">It plots the model results using methods that start with <monospace>plot_</monospace> (e.g., <monospace>spectral_1d.plot_dists()</monospace>).</p></list-item><list-item>
      <p id="d2e6825">It writes model output after the <monospace>run</monospace> method is called to a netcdf file with the <monospace>write_netcdf</monospace> method.</p></list-item></list></p>
      <p id="d2e6834">Users can initialize the particle size distribution(s) using one of six different methods using the <monospace>spectral_1d</monospace> input <monospace>init_method</monospace>: <list list-type="order"><list-item>
      <p id="d2e6845"><monospace>init_method = 'gamma'</monospace>: The initial distribution is a gamma distribution with parameters specified by the user as additional arguments in <monospace>spectral_1d</monospace>.</p></list-item><list-item>
      <p id="d2e6854"><monospace>init_method = 'analytical'</monospace>:</p>
      <p id="d2e6859">The initial distribution is defined using a custom Python lambda function.</p></list-item><list-item>
      <p id="d2e6863"><monospace>init_method = 'empirical'</monospace>:</p>
      <p id="d2e6868">The initial distribution is prescribed using edges and number distribution function value evaluated at the prescribed bin midpoints.</p></list-item><list-item>
      <p id="d2e6872"><monospace>init_method = 'empirical_counts'</monospace>:</p>
      <p id="d2e6877">As in <monospace>init_method = 'empirical'</monospace> but where users prescribe bin counts rather than number distribution function values.</p></list-item><list-item>
      <p id="d2e6884"><monospace>init_method = 'direct'</monospace>:</p>
      <p id="d2e6889">The user directly prescribes the bin masses (<inline-formula><mml:math id="M236" display="inline"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi mathvariant="normal">bins</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) and/or bin numbers (<inline-formula><mml:math id="M237" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">bins</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) along with bin edges.</p></list-item><list-item>
      <p id="d2e6915"><monospace>empty</monospace>:</p>
      <p id="d2e6920">The initial distribution is initialized with no bin mass or number amounts.</p></list-item></list></p>
      <p id="d2e6923">When <monospace>spectral_1d</monospace> is first initialized, an initial distribution using the <monospace>dist</monospace> class is binned according to the user's input parameter specifications. If users use the input  <monospace>init_method = 'gamma'</monospace> (default), then the initial binned distribution is calculated from a gamma distribution of the form

            <disp-formula id="Ch1.E25" content-type="numbered"><label>11</label><mml:math id="M238" display="block"><mml:mrow><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>D</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1000</mml:mn><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Γ</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mn mathvariant="normal">4</mml:mn><mml:msup><mml:mo>)</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:msup><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>D</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mi>exp⁡</mml:mi><mml:mfenced close="]" open="["><mml:mrow><mml:mo>-</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mn mathvariant="normal">4</mml:mn><mml:mo>)</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>D</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M239" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>D</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> has units of <inline-formula><mml:math id="M240" display="inline"><mml:mrow><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> mm<sup>−1</sup> with a full initial number concentration <inline-formula><mml:math id="M242" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> in <inline-formula><mml:math id="M243" display="inline"><mml:mrow><mml:msup><mml:mi>L</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>, full mean volume diameter <inline-formula><mml:math id="M244" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in mm, and shape parameter <inline-formula><mml:math id="M245" display="inline"><mml:mi mathvariant="italic">μ</mml:mi></mml:math></inline-formula>. Note the prescribed <inline-formula><mml:math id="M246" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M247" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> values represent values that are valid for the full distribution from <inline-formula><mml:math id="M248" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">∞</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> whereas the total binned values for <inline-formula><mml:math id="M249" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi>t</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M250" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> will depend upon the bin resolution <inline-formula><mml:math id="M251" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and the minimum and maximum bin masses (sizes). Users who instead prefer the gamma distribution form

            <disp-formula id="Ch1.E26" content-type="numbered"><label>12</label><mml:math id="M252" display="block"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>D</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:msup><mml:mi>D</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:msup><mml:mi>exp⁡</mml:mi><mml:mo>(</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="normal">Λ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mi>D</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula>

          can diagnose the <monospace>spectral_1d</monospace> parameters with the equations
          

                <disp-formula id="Ch1.E27" specific-use="gather" content-type="subnumberedsingle"><mml:math id="M253" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E27.28"><mml:mtd><mml:mtext>13a</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E27.29"><mml:mtd><mml:mtext>13b</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="normal">Λ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E27.30"><mml:mtd><mml:mtext>13c</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">Γ</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:msup><mml:mi mathvariant="normal">Λ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

          where <inline-formula><mml:math id="M254" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">Λ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> has units of <inline-formula><mml:math id="M255" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="normal">mm</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="M256" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> has units of <inline-formula><mml:math id="M257" display="inline"><mml:mrow><mml:mi mathvariant="normal">m</mml:mi><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">mm</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>. The <monospace>gam_norm</monospace> parameter determines if instead the initial gamma distribution is normalized to have a total mass concentration of unity. Thus, when <monospace>gam_norm=True</monospace> the form of the initial gamma distribution is instead with respect to mass <inline-formula><mml:math id="M258" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> and normalized as

            <disp-formula id="Ch1.E31" content-type="numbered"><label>14</label><mml:math id="M259" display="block"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>n</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo><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>t</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Γ</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">ν</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mover accent="true"><mml:mi>m</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover></mml:mfrac></mml:mstyle><mml:msubsup><mml:mi mathvariant="italic">ν</mml:mi><mml:mn mathvariant="normal">0</mml:mn><mml:mrow><mml:msub><mml:mi mathvariant="italic">ν</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:msubsup><mml:msup><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>m</mml:mi><mml:mover accent="true"><mml:mi>m</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi mathvariant="italic">ν</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mi>exp⁡</mml:mi><mml:mfenced open="[" close="]"><mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">ν</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>m</mml:mi><mml:mover accent="true"><mml:mi>m</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M260" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ν</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>. Equation (<xref ref-type="disp-formula" rid="Ch1.E25"/>) is generally used in practice but Eq. (<xref ref-type="disp-formula" rid="Ch1.E31"/>) is often used when comparing numerical results to known analytical solutions of the stochastic collection equation (see Sect. <xref ref-type="sec" rid="Ch1.S3.SS1"/> and the BM1D_analytical_examples.ipynb Jupyter notebook for example). When Eq. (<xref ref-type="disp-formula" rid="Ch1.E31"/>) is used for <monospace>gam_norm=True</monospace>, users will specify the <inline-formula><mml:math id="M261" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M262" display="inline"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M263" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M264" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> parameters with <monospace>dist_var="mass"</monospace> (where <inline-formula><mml:math id="M265" display="inline"><mml:mrow><mml:mover accent="true"><mml:mi>m</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mo>≡</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>) whereas when Eq. (<xref ref-type="disp-formula" rid="Ch1.E25"/>) is used for <monospace>gam_norm=False</monospace> users will specify <inline-formula><mml:math id="M266" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M267" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M268" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M269" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> parameters along with  <monospace>dist_var="size"</monospace>. Alternatively, users can directly specify <inline-formula><mml:math id="M270" display="inline"><mml:mover accent="true"><mml:mi>m</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover></mml:math></inline-formula> with the <monospace>mbar0</monospace> input parameter. The <inline-formula><mml:math id="M271" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>  (<inline-formula><mml:math id="M272" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>) parameter determines the minimum left hand bin edge size (mass) used for the first bin when specifying <monospace>dist_var="size"</monospace> (<monospace>dist_var="mass"</monospace>).</p>
      <p id="d2e7872">Users can specify the number and type of distributions used in <monospace>spectral_1d</monospace> by adding subsequent distributions to the list in the <monospace>habit_params</monospace> input parameter (e.g., <monospace>habit_params=["snow","fragments"]</monospace>). The length of <monospace>habit_params</monospace> determines the number of separate distributions that are solved where the names refer to the particle microphysical parameters in <monospace>habits.py</monospace> that are used for each distribution. The <monospace>spectral_1d</monospace> input parameter <monospace>kernel</monospace> determines the type of interaction kernel (i.e., <inline-formula><mml:math id="M273" display="inline"><mml:mrow><mml:mi>K</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>) with the <monospace>kernel</monospace> input (e.g., <monospace>kernel="Hydro"</monospace>, for the hydrodynamic or gravitational kernel). Users can explicitly set the <monospace>cc_dest</monospace> and <monospace>br_dest</monospace> input parameters when more than one distribution is specified. Here, <monospace>cc_dest</monospace> and <monospace>br_dest</monospace> determine the distribution (i.e., category) destination of coalesced and breakup bin-pair interactions, respectively where integer values are given from <monospace>1</monospace> to <monospace>len(habit_params)</monospace>. For example, a two-category BinMod1D simulation where the first distribution represents a primary category such as ice crystals and the second category represents snow aggregates can be initialized with <monospace>cc_dest=2</monospace> and <monospace>habit_params=["snow","snow"]</monospace>. Similarly, a two-category BinMod1D simulation with snow (and its aggregates) as one category and breakup fragments as the second category can be specified with <monospace>cc_dest=1</monospace>, <monospace>br_dest=2</monospace>, and <monospace>habit_params=["snow","fragments"]</monospace>. Only one distribution/category is used when <monospace>cc_dest</monospace>= <monospace>br_dest</monospace>=1 (the default behavior). Collision (<inline-formula><mml:math id="M274" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">col</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>), coalescence (<inline-formula><mml:math id="M275" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) and breakup (<inline-formula><mml:math id="M276" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) efficiencies are treated as constants that can be passed into <monospace>spectral_1d</monospace> directly (e.g., <monospace>spectral_1d(Ecol=1.0,Es=0.5,Eb=0.5)</monospace>). Here, the total collision-coalescence efficiency is given by <inline-formula><mml:math id="M277" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>C</mml:mi><mml:mi>C</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">col</mml:mi></mml:msub><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> whereas the total breakup efficiency <inline-formula><mml:math id="M278" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">BR</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is determined by: <inline-formula><mml:math id="M279" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">BR</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">col</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. In this way, <inline-formula><mml:math id="M280" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> represents the fraction of collisions that occur that do not coalesce but do break up. Therefore, <inline-formula><mml:math id="M281" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1.0</mml:mn></mml:mrow></mml:math></inline-formula> indicates the impossibility of rebounding whereas <inline-formula><mml:math id="M282" display="inline"><mml:mrow><mml:mn mathvariant="normal">0</mml:mn><mml:mo>&lt;</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> indicates a combination of breakup and rebounding.</p>
      <p id="d2e8121">Finally, users can also programatically save their <monospace>spectral_1d</monospace> model runs using the <monospace>write_netcdf</monospace> method. This method saves the 4D mass and number bins for all distributions, heights, and times as well as model attributes. Users can also load back these model runs by initializing <monospace>spectral_1d</monospace> with the <monospace>load</monospace> input parameter.</p>
</sec>
<sec id="Ch1.S2.SS3">
  <label>2.3</label><title>Radar forward operator</title>
      <p id="d2e8144">BinMod1D v1.0.10 calculates radar reflectivity (<inline-formula><mml:math id="M283" display="inline"><mml:mi>Z</mml:mi></mml:math></inline-formula>), differential reflectivity (<inline-formula><mml:math id="M284" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">DR</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>), specific differential phase (<inline-formula><mml:math id="M285" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">dp</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>), and correlation coefficient (<inline-formula><mml:math id="M286" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">hv</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>). Radar calculations for each bin as well as for the entire distribution are calculated when <monospace>radar=True</monospace> for a <monospace>spectral_1d</monospace> object or when the <monospace>calc_radar</monospace> method is called. These polarimetric radar calculations follow the Rayleigh formulas from <xref ref-type="bibr" rid="bib1.bibx46" id="text.65"/> for rain and dry snow modeled as homogeneous soft spheroids. Scattering amplitudes are calculated at each bin edge with the formula <xref ref-type="bibr" rid="bib1.bibx46" id="paren.66"><named-content content-type="pre">cf. Eq. 22 from</named-content></xref>

            <disp-formula id="Ch1.E32" content-type="numbered"><label>15</label><mml:math id="M287" display="block"><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mo>,</mml:mo><mml:mi>b</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mi mathvariant="italic">π</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:msubsup><mml:mi>D</mml:mi><mml:mi>i</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup></mml:mrow><mml:mrow><mml:mn mathvariant="normal">6</mml:mn><mml:msup><mml:mi mathvariant="italic">λ</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:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:msubsup><mml:mi>L</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mo>,</mml:mo><mml:mi>b</mml:mi></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M288" display="inline"><mml:mi mathvariant="italic">λ</mml:mi></mml:math></inline-formula> is the radar wavelength (defaulted to S band with <inline-formula><mml:math id="M289" display="inline"><mml:mrow><mml:mi mathvariant="italic">λ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">110</mml:mn><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">mm</mml:mi></mml:mrow></mml:math></inline-formula>), <inline-formula><mml:math id="M290" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the equivolume diameter at bin edge <inline-formula><mml:math id="M291" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M292" display="inline"><mml:mrow><mml:msubsup><mml:mi>L</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mo>,</mml:mo><mml:mi>b</mml:mi></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula> is the spheroidal shape factor at bin edge <inline-formula><mml:math id="M293" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> determined by the aspect ratio at <inline-formula><mml:math id="M294" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula>, and <inline-formula><mml:math id="M295" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the dieletric constant for bin edge <inline-formula><mml:math id="M296" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula>. Indices <inline-formula><mml:math id="M297" display="inline"><mml:mi>a</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M298" display="inline"><mml:mi>b</mml:mi></mml:math></inline-formula> refer to the radar scattering along the particle's major (<inline-formula><mml:math id="M299" display="inline"><mml:mi>a</mml:mi></mml:math></inline-formula>) and minor (<inline-formula><mml:math id="M300" display="inline"><mml:mi>b</mml:mi></mml:math></inline-formula>) axes, respectively. Angular moments for a two-dimensional axisymetric Gaussian orientation distribution (<inline-formula><mml:math id="M301" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> through <inline-formula><mml:math id="M302" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mn mathvariant="normal">7</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>) are used along with these scattering amplitudes to calculate radar contributions for each bin edge with the formulas
          

                <disp-formula id="Ch1.E33" specific-use="gather" content-type="subnumberedsingle"><mml:math id="M303" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E33.34"><mml:mtd><mml:mtext>16a</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi>g</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">h</mml:mi></mml:msub></mml:mrow></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mn mathvariant="normal">4</mml:mn><mml:msup><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msup></mml:mrow><mml:mrow><mml:msup><mml:mi mathvariant="italic">π</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msup><mml:mo>|</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">w</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:mfenced open="{" close=""><mml:mrow><mml:msup><mml:mfenced open="|" close="|"><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>a</mml:mi></mml:msubsup></mml:mrow></mml:mfenced><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>A</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi mathvariant="normal">Re</mml:mi><mml:mfenced open="[" close="]"><mml:mrow><mml:msup><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>a</mml:mi></mml:msubsup><mml:mo>∗</mml:mo></mml:msup><mml:mfenced open="(" close=")"><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>a</mml:mi></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>b</mml:mi></mml:msubsup></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mfenced open="" close="}"><mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub><mml:msup><mml:mfenced close="|" open="|"><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>a</mml:mi></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>b</mml:mi></mml:msubsup></mml:mrow></mml:mfenced><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E33.35"><mml:mtd><mml:mtext>16b</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi>g</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub></mml:mrow></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mn mathvariant="normal">4</mml:mn><mml:msup><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msup></mml:mrow><mml:mrow><mml:msup><mml:mi mathvariant="italic">π</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msup><mml:mo>|</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">w</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:mfenced close="" open="{"><mml:mrow><mml:msup><mml:mfenced close="|" open="|"><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>a</mml:mi></mml:msubsup></mml:mrow></mml:mfenced><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>A</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mi mathvariant="normal">Re</mml:mi><mml:mfenced close="]" open="["><mml:mrow><mml:msup><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>a</mml:mi></mml:msubsup><mml:mo>∗</mml:mo></mml:msup><mml:mfenced open="(" close=")"><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>a</mml:mi></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>b</mml:mi></mml:msubsup></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mfenced open="" close="}"><mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:msup><mml:mfenced close="|" open="|"><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>a</mml:mi></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>b</mml:mi></mml:msubsup></mml:mrow></mml:mfenced><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E33.36"><mml:mtd><mml:mtext>16c</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msubsup><mml:mi>g</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">dp</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mn mathvariant="normal">0.18</mml:mn><mml:mi mathvariant="italic">λ</mml:mi></mml:mrow><mml:mi mathvariant="italic">π</mml:mi></mml:mfrac></mml:mstyle><mml:msub><mml:mi>A</mml:mi><mml:mn mathvariant="normal">7</mml:mn></mml:msub><mml:mi mathvariant="normal">Re</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>a</mml:mi></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>b</mml:mi></mml:msubsup></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E33.37"><mml:mtd><mml:mtext>16d</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi>g</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">hhvv</mml:mi></mml:msub></mml:mrow></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mn mathvariant="normal">4</mml:mn><mml:msup><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msup></mml:mrow><mml:mrow><mml:msup><mml:mi mathvariant="italic">π</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msup><mml:mo>|</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">w</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:mfenced close="" open="["><mml:mrow><mml:msup><mml:mfenced close="|" open="|"><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>a</mml:mi></mml:msubsup></mml:mrow></mml:mfenced><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mn mathvariant="normal">5</mml:mn></mml:msub><mml:msup><mml:mfenced close="|" open="|"><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>a</mml:mi></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>b</mml:mi></mml:msubsup></mml:mrow></mml:mfenced><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mfenced close="]" open=""><mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:msup><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>a</mml:mi></mml:msubsup><mml:mo>∗</mml:mo></mml:msup><mml:mfenced open="(" close=")"><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>a</mml:mi></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>b</mml:mi></mml:msubsup></mml:mrow></mml:mfenced><mml:mo>-</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>a</mml:mi></mml:msubsup><mml:mfenced close=")" open="("><mml:mrow><mml:msup><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>a</mml:mi></mml:msubsup><mml:mo>∗</mml:mo></mml:msup><mml:mo>-</mml:mo><mml:msup><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>b</mml:mi></mml:msubsup><mml:mo>∗</mml:mo></mml:msup></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

          where <inline-formula><mml:math id="M304" display="inline"><mml:mo>∗</mml:mo></mml:math></inline-formula> denotes a complex conjugate and <inline-formula><mml:math id="M305" display="inline"><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub><mml:msup><mml:mo>|</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.93</mml:mn></mml:mrow></mml:math></inline-formula> is a dielectric constant for liquid water. Here, an assumed, fixed standard deviation of angles (<inline-formula><mml:math id="M306" display="inline"><mml:mi mathvariant="italic">σ</mml:mi></mml:math></inline-formula>) is used to calculate each angular moment according to the equations in <xref ref-type="bibr" rid="bib1.bibx46" id="text.67"/>. Each habit therefore can be assigned a separate <inline-formula><mml:math id="M307" display="inline"><mml:mi mathvariant="italic">σ</mml:mi></mml:math></inline-formula> value in its <monospace>habit_params</monospace> dictionary. The left and right bin edge values of each <inline-formula><mml:math id="M308" display="inline"><mml:mi>g</mml:mi></mml:math></inline-formula> parameter are then used to determine a linear approximation from <inline-formula><mml:math id="M309" display="inline"><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> to <inline-formula><mml:math id="M310" display="inline"><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> in the form: <inline-formula><mml:math id="M311" display="inline"><mml:mrow><mml:msubsup><mml:mi>g</mml:mi><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msubsup><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>a</mml:mi><mml:mi>g</mml:mi></mml:msub><mml:mi>m</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mi>g</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, where
          

                <disp-formula id="Ch1.E38" specific-use="gather" content-type="subnumberedsingle"><mml:math id="M312" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E38.39"><mml:mtd><mml:mtext>17a</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msubsup><mml:mi>a</mml:mi><mml:mi>g</mml:mi><mml:mi>V</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>V</mml:mi></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mi>i</mml:mi><mml:mi>V</mml:mi></mml:msubsup></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E38.40"><mml:mtd><mml:mtext>17b</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msubsup><mml:mi>c</mml:mi><mml:mi>g</mml:mi><mml:mi>V</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mi>i</mml:mi><mml:mi>V</mml:mi></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mi>a</mml:mi><mml:mi>g</mml:mi><mml:mi>V</mml:mi></mml:msubsup><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

          The radar variables <inline-formula><mml:math id="M313" display="inline"><mml:mi>V</mml:mi></mml:math></inline-formula> for each bin are then analytically integrated from <inline-formula><mml:math id="M314" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> to <inline-formula><mml:math id="M315" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>

            <disp-formula id="Ch1.E41" content-type="numbered"><label>18</label><mml:math id="M316" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>≈</mml:mo><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:msubsup><mml:mi>g</mml:mi><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msubsup><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:msubsup><mml:mi>a</mml:mi><mml:mi>g</mml:mi><mml:mi>V</mml:mi></mml:msubsup><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msubsup><mml:mi>c</mml:mi><mml:mi>g</mml:mi><mml:mi>V</mml:mi></mml:msubsup><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mi>a</mml:mi><mml:mi>g</mml:mi><mml:mi>V</mml:mi></mml:msubsup><mml:msub><mml:mi>M</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msubsup><mml:mi>c</mml:mi><mml:mi>g</mml:mi><mml:mi>V</mml:mi></mml:msubsup><mml:msub><mml:mi>N</mml:mi><mml:mi>i</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="M317" display="inline"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the total bin mass and <inline-formula><mml:math id="M318" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the total bin number.</p>
</sec>
</sec>
<sec id="Ch1.S3">
  <label>3</label><title>Example Results</title>
      <p id="d2e9366">Most of the results presented in this section are derived from Jupyter notebook examples: “BM1D_analytical_examples.ipynb”, “BM1D_steady_state_examples.ipynb”, and “BM1D_full_1D_examples.ipynb”, which are provided in the BinMod1D repository <xref ref-type="bibr" rid="bib1.bibx19" id="paren.68"/>. Users can execute these examples locally or within a pre-configured Binder environment which can be accessed through the project's documentation interface in <xref ref-type="bibr" rid="bib1.bibx20" id="text.69"/>.</p>
<sec id="Ch1.S3.SS1">
  <label>3.1</label><title>Box model examples</title>
      <p id="d2e9382">Several previous studies <xref ref-type="bibr" rid="bib1.bibx58 bib1.bibx9 bib1.bibx60" id="paren.70"><named-content content-type="pre">see</named-content><named-content content-type="post">for example</named-content></xref> have leveraged the analytical solutions of the stochastic collection equation outlined by <xref ref-type="bibr" rid="bib1.bibx51" id="text.71"/> using the Safronov/Golovin <xref ref-type="bibr" rid="bib1.bibx49 bib1.bibx25" id="paren.72"><named-content content-type="pre">cf.</named-content></xref> or sum (i.e., <inline-formula><mml:math id="M319" display="inline"><mml:mrow><mml:mi>K</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:mo>∝</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:math></inline-formula>), product (i.e., <inline-formula><mml:math id="M320" display="inline"><mml:mrow><mml:mi>K</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:mo>∝</mml:mo><mml:mi>x</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:math></inline-formula>), and constant (i.e., <inline-formula><mml:math id="M321" display="inline"><mml:mrow><mml:mi>K</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo></mml:mrow></mml:math></inline-formula> const.) kernels to validate their spectral models. Similarly, the BinMod1D model in this section is compared to these analytical solutions for <inline-formula><mml:math id="M322" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:math></inline-formula> and for the normalized gamma distribution (Eq. <xref ref-type="disp-formula" rid="Ch1.E31"/>) where <inline-formula><mml:math id="M323" display="inline"><mml:mover accent="true"><mml:mi>m</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover></mml:math></inline-formula> is unity as in <xref ref-type="bibr" rid="bib1.bibx51" id="text.73"/>.</p>
      <p id="d2e9501">These comparisons are shown in Fig. <xref ref-type="fig" rid="F4"/> using a high-resolution mass grid (<inline-formula><mml:math id="M324" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">32</mml:mn></mml:mrow></mml:math></inline-formula>) in order to highlight the accuracy of the model. As in previous studies, these distributions are plotted with a log scaling<fn id="Ch1.Footn3"><p id="d2e9521">This is the default plotting method for <monospace>spectral_1d.plot_dists</monospace> as follows: <inline-formula><mml:math id="M325" display="inline"><mml:mrow><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mi>m</mml:mi><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>log⁡</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M326" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi>M</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>m</mml:mi><mml:mo>≡</mml:mo><mml:mi>m</mml:mi><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi>m</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mi>n</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>log⁡</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>.</p></fn>. Plotting in this way using the variable <inline-formula><mml:math id="M327" display="inline"><mml:mrow><mml:mi>log⁡</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> as the independent variable produces attractive bell-like plots that permit an easier way to compare these numerical solutions to the analytical solutions from <xref ref-type="bibr" rid="bib1.bibx51" id="text.74"/>. All plots here use the default <monospace>moments=2</monospace> (i.e., two-moment solution) <monospace>spectral_1d</monospace> option. The Safronov/Golovin solution shows a rapid decrease in number at <inline-formula><mml:math id="M328" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">20</mml:mn></mml:mrow></mml:math></inline-formula> min near the initial gamma distribution mode and the emergence of a long tail which shifts the mass distribution mode to 10 times the initial gamma mode. The product solution at <inline-formula><mml:math id="M329" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> min, on the other hand, maintains the mass distribution mode at the initial <inline-formula><mml:math id="M330" display="inline"><mml:mover accent="true"><mml:mi>m</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover></mml:math></inline-formula> value but produces a long tail toward much larger masses<fn id="Ch1.Footn4"><p id="d2e9691">It is worth pointing out here that the product solution is known to exhibit gellation <xref ref-type="bibr" rid="bib1.bibx1" id="paren.75"><named-content content-type="pre">see</named-content><named-content content-type="post">for more information</named-content></xref> and, as such, does not actually preserve mass after a certain period or time. Therefore, the shorter time here is used to avoid the point of gellation.</p></fn>. The constant kernel shows a much more gradual transition and shifting of the number and mass distribution modal values. Overall, the BinMod1D solutions are indistinguishable from the analytical solutions.</p>

      <fig id="F4" specific-use="star"><label>Figure 4</label><caption><p id="d2e9704">BinMod1D Jupyter notebook examples for the number (top row) and mass (bottom row) distribution functions with the Safronov/Golovin, product, and constant kernel (<inline-formula><mml:math id="M331" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">32</mml:mn></mml:mrow></mml:math></inline-formula>) with analytical solutions from <xref ref-type="bibr" rid="bib1.bibx51" id="text.76"/> for <inline-formula><mml:math id="M332" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M333" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">s</mml:mi></mml:mrow></mml:math></inline-formula>. Here, particle masses and mass distributions are normalized according to <xref ref-type="bibr" rid="bib1.bibx51" id="text.77"/> such that the initial total number and total mass are both unity. The <monospace>spectral_1d</monospace> option <monospace>moments=2</monospace> is used for all model runs.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/7503/2026/gmd-19-7503-2026-f04.png"/>

        </fig>

      <p id="d2e9774">Figure <xref ref-type="fig" rid="F5"/> shows examples of collisional breakup only and the steady-state balance of coalescence with breakup along with the analytical solutions from <xref ref-type="bibr" rid="bib1.bibx23" id="text.78"/>. In these cases, the mass distributions very closely match the analytical solutions. There are somewhat larger differences in the number distributions. However, it is important to realize that the validity of the <xref ref-type="bibr" rid="bib1.bibx23" id="text.79"/> analytical solutions depend upon several assumptions. In particular, the Feingold solutions do not exactly preserve explicit mass conservation for each breakup event although it does conserve the overall total distribution mass. BinMod1D, by contrast, explicitly calculates each bin-pair interaction such that mass is always conserved for each interaction event <italic>regardless of the fragment distribution</italic>. In this way, BinMod1D represents a much more physically realistic way to explicitly simulate collisional breakup compared to the target-based method-of-moments models such as <xref ref-type="bibr" rid="bib1.bibx23" id="text.80"/>.</p>

      <fig id="F5" specific-use="star"><label>Figure 5</label><caption><p id="d2e9793">As in Fig. <xref ref-type="fig" rid="F4"/> but for the breakup (<inline-formula><mml:math id="M334" display="inline"><mml:mrow><mml:mi>s</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">6</mml:mn></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M335" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">s</mml:mi></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="M336" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.1</mml:mn></mml:mrow></mml:math></inline-formula>) and coalescence-breakup (<inline-formula><mml:math id="M337" display="inline"><mml:mrow><mml:mi>s</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M338" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.8</mml:mn></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M339" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1.0</mml:mn></mml:mrow></mml:math></inline-formula>) constant kernel examples and analytical solutions from <xref ref-type="bibr" rid="bib1.bibx23" id="text.81"/> assuming <inline-formula><mml:math id="M340" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</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="M341" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">Λ</mml:mi><mml:mi>f</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> g<sup>−1</sup>. The collision-coalescence and collisional breakup analytical solution is a steady-state solution.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/7503/2026/gmd-19-7503-2026-f05.png"/>

        </fig>

</sec>
<sec id="Ch1.S3.SS2">
  <label>3.2</label><title>Steady-state examples</title>
      <p id="d2e9942">Figure <xref ref-type="fig" rid="F6"/> shows two examples of the steady-state (i.e., height only) BinMod1D simulation for a rain case using the <monospace>plot_moments_radar</monospace> and <monospace>plot_dists_height</monospace> methods of the <monospace>spectral_1d</monospace> class. For these simulations, the initial distribution is given by <inline-formula><mml:math id="M343" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.8</mml:mn></mml:mrow></mml:math></inline-formula> mm, <inline-formula><mml:math id="M344" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">15</mml:mn></mml:mrow></mml:math></inline-formula> L<sup>−1</sup>, and <inline-formula><mml:math id="M346" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>. A 3 km layer is considered here with <monospace>ztop=3000.</monospace>,  <monospace>zbot=0.</monospace>, and <inline-formula><mml:math id="M347" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m (<monospace>dz=10.</monospace>). For collision-coalescence only (<inline-formula><mml:math id="M348" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.8</mml:mn></mml:mrow></mml:math></inline-formula>), number concentration and liquid water content (LWC) decrease with decreasing height whereas mean volume diameters increase with decreasing height. Similarly, <inline-formula><mml:math id="M349" display="inline"><mml:mi>Z</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M350" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">DR</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M351" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">dp</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> all increase with decreasing heights as coalescence transfers mass from smaller sizes to larger sizes. This, in turn, increases raindrop sizes and decreases raindrop aspect ratios according to the <xref ref-type="bibr" rid="bib1.bibx11" id="text.82"/> aspect ratio-diameter polynomial relationship. Figure <xref ref-type="fig" rid="F6"/> also shows the size distributions at <inline-formula><mml:math id="M352" display="inline"><mml:mn mathvariant="normal">3.0</mml:mn></mml:math></inline-formula>, <inline-formula><mml:math id="M353" display="inline"><mml:mn mathvariant="normal">1.5</mml:mn></mml:math></inline-formula>, and <inline-formula><mml:math id="M354" display="inline"><mml:mn mathvariant="normal">0.0</mml:mn></mml:math></inline-formula> km. As the size distributions evolve downward, the initial inverse-exponential distribution transitions to a more gamma-like shape.</p>
      <p id="d2e10119">Figure <xref ref-type="fig" rid="F6"/> also shows the same simulation but with the incorporation of breakup with <inline-formula><mml:math id="M355" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.005</mml:mn></mml:mrow></mml:math></inline-formula> and an exponential fragment distribution (<monospace>frag_dist='exp'</monospace>). By default, the mean volume diameter of <monospace>frag_dist='exp'</monospace> is 0.25 mm. The combined coalescence-breakup simulation overall is quite similar to the coalescence only simulation, however there is a noticable stagnation effect that is most obvious for <inline-formula><mml:math id="M356" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, liquid water content (LWC) and the radar variables. This stagnation effect results from the presence of breakup stunting the coalescence growth effects. The size distribution at <inline-formula><mml:math id="M357" display="inline"><mml:mn mathvariant="normal">1.5</mml:mn></mml:math></inline-formula> km is very similar to the coalescence only simulation, especially in the tail portion of the distribution. However, the exponential fragment distribution is clearly visible and becomes more pronounced at <inline-formula><mml:math id="M358" display="inline"><mml:mrow><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.0</mml:mn></mml:mrow></mml:math></inline-formula> km.</p>

      <fig id="F6" specific-use="star"><label>Figure 6</label><caption><p id="d2e10178">Various microphysical and radar variables for the steady-state rain example including: <bold>(a)</bold> Number concentration, <bold>(b)</bold> Mean volume diameter, <bold>(c)</bold> Liquid water content, <bold>(d)</bold> Rain rate, <bold>(e)</bold> Radar reflectivity, <bold>(f)</bold> Differential reflectivity, <bold>(g)</bold> Specific differential phase, and <bold>(h)</bold> Correlation coefficient. Solid lines represent the collision-coalescence only simulation (CC only) whereas dashed lines show the combined collision-coalescence/collisional-breakup (CC-BC) simulations. Subpanels <bold>(i)</bold> through <bold>(k)</bold> show the number distribution function at <inline-formula><mml:math id="M359" display="inline"><mml:mn mathvariant="normal">3.0</mml:mn></mml:math></inline-formula>, <inline-formula><mml:math id="M360" display="inline"><mml:mn mathvariant="normal">1.5</mml:mn></mml:math></inline-formula>, and <inline-formula><mml:math id="M361" display="inline"><mml:mn mathvariant="normal">0.0</mml:mn></mml:math></inline-formula> km, respectively.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/7503/2026/gmd-19-7503-2026-f06.png"/>

        </fig>

      <p id="d2e10241">Figure <xref ref-type="fig" rid="F7"/> shows a steady-state example of snow aggregation and collisional breakup. This scenario can be thought of as the effects of aggregation and breakup below the dendritic growth layer (DGL). Many studies have investigated these polarimetric radar signatures <xref ref-type="bibr" rid="bib1.bibx27 bib1.bibx2 bib1.bibx50 bib1.bibx26 bib1.bibx21" id="paren.83"/> and it is well known that reflectivity typically increases downward below whereas differential reflectivity and specific differential phase typically decreases downward. Here, BinMod1D is run with an initial gamma distribution with <inline-formula><mml:math id="M362" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">50</mml:mn></mml:mrow></mml:math></inline-formula> L<sup>−1</sup>, <inline-formula><mml:math id="M364" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1.0</mml:mn></mml:mrow></mml:math></inline-formula> mm, and <inline-formula><mml:math id="M365" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:math></inline-formula>. Furthermore, two distinct category distributions are used: snow and fragments, where each sample distribution has microphysical parameters determined by the <monospace>habits.py</monospace> module (i.e., <monospace>habit_params=['snow','fragments']</monospace>). In particular, snow particles have a fixed aspect ratio of <inline-formula><mml:math id="M366" display="inline"><mml:mn mathvariant="normal">0.6</mml:mn></mml:math></inline-formula> with an orientation parameter of <inline-formula><mml:math id="M367" display="inline"><mml:mrow><mml:mn mathvariant="normal">0</mml:mn><mml:mi mathvariant="italic">°</mml:mi></mml:mrow></mml:math></inline-formula> (horizontal orientation) whereas fragments have aspect ratios of <inline-formula><mml:math id="M368" display="inline"><mml:mn mathvariant="normal">0.8</mml:mn></mml:math></inline-formula> and an orientation parameter of <inline-formula><mml:math id="M369" display="inline"><mml:mrow><mml:mn mathvariant="normal">20</mml:mn><mml:mi mathvariant="italic">°</mml:mi></mml:mrow></mml:math></inline-formula>. The simulation is also set up so that aggregated particles go to the snow distribution (<monospace>cc_dest=1</monospace>) whereas the breakup fragments go to the fragment distribution (<monospace>br_dest=2</monospace>) that is governed by  an assumed lognormal distribution with a mode at <inline-formula><mml:math id="M370" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">mode</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.2</mml:mn></mml:mrow></mml:math></inline-formula> mm and a median of <inline-formula><mml:math id="M371" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">med</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.25</mml:mn></mml:mrow></mml:math></inline-formula> mm (i.e., <monospace>frag_dist='LGN'</monospace>). As shown in Fig. <xref ref-type="fig" rid="F7"/>, the microphysical variables can be shown independently for each category when running <monospace>spectral_1d</monospace> with multiple distribution categories. This simulation shows the domination of aggregation from <inline-formula><mml:math id="M372" display="inline"><mml:mn mathvariant="normal">3.0</mml:mn></mml:math></inline-formula> to <inline-formula><mml:math id="M373" display="inline"><mml:mn mathvariant="normal">2.0</mml:mn></mml:math></inline-formula> km where reflectivity and <inline-formula><mml:math id="M374" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> rapidly increase downward. From <inline-formula><mml:math id="M375" display="inline"><mml:mn mathvariant="normal">2.0</mml:mn></mml:math></inline-formula>  to <inline-formula><mml:math id="M376" display="inline"><mml:mn mathvariant="normal">1.0</mml:mn></mml:math></inline-formula> km, breakup overwhelms aggregation which leads to a U-shaped reversal of the height profiles. Finally, <inline-formula><mml:math id="M377" display="inline"><mml:mn mathvariant="normal">1.0</mml:mn></mml:math></inline-formula>  to <inline-formula><mml:math id="M378" display="inline"><mml:mn mathvariant="normal">0.0</mml:mn></mml:math></inline-formula> km shows a balance of aggregation with collisional breakup such that the total distribution and its bulk variables more-or-less stagnate. It is important to note that this stagnation effect is typically ignored in models as collisional breakup is often not explicitly taken into account.</p>

      <fig id="F7" specific-use="star"><label>Figure 7</label><caption><p id="d2e10459">As in Fig. <xref ref-type="fig" rid="F6"/> but for snow aggregation and collisional breakup as described in text. Here, <inline-formula><mml:math id="M379" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M380" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula> m.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/7503/2026/gmd-19-7503-2026-f07.png"/>

        </fig>

</sec>
<sec id="Ch1.S3.SS3">
  <label>3.3</label><title>Full model examples</title>
      <p id="d2e10507">Figure <xref ref-type="fig" rid="F8"/> shows an example of a rain “fallout” when <monospace>boundary=None</monospace>. In this case, the same initial rain distribution from Sect. <xref ref-type="sec" rid="Ch1.S3.SS2"/> is used but with <inline-formula><mml:math id="M381" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">col</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1.0</mml:mn></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M382" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.25</mml:mn></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M383" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M384" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> s, <inline-formula><mml:math id="M385" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">20</mml:mn></mml:mrow></mml:math></inline-formula> m, and 60 bins. With these parameters, this full simulation out to <inline-formula><mml:math id="M386" display="inline"><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mo>max⁡</mml:mo></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1500</mml:mn></mml:mrow></mml:math></inline-formula> s takes about 50 s on a laptop (see Sect. <xref ref-type="sec" rid="Ch1.S4"/> for more information regarding the laptop specifications). The initial inverse-exponential distribution is only in the top height grid box initially. As time progresses, the initial distribution both sediments and engages in collision-coalescence. Size sorting of drops in different bins accounts for the gradual spreading of the reflectivity signature as the largest drops land before smaller drops.</p>

      <fig id="F8"><label>Figure 8</label><caption><p id="d2e10610">A time/height reflectivity profile (for a radar wavelength of 110 mm) for a rain fallout example  where <monospace>boundary=None</monospace>.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/7503/2026/gmd-19-7503-2026-f08.png"/>

        </fig>

      <p id="d2e10622">Figure <xref ref-type="fig" rid="F9"/> shows a full 1D column model simulation for snow with aggregation (<inline-formula><mml:math id="M387" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.35</mml:mn></mml:mrow></mml:math></inline-formula>) representing the DGL simulation from Sect. <xref ref-type="sec" rid="Ch1.S3.SS2"/> but with slightly larger initial snow particles (<inline-formula><mml:math id="M388" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1.25</mml:mn></mml:mrow></mml:math></inline-formula> mm). Unlike in the rain fallout example, here <monospace>boundary='fixed'</monospace> which indicates that the top particle size distribution (and therefore the topmost mass and number fluxes) is held constant. Therefore, this simulation will tend toward the steady-state solution as <inline-formula><mml:math id="M389" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>→</mml:mo><mml:mi mathvariant="normal">∞</mml:mi></mml:mrow></mml:math></inline-formula>. As in the steady-state simulation, <inline-formula><mml:math id="M390" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> with 60 total bins. The model is run with only one category out to <inline-formula><mml:math id="M391" display="inline"><mml:mn mathvariant="normal">5400</mml:mn></mml:math></inline-formula> seconds with <inline-formula><mml:math id="M392" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> s and <inline-formula><mml:math id="M393" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">20</mml:mn></mml:mrow></mml:math></inline-formula> m and an output frequency of 1 (i.e., every <inline-formula><mml:math id="M394" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:math></inline-formula> timestep). The simulation itself takes just less than 5 min to run on the laptop used to conduct timing and convergence tests in Sect. <xref ref-type="sec" rid="Ch1.S4"/>. The radar time/height profiles in Fig. <xref ref-type="fig" rid="F9"/> show the classic aggregation signature of an increasing reflectivity and decreasing <inline-formula><mml:math id="M395" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">DR</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M396" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">dp</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> toward ground. The system itself evolves slower than the rain case due to the slower fall speeds as it takes slightly less than an hour for the largest snowflakes to reach the surface. The <inline-formula><mml:math id="M397" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">DR</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> time/height profile also shows the presence of size sorting as the larger, more oblate snowflakes reach the surface before the smaller, slower falling snowflakes. The simulation itself reaches a quasi steady-state after about <inline-formula><mml:math id="M398" display="inline"><mml:mn mathvariant="normal">4000</mml:mn></mml:math></inline-formula> s.</p>

      <fig id="F9" specific-use="star"><label>Figure 9</label><caption><p id="d2e10788">A snow aggregation example (left column) for reflectivity (top), differential reflectivity (middle), and specific differential phase (bottom) of BinMod1D where <monospace>boundary=fixed</monospace>. Right column represents the 2 category aggregation and breakup simulation.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/7503/2026/gmd-19-7503-2026-f09.png"/>

        </fig>

      <p id="d2e10800">Figure <xref ref-type="fig" rid="F10"/> shows the results of the previous DGL simulation but with the addition of collisional breakup. As in the steady-state simulation, the default lognormal fragment distribution is used. However, here <inline-formula><mml:math id="M399" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.6</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M400" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.05</mml:mn></mml:mrow></mml:math></inline-formula> and the full simulation took 26 min to run. Figure <xref ref-type="fig" rid="F10"/> shows that the moments and radar variables for the full 1D column model simulation at <inline-formula><mml:math id="M401" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1.5</mml:mn></mml:mrow></mml:math></inline-formula> h is nearly identical to the corresponding steady-state simulation. The behavior of the profiles are also similar to Fig. <xref ref-type="fig" rid="F7"/> but where reflectivity maximizes at <inline-formula><mml:math id="M402" display="inline"><mml:mn mathvariant="normal">1.0</mml:mn></mml:math></inline-formula> km rather than <inline-formula><mml:math id="M403" display="inline"><mml:mn mathvariant="normal">2.0</mml:mn></mml:math></inline-formula> km. The corresponding time/height profiles are shown alongside the aggregation only results in Fig. <xref ref-type="fig" rid="F9"/>. The simulations are very similar up until <inline-formula><mml:math id="M404" display="inline"><mml:mn mathvariant="normal">2000</mml:mn></mml:math></inline-formula> s where the presence of fragmentation begins to influence the radar fields. Although the start of the surface snowfall occurs at roughly the same time, the combined aggregation and breakup simulation produces a lower surface reflectivity than the aggregation only simulation. The presence of fragments also leads to a higher <inline-formula><mml:math id="M405" display="inline"><mml:mrow><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">DR</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M406" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">dp</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> which both stay very constant in the bottom <inline-formula><mml:math id="M407" display="inline"><mml:mn mathvariant="normal">1.5</mml:mn></mml:math></inline-formula> km of the model domain.</p>

      <fig id="F10" specific-use="star"><label>Figure 10</label><caption><p id="d2e10906">Moments and forward simulated radar variable comparison of a full time and height snow aggregation/breakup BinMod1D model run at <inline-formula><mml:math id="M408" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1.5</mml:mn></mml:mrow></mml:math></inline-formula> h compared to the corresponding steady-state BinMod1D model run.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/7503/2026/gmd-19-7503-2026-f10.png"/>

        </fig>

</sec>
</sec>
<sec id="Ch1.S4">
  <label>4</label><title>Accuracy, computational speed, and resolution</title>
      <p id="d2e10937">Timing tests are performed on a workstation laptop equipped with a 12th generation Intel(R) Core i7-12850HX processor (2.1 GHz and 16 cores) and 64 GB of RAM running in a standard Python environment. These specifications represent standard high-end consumer hardware, thereby demonstrating that the model can be effectively used without the need for specialized high-performance computing (HPC) resources.</p>
      <p id="d2e10940">These timing and convergence tests use the box model capability of BinMod1D to simulate a transition from continental cloud droplets to moderate rain with <inline-formula><mml:math id="M409" display="inline"><mml:mrow><mml:mi>Z</mml:mi><mml:mo>≈</mml:mo><mml:mn mathvariant="normal">40</mml:mn></mml:mrow></mml:math></inline-formula> dBZ. This is similar to simulations performed by <xref ref-type="bibr" rid="bib1.bibx53" id="text.84"/> and <xref ref-type="bibr" rid="bib1.bibx60" id="text.85"/>. However, unlike those simulations, the BinMod1D simulations include both collision-coalescence and collisional breakup. Here, the precipitation type is considered to be rain with one category and the <xref ref-type="bibr" rid="bib1.bibx6" id="text.86"/> fall speed parameterization is used rather than the default <xref ref-type="bibr" rid="bib1.bibx3" id="text.87"/> power-law parameterization. The Long kernel (<monospace>kernel='Long'</monospace>) is used where the collision efficiency<fn id="Ch1.Footn5"><p id="d2e10971">The <monospace>kernel='Long'</monospace> option actually modifies the collision kernel <inline-formula><mml:math id="M410" display="inline"><mml:mrow><mml:mi>K</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> rather than <inline-formula><mml:math id="M411" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">col</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> to keep <inline-formula><mml:math id="M412" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">col</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> as a constant parameter. In these cases, <inline-formula><mml:math id="M413" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">col</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> can be set to unity.</p></fn> is given by <xref ref-type="bibr" rid="bib1.bibx33 bib1.bibx53" id="paren.88"><named-content content-type="pre">cf.</named-content></xref>

          <disp-formula id="Ch1.E42" content-type="numbered"><label>19</label><mml:math id="M414" 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:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">col</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">col</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mo>[</mml:mo><mml:msup><mml:mi mathvariant="normal">mm</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msup><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mo>]</mml:mo><mml:mo>=</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mfenced open="{" close=""><mml:mtable class="cases" rowspacing="0.2ex" columnspacing="1em" columnalign="left left" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:mo>max⁡</mml:mo><mml:mfenced close="]" open="["><mml:mrow><mml:mn mathvariant="normal">112.5</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msubsup><mml:mi>D</mml:mi><mml:mi>y</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mfenced open="(" close=")"><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:mn mathvariant="normal">0.006</mml:mn><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle></mml:mrow></mml:mfenced><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0.001</mml:mn></mml:mrow></mml:mfenced></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">0.1</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">mm</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">1.0</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo>≥</mml:mo><mml:mn mathvariant="normal">0.1</mml:mn><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">mm</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>

        where <inline-formula><mml:math id="M415" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>≥</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and the hydrodynamic kernel is used such that

          <disp-formula id="Ch1.E43" content-type="numbered"><label>20</label><mml:math id="M416" display="block"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">hydro</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">col</mml:mi></mml:msub><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi mathvariant="italic">π</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:mfrac></mml:mstyle><mml:msup><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mfenced close="|" open="|"><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>v</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

        and the sticking efficiency <inline-formula><mml:math id="M417" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is set to <inline-formula><mml:math id="M418" display="inline"><mml:mn mathvariant="normal">0.6</mml:mn></mml:math></inline-formula>. The <xref ref-type="bibr" rid="bib1.bibx56" id="text.89"/> fragment distribution parameterization with <inline-formula><mml:math id="M419" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1.0</mml:mn></mml:mrow></mml:math></inline-formula> (i.e., no rebounding) is used as well (<monospace>frag_dist='Straub'</monospace>) which characterizes rain-rain fragments with a lognormal distribution, two Gaussian distributions, and a Dirac delta function for the residual rain drop. In order to prevent the breakup of cloud droplets, two linear ramp functions are used to scale <inline-formula><mml:math id="M420" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> based on both the maximum size of the (<inline-formula><mml:math id="M421" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math></inline-formula>) collection pair diameter bin midpoints (1.2 mm &lt; <inline-formula><mml:math id="M422" display="inline"><mml:mrow><mml:mo>max⁡</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:msub><mml:mi>D</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> &lt; 2.8 mm) and based on the size ratio <inline-formula><mml:math id="M423" display="inline"><mml:mrow><mml:mfenced close="]" open="["><mml:mrow><mml:mi>q</mml:mi><mml:mo>≡</mml:mo><mml:mo>min⁡</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mo>/</mml:mo><mml:mo>max⁡</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:math></inline-formula>) between the collection pair diameter bin midpoints (<inline-formula><mml:math id="M424" display="inline"><mml:mrow><mml:mn mathvariant="normal">0.1</mml:mn><mml:mo>&lt;</mml:mo><mml:mi>q</mml:mi><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">0.25</mml:mn></mml:mrow></mml:math></inline-formula>). Pairs with values less than the first edge have <inline-formula><mml:math id="M425" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">BR</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> scaled by <inline-formula><mml:math id="M426" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula> (i.e., breakup is not considered) whereas pairs with values greater than the second edge values are scaled by unity (i.e., breakup is only scaled by <inline-formula><mml:math id="M427" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">BR</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> as it is by default). In addition to the Long kernel being a more accurate representation of the autoconversion process for cloud droplets, previous studies such as <xref ref-type="bibr" rid="bib1.bibx60" id="text.90"/> have also found that more realistic kernels like the Long kernel can have a slower numerical convergence for different <inline-formula><mml:math id="M428" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> values than for less realistic kernels (i.e., Safronov/Golovin, product, constant, etc.). Furthermore, these tests are, generally speaking, much more numerically demanding than what most users will typically experience. There are a number of reasons for this. First, the initial distribution consists of a very large number concentration (<inline-formula><mml:math id="M429" display="inline"><mml:mrow><mml:mi mathvariant="script">O</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">5</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> L<inline-formula><mml:math id="M430" display="inline"><mml:mrow><mml:msup><mml:mi/><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></inline-formula>). This means that the number of binary interactions that occur at the beginning of the simulation is much greater than for simulations involving fully developed rain and snow. This also means that breakup requires adaptive stepping in order to ensure numerical stability.</p>
      <p id="d2e11482">In each test, a <inline-formula><mml:math id="M431" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">16</mml:mn></mml:mrow></mml:math></inline-formula> value with two-moment calculations is used as the reference solution to determine the accuracy of the BinMod1D model runs. The results shown herein are similar to the box model results from  <xref ref-type="bibr" rid="bib1.bibx53" id="text.91"/> and <xref ref-type="bibr" rid="bib1.bibx60" id="text.92"/> where the initial distribution is a gamma distribution with <inline-formula><mml:math id="M432" display="inline"><mml:mrow><mml:mi mathvariant="italic">μ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> (i.e., an exponential distribution) and normalized according to mass similar to <xref ref-type="bibr" rid="bib1.bibx51" id="text.93"/> but with <inline-formula><mml:math id="M433" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>D</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">18.6</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M434" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M435" display="inline"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> g m<sup>−3</sup> (parameters consistent with both <xref ref-type="bibr" rid="bib1.bibx53" id="altparen.94"/> and <xref ref-type="bibr" rid="bib1.bibx60" id="altparen.95"/>). This leads to <inline-formula><mml:math id="M437" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>≈</mml:mo><mml:mn mathvariant="normal">300</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mn mathvariant="normal">000</mml:mn></mml:mrow></mml:math></inline-formula> L<sup>−1</sup>. In this sense, these convergence and timing tests are representative of continental cloud systems that transition from autoconversion of cloud droplets to accretion of cloud droplets by rain droplets and the resulting steady-state balance of coalescence and collisional breakup.</p>

      <fig id="F11" specific-use="star"><label>Figure 11</label><caption><p id="d2e11627">The timeseries evolution of number concentration, mean volume diameter, liquid water content, rain rates as well as radar reflectivity, differential reflectivity, specific differential phase, and correlation coefficient for cloud-rain convergence and testing simulations. Here, the radar wavelength is <inline-formula><mml:math id="M439" display="inline"><mml:mn mathvariant="normal">110</mml:mn></mml:math></inline-formula> mm which is consistent with S band radars. Each simulation uses <inline-formula><mml:math id="M440" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> s and an output frequency of <inline-formula><mml:math id="M441" display="inline"><mml:mn mathvariant="normal">10</mml:mn></mml:math></inline-formula> s.</p></caption>
        <graphic xlink:href="https://gmd.copernicus.org/articles/19/7503/2026/gmd-19-7503-2026-f11.png"/>

      </fig>

      <fig id="F12"><label>Figure 12</label><caption><p id="d2e11666">Number <bold>(a)</bold> and mass <bold>(b)</bold> distribution functions from the box model simulations at 3 h for different <inline-formula><mml:math id="M442" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> parameters and for 2-moment simulations (solid lines) and 1-moment simulations (dotted lines).</p></caption>
        <graphic xlink:href="https://gmd.copernicus.org/articles/19/7503/2026/gmd-19-7503-2026-f12.png"/>

      </fig>

      <p id="d2e11692">Figure <xref ref-type="fig" rid="F11"/> shows the timeseries of microphysical and radar variables for each simulation. Each simulation, regardless of resolution or moment prediction, produces the same qualitative behavior in the 3 h period. Initially, autoconversion of cloud droplets is gradual and the distributions do not change much. For the reference solution <inline-formula><mml:math id="M443" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">16</mml:mn></mml:mrow></mml:math></inline-formula> and <monospace>moments=2</monospace>, it is clear that it takes roughly 40 min for accretion to finally become dominant. However, the one-moment simulations struggles to capture this delay effect and instead accelerates the accretion process sooner. This is primarily because the collision-coalescence and collisional breakup processes are very sensitive to number concentration as the number of collisions increases rapidly with number concentration. The explicit prediction of number concentration with the two-moment simulations offsets this rapid acceleration and produces the correct transition point even with a somewhat coarse <inline-formula><mml:math id="M444" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> value. The <inline-formula><mml:math id="M445" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> with <monospace>moments=2</monospace> simulation actually over-delays the autoconversion-accretion process slightly. As shown in Table <xref ref-type="table" rid="T1"/>, the root-mean-square (RMSE) errors for BinMod1D one-moment number concentrations with <inline-formula><mml:math id="M446" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">16</mml:mn></mml:mrow></mml:math></inline-formula> (1282.16 L<sup>−1</sup>) is actually more than twice as large as the BinMod1D two-moment number concentrations with <inline-formula><mml:math id="M448" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula>. Despite this, the absolute errors of number concentration at <inline-formula><mml:math id="M449" display="inline"><mml:mn mathvariant="normal">3</mml:mn></mml:math></inline-formula> h is overall quite low for all simulations where the maximum error is only 0.46 L<sup>−1</sup> for <inline-formula><mml:math id="M451" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> and <monospace>moments=1</monospace> for a reference value of <inline-formula><mml:math id="M452" display="inline"><mml:mn mathvariant="normal">3.17</mml:mn></mml:math></inline-formula> L<sup>−1</sup> from the <inline-formula><mml:math id="M454" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">16</mml:mn></mml:mrow></mml:math></inline-formula> and <monospace>moments=2</monospace> simulation. This behavior is consistent with the other microphysical variables as well. Even the coarse bin resolution <inline-formula><mml:math id="M455" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> two-moment model run leads to only a slight overestimation of <inline-formula><mml:math id="M456" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi>t</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M457" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M458" display="inline"><mml:mi>R</mml:mi></mml:math></inline-formula> by <inline-formula><mml:math id="M459" display="inline"><mml:mn mathvariant="normal">0.22</mml:mn></mml:math></inline-formula> L<sup>−1</sup>, <inline-formula><mml:math id="M461" display="inline"><mml:mn mathvariant="normal">0.088</mml:mn></mml:math></inline-formula> mm and <inline-formula><mml:math id="M462" display="inline"><mml:mn mathvariant="normal">0.81</mml:mn></mml:math></inline-formula> mm h<sup>−1</sup>, respectively. Similarly, <inline-formula><mml:math id="M464" display="inline"><mml:mi>Z</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M465" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">DR</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M466" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">dp</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are within <inline-formula><mml:math id="M467" display="inline"><mml:mn mathvariant="normal">1.17</mml:mn></mml:math></inline-formula> dBZ, 0.19 dB, and 0.038 <inline-formula><mml:math id="M468" display="inline"><mml:mi mathvariant="italic">°</mml:mi></mml:math></inline-formula> km<sup>−1</sup> of the <inline-formula><mml:math id="M470" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">16</mml:mn></mml:mrow></mml:math></inline-formula> reference solution, respectively.</p>
      <p id="d2e12030">The radar variables, particular the polarimetric ones, show more sensitivity. The diffusive nature of the one-moment solutions exacerbates the accelerated autoconversion-accretion transition shown in the reflectivity timeseries due to the <inline-formula><mml:math id="M471" display="inline"><mml:mrow><mml:msup><mml:mi>D</mml:mi><mml:mn mathvariant="normal">6</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> weighting. As a result, the <inline-formula><mml:math id="M472" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> with <monospace>moments=1</monospace> simulation almost immediately increases rapidly with reflectivity and differential reflectivity whereas specific differential phase has a slightly longer apparent transition period. Most notably the <inline-formula><mml:math id="M473" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> with <monospace>moments=1</monospace> simulation dramatically overestimates the <inline-formula><mml:math id="M474" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">DR</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> by 3.36 dB and underestimates <inline-formula><mml:math id="M475" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">hv</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> by 0.0732. These exaggerated values are due to the extreme diffusion at the large end of the particle mass distribution (Fig. <xref ref-type="fig" rid="F12"/>) which shows a near exponential behavior with size rather than the super-exponential behavior from collisional breakup that the more accurate, higher resolution simulations show. Increasing <inline-formula><mml:math id="M476" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> from <inline-formula><mml:math id="M477" display="inline"><mml:mn mathvariant="normal">1</mml:mn></mml:math></inline-formula> to <inline-formula><mml:math id="M478" display="inline"><mml:mn mathvariant="normal">2</mml:mn></mml:math></inline-formula> noticeably improves this diffusive behavior much closer to the reference solutions. Overall, even <inline-formula><mml:math id="M479" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> with <monospace>moments=2</monospace> faithfully captures the correct timeseries of each variable and the correct bimodal steady-state number and mass distribution functions at <inline-formula><mml:math id="M480" display="inline"><mml:mn mathvariant="normal">3</mml:mn></mml:math></inline-formula> h. Run times range from 13 s for the coarsest run to 5380 s for the reference simulation. However, even the second highest resolution run (<inline-formula><mml:math id="M481" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">8</mml:mn></mml:mrow></mml:math></inline-formula> for <monospace>moments=2</monospace>) only takes slightly longer than 10 min to perform on a laptop computer. As stated before, these simulations are typically much more demanding than what most users will experience due to the large initial number concentration and the adaptive stepping needed to accurately simulate breakup for these large number of interactions.</p>

<table-wrap id="T1" specific-use="star"><label>Table 1</label><caption><p id="d2e12177">Timing and convergence tests of BinMod1D. For each variable, the top row represents RMSE and the bottom row represents the absolute error at 3 h. Numbers in parentheses indicate 1-moment runs; those without represent 2-moment runs.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="7">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="left"/>
     <oasis:colspec colnum="3" colname="col3" align="right"/>
     <oasis:colspec colnum="4" colname="col4" align="right"/>
     <oasis:colspec colnum="5" colname="col5" align="right"/>
     <oasis:colspec colnum="6" colname="col6" align="right"/>
     <oasis:colspec colnum="7" colname="col7" align="right"/>
     <oasis:thead>
       <oasis:row rowsep="1">

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

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

         <oasis:entry colname="col3"><inline-formula><mml:math id="M482" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">16</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>

         <oasis:entry colname="col4"><inline-formula><mml:math id="M483" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">8</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>

         <oasis:entry colname="col5"><inline-formula><mml:math id="M484" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>

         <oasis:entry colname="col6"><inline-formula><mml:math id="M485" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>

         <oasis:entry colname="col7"><inline-formula><mml:math id="M486" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>

       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>

         <oasis:entry rowsep="1" colname="col1" morerows="1"><inline-formula><mml:math id="M487" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi>t</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (L<sup>−1</sup>)</oasis:entry>

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

         <oasis:entry colname="col3">–  (1282.16)</oasis:entry>

         <oasis:entry colname="col4">188.00 (4953.89)</oasis:entry>

         <oasis:entry colname="col5">611.70 (15 679.88)</oasis:entry>

         <oasis:entry colname="col6">532.46 (38 109.81)</oasis:entry>

         <oasis:entry colname="col7">7711.81 (67 253.75)</oasis:entry>

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

         <oasis:entry colname="col2">Abs. Err</oasis:entry>

         <oasis:entry colname="col3">– (0.0036)</oasis:entry>

         <oasis:entry colname="col4">0.0055 (0.018)</oasis:entry>

         <oasis:entry colname="col5">0.030 (0.068)</oasis:entry>

         <oasis:entry colname="col6">0.15 (0.25)</oasis:entry>

         <oasis:entry colname="col7">0.22 (0.46)</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry rowsep="1" colname="col1" morerows="1"><inline-formula><mml:math id="M489" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (mm)</oasis:entry>

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

         <oasis:entry colname="col3">– (0.0171)</oasis:entry>

         <oasis:entry colname="col4">0.0026 (0.0497)</oasis:entry>

         <oasis:entry colname="col5">0.0079 (0.1280)</oasis:entry>

         <oasis:entry colname="col6">0.0234 (0.2710)</oasis:entry>

         <oasis:entry colname="col7">0.1520 (0.4830)</oasis:entry>

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

         <oasis:entry colname="col2">Abs. Err</oasis:entry>

         <oasis:entry colname="col3">– (0.00021)</oasis:entry>

         <oasis:entry colname="col4">0.0032 (0.0039)</oasis:entry>

         <oasis:entry colname="col5">0.0098 (0.013)</oasis:entry>

         <oasis:entry colname="col6">0.022 (0.035)</oasis:entry>

         <oasis:entry colname="col7">0.088 (0.16)</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry rowsep="1" colname="col1" morerows="1"><inline-formula><mml:math id="M490" display="inline"><mml:mi>R</mml:mi></mml:math></inline-formula> (mm h<sup>−1</sup>)</oasis:entry>

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

         <oasis:entry colname="col3">– (0.210)</oasis:entry>

         <oasis:entry colname="col4">0.025 (0.613)</oasis:entry>

         <oasis:entry colname="col5">0.074 (1.591)</oasis:entry>

         <oasis:entry colname="col6">0.241 (3.332)</oasis:entry>

         <oasis:entry colname="col7">1.785 (5.547)</oasis:entry>

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

         <oasis:entry colname="col2">Abs. Err</oasis:entry>

         <oasis:entry colname="col3">– (<inline-formula><mml:math id="M492" display="inline"><mml:mo lspace="0mm">-</mml:mo></mml:math></inline-formula>0.00075)</oasis:entry>

         <oasis:entry colname="col4">0.028 (0.026)</oasis:entry>

         <oasis:entry colname="col5">0.088 (0.081)</oasis:entry>

         <oasis:entry colname="col6">0.19 (0.19)</oasis:entry>

         <oasis:entry colname="col7">0.81 (0.93)</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry rowsep="1" colname="col1" morerows="1"><inline-formula><mml:math id="M493" display="inline"><mml:mi>Z</mml:mi></mml:math></inline-formula> (dBZ)</oasis:entry>

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

         <oasis:entry colname="col3">– (0.775)</oasis:entry>

         <oasis:entry colname="col4">0.038 (2.143)</oasis:entry>

         <oasis:entry colname="col5">0.102 (5.291)</oasis:entry>

         <oasis:entry colname="col6">0.954 (10.675)</oasis:entry>

         <oasis:entry colname="col7">5.158 (18.079)</oasis:entry>

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

         <oasis:entry colname="col2">Abs. Err</oasis:entry>

         <oasis:entry colname="col3">– (0.0059)</oasis:entry>

         <oasis:entry colname="col4">0.039 (0.059)</oasis:entry>

         <oasis:entry colname="col5">0.13 (0.20)</oasis:entry>

         <oasis:entry colname="col6">0.33 (0.63)</oasis:entry>

         <oasis:entry colname="col7">1.17 (6.57)</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry rowsep="1" colname="col1" morerows="1"><inline-formula><mml:math id="M494" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">DR</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (dB)</oasis:entry>

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

         <oasis:entry colname="col3">–  (0.0134)</oasis:entry>

         <oasis:entry colname="col4">0.0035 (0.0337)</oasis:entry>

         <oasis:entry colname="col5">0.0127 (0.0797)</oasis:entry>

         <oasis:entry colname="col6">0.0414 (0.1950)</oasis:entry>

         <oasis:entry colname="col7">0.1510 (2.0970)</oasis:entry>

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

         <oasis:entry colname="col2">Abs. Err</oasis:entry>

         <oasis:entry colname="col3">– (0.0011)</oasis:entry>

         <oasis:entry colname="col4">0.0046 (0.0085)</oasis:entry>

         <oasis:entry colname="col5">0.016 (0.030)</oasis:entry>

         <oasis:entry colname="col6">0.050 (0.12)</oasis:entry>

         <oasis:entry colname="col7">0.19 (3.36)</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry rowsep="1" colname="col1" morerows="1"><inline-formula><mml:math id="M495" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">dp</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (<inline-formula><mml:math id="M496" display="inline"><mml:mi mathvariant="italic">°</mml:mi></mml:math></inline-formula> km<sup>−1</sup>)</oasis:entry>

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

         <oasis:entry colname="col3">– (0.0025)</oasis:entry>

         <oasis:entry colname="col4">0.0008 (0.0071)</oasis:entry>

         <oasis:entry colname="col5">0.0028 (0.0179)</oasis:entry>

         <oasis:entry colname="col6">0.0079 (0.0388)</oasis:entry>

         <oasis:entry colname="col7">0.0338 (0.0902)</oasis:entry>

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

         <oasis:entry colname="col2">Abs. Err</oasis:entry>

         <oasis:entry colname="col3">– (0.00010)</oasis:entry>

         <oasis:entry colname="col4">0.0011 (0.0014)</oasis:entry>

         <oasis:entry colname="col5">0.0036 (0.0049)</oasis:entry>

         <oasis:entry colname="col6">0.0097 (0.015)</oasis:entry>

         <oasis:entry colname="col7">0.038 (0.066)</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry rowsep="1" colname="col1" morerows="1"><inline-formula><mml:math id="M498" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">hv</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (<inline-formula><mml:math id="M499" display="inline"><mml:mrow><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>)</oasis:entry>

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

         <oasis:entry colname="col3">– (0.114)</oasis:entry>

         <oasis:entry colname="col4">0.081 (0.346)</oasis:entry>

         <oasis:entry colname="col5">0.290 (1.140)</oasis:entry>

         <oasis:entry colname="col6">0.945 (7.240)</oasis:entry>

         <oasis:entry colname="col7">3.850 (488.0)</oasis:entry>

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

         <oasis:entry colname="col2">Abs. Err</oasis:entry>

         <oasis:entry colname="col3">– (<inline-formula><mml:math id="M500" display="inline"><mml:mo lspace="0mm">-</mml:mo></mml:math></inline-formula>0.042)</oasis:entry>

         <oasis:entry colname="col4"><inline-formula><mml:math id="M501" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>0.11 (<inline-formula><mml:math id="M502" display="inline"><mml:mo lspace="0mm">-</mml:mo></mml:math></inline-formula>0.25)</oasis:entry>

         <oasis:entry colname="col5"><inline-formula><mml:math id="M503" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>0.38 (<inline-formula><mml:math id="M504" display="inline"><mml:mo lspace="0mm">-</mml:mo></mml:math></inline-formula>0.96)</oasis:entry>

         <oasis:entry colname="col6"><inline-formula><mml:math id="M505" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>1.23 (-8.78)</oasis:entry>

         <oasis:entry colname="col7"><inline-formula><mml:math id="M506" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>5.27 (<inline-formula><mml:math id="M507" display="inline"><mml:mo lspace="0mm">-</mml:mo></mml:math></inline-formula>732.40)</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry namest="col1" nameend="col2">Run Time </oasis:entry>

         <oasis:entry colname="col3">5380.3 (1219.8)</oasis:entry>

         <oasis:entry colname="col4">705.1 (217.4)</oasis:entry>

         <oasis:entry colname="col5">154.3 (78.5)</oasis:entry>

         <oasis:entry colname="col6">54.9 (22.0)</oasis:entry>

         <oasis:entry colname="col7">31.5 (13.0)</oasis:entry>

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

</sec>
<sec id="Ch1.S5" sec-type="conclusions">
  <label>5</label><title>Conclusions</title>
      <p id="d2e12837">BinMod1D is a simple, economic spectral bin microphysics model that should be accessible for those familiar with the Python programming language. Other similar Python packages like LCM1D and PySDM use Lagrangian depictions of the PSD evolution rather than the typical Eulerian description given by traditional spectral bin microphysics schemes. In this way, BinMod1D represents a much more traditional approach that is more similar to the widely-used Fast Spectral Bin Microphysics scheme <xref ref-type="bibr" rid="bib1.bibx28" id="paren.96"><named-content content-type="pre">FSBM;</named-content></xref> which is available in the Fortran-based Weather Research and Forecasting (WRF) model. BinMod1D provides an expedient way to not only generate box model or 1D column model PSD evolution due to coalescence and/or breakup, but also to easily incorporate various habit parameters, numbers of distributions, and interaction kernels. Additionally, BinMod1D, unlike other similar Python packages, allows for direct, explicit simulation of steady-state vertical radar profiles. This article provides only a small set of examples for using the model. However, due to its flexibility, BinMod1D can be customized for a variety of different purposes. For example, users could use BinMod1D to perform in-situ-type bin model simulations similar to <xref ref-type="bibr" rid="bib1.bibx24" id="text.97"/> where actual in-situ-derived particle size distributions are used to initialize the bin model and investigate the theoretical effects of aggregation (and/or breakup) compared to measured distributions taken from such Lagrangian aircraft spirals. Similarly, users could also develop theoretical particle size distributions valid for laboratory studies such as done in <xref ref-type="bibr" rid="bib1.bibx15" id="text.98"/>.</p>

      <fig id="F13" specific-use="star"><label>Figure 13</label><caption><p id="d2e12853">BinMod1D (black lines) steady-state results for a heavy snow case. Panels <bold>(a)</bold> through <bold>(d)</bold> and <bold>(i)</bold> through <bold>(k)</bold> also show corresponding retrievals using the <xref ref-type="bibr" rid="bib1.bibx13" id="text.99"/> (B20; red lines) and <xref ref-type="bibr" rid="bib1.bibx48" id="text.100"/> (RZ19; blue lines) power law relations.</p></caption>
        <graphic xlink:href="https://gmd.copernicus.org/articles/19/7503/2026/gmd-19-7503-2026-f13.png"/>

      </fig>

      <p id="d2e12881">Figure <xref ref-type="fig" rid="F13"/> presents another possible application: retrieval methodology validation. In this example, BinMod1D is run in the steady-state mode to produce synthetic snow size distributions in height. Here, <inline-formula><mml:math id="M508" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">bin</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">6</mml:mn></mml:mrow></mml:math></inline-formula> with 180 bins in order to produce a high resolution set of PSDs. This simulation uses an initial exponential distribution with parameters <inline-formula><mml:math id="M509" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">50</mml:mn></mml:mrow></mml:math></inline-formula> L<sup>−1</sup> and <inline-formula><mml:math id="M511" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1.25</mml:mn></mml:mrow></mml:math></inline-formula> mm which produces an initial reflectivity of about 20 dBZ. <inline-formula><mml:math id="M512" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.35</mml:mn></mml:mrow></mml:math></inline-formula> is used to simulate the explicit steady-state PSD evolution in height due only to aggregation. This increases the reflectivity to approximately 30 dBZ at the surface. The <inline-formula><mml:math id="M513" display="inline"><mml:mrow><mml:mi>Z</mml:mi><mml:mo>/</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">dp</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> <xref ref-type="bibr" rid="bib1.bibx13" id="text.101"/> (B20) and the <inline-formula><mml:math id="M514" display="inline"><mml:mrow><mml:mi>Z</mml:mi><mml:mo>/</mml:mo><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">DR</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">DP</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> <xref ref-type="bibr" rid="bib1.bibx48" id="text.102"/> (RZ19) power-law retrievals are then used to retrieve <inline-formula><mml:math id="M515" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi>t</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M516" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, IWC, and <inline-formula><mml:math id="M517" display="inline"><mml:mi>R</mml:mi></mml:math></inline-formula> <italic>solely from the BinMod1D polarimetric radar height signatures</italic> <xref ref-type="bibr" rid="bib1.bibx21" id="paren.103"><named-content content-type="pre">see Table 1 from</named-content><named-content content-type="post">for these retrieval equations</named-content></xref>. In this way, these comparisons shows the limitations of these retrieval methods due to using a fixed distribution shape. The BinMod1D simulation and <xref ref-type="bibr" rid="bib1.bibx48" id="text.104"/> retrievals assumes the same snow parameters as used in <xref ref-type="bibr" rid="bib1.bibx13" id="text.105"/> to derive their retrievals where the snow aspect ratios are <inline-formula><mml:math id="M518" display="inline"><mml:mn mathvariant="normal">0.65</mml:mn></mml:math></inline-formula>, <inline-formula><mml:math id="M519" display="inline"><mml:mrow><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mi mathvariant="italic">°</mml:mi></mml:mrow></mml:math></inline-formula>, the density-size power-law relation is <inline-formula><mml:math id="M520" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo>(</mml:mo><mml:mi>D</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.178</mml:mn><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi>D</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 the fall speed-size relation is <inline-formula><mml:math id="M521" display="inline"><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>D</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.81</mml:mn><mml:msup><mml:mi>D</mml:mi><mml:mn mathvariant="normal">0.15</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula>. Both sets of retrievals assume <inline-formula><mml:math id="M522" display="inline"><mml:mrow><mml:mi mathvariant="italic">μ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> for all heights. Initially, the retrieved size distribution parameters (Fig. <xref ref-type="fig" rid="F13"/>a, b) are within 5 L<sup>−1</sup> and <inline-formula><mml:math id="M524" display="inline"><mml:mn mathvariant="normal">0.05</mml:mn></mml:math></inline-formula> mm of the initial BinMod1D exponential distribution <inline-formula><mml:math id="M525" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi>t</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M526" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, respectively. The initial differences between the BinMod1D microphysical variables are due to the capping of the density at <inline-formula><mml:math id="M527" display="inline"><mml:mn mathvariant="normal">0.92</mml:mn></mml:math></inline-formula> g cm<sup>−3</sup> at small sizes which the analytical retrieval formulas do not consider (for the retrievals to be simple power-law formulas, <inline-formula><mml:math id="M529" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo>(</mml:mo><mml:mi>D</mml:mi><mml:mo>→</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi mathvariant="normal">∞</mml:mi></mml:mrow></mml:math></inline-formula>). Both B20 and RZ19 demonstrate the same general behavior of <inline-formula><mml:math id="M530" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M531" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>m</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> from the explicit BinMod1D steady-state simulation. However, both retrievals underestimate the increase in <inline-formula><mml:math id="M532" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> due to aggregation toward ground by nearly <inline-formula><mml:math id="M533" display="inline"><mml:mn mathvariant="normal">1.0</mml:mn></mml:math></inline-formula> mm. Figure <xref ref-type="fig" rid="F13"/> panels (i) through (k) shows that this is due to the retrievals tendency to approximate the quasi-exponential behavior in the millimeter size range but underestimate the size distribution of large aggregates present in the centimeter range. These sparse but large aggregates that generate in the BinMod1D simulation overall heavily weights the <inline-formula><mml:math id="M534" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> calculation. Both B20 and RZ19 overestimate the snow rates particularly at the surface where both retrievals overestimate the size distribution in the mid-millimeter range (Fig. <xref ref-type="fig" rid="F13"/>k). Figure <xref ref-type="fig" rid="F13"/>c show that B20 retrieves a near constant IWC profile whereas RZ19 retrieves an IWC profiles that increases toward ground unlike the slightly decreasing IWC profile from BinMod1D. Overall, while the retrievals exhibit the correct overall behavior, these retrievals are still fundamentally limited by their inability to account for a changing distribution shape due to aggregation. This is one example where the reference solution provided by BinMod1D could be used to improve the retrieval equations of B20, RZ19, and others. Similarly, BinMod1D reference solutions can also be used to train retrieval-based artificial intelligence models.</p>
      <p id="d2e13303">There are a number of planned future improvements to the BinMod1D package including but not limited to <list list-type="order"><list-item>
      <p id="d2e13308">T-matrix radar forward simulation calculations.</p></list-item><list-item>
      <p id="d2e13312">Additional microphysical processes such as riming, melting, vapor deposition, condensation, evaporation, sublimation, and refreezing.</p></list-item><list-item>
      <p id="d2e13317">Incorporating non-constant coalescence and breakup efficiency parameterizations.</p></list-item><list-item>
      <p id="d2e13321">Incorporation of mixed-phase species (i.e., melting snow).</p></list-item><list-item>
      <p id="d2e13325">Incorporation of additional detailed collision-coalescence parameterizations including those of <xref ref-type="bibr" rid="bib1.bibx41 bib1.bibx42" id="text.106"/> for snow aggregation and collisional breakup.</p></list-item><list-item>
      <p id="d2e13332">The ability to specify a user-prescribed time-dependent top boundary condition for the <monospace>boundary</monospace> input parameter or an initial set of distributions in height.</p></list-item><list-item>
      <p id="d2e13339">Variable order Weighted Essentially Non-Oscillatory (WENO) advection calculations.</p></list-item><list-item>
      <p id="d2e13343">Ability to run the model using GPUs via the CuPy package <xref ref-type="bibr" rid="bib1.bibx40" id="paren.107"/>.</p></list-item></list></p>
</sec>

      
      </body>
    <back><notes notes-type="codedataavailability"><title>Code and data availability</title>

      <p id="d2e13353">The current version of BinMod1D is available at the project website (<uri>https://github.com/NOAA-National-Severe-Storms-Laboratory/BinMod1D</uri>, last access: 27 July 2026) and documented at <uri>https://binmod1d.readthedocs.io/</uri> which is archived on Zenodo at <ext-link xlink:href="https://doi.org/10.5281/zenodo.19890222" ext-link-type="DOI">10.5281/zenodo.19890222</ext-link> <xref ref-type="bibr" rid="bib1.bibx20" id="paren.108"/>. The exact version of the model (v1.0.10) used to produce Figs. 4 through 13 presented in this paper is archived on Zenodo at <ext-link xlink:href="https://doi.org/10.5281/zenodo.19889377" ext-link-type="DOI">10.5281/zenodo.19889377</ext-link> <xref ref-type="bibr" rid="bib1.bibx19" id="paren.109"/>. Readers can reproduce these figures by running the <monospace>reproduce_paper.py</monospace> Python script that is available in the scripts directory. The BinMod1D package can be installed via PIP (<monospace>pip install binmod1d</monospace>), and a Conda Forge distribution is currently under review. For the most up-to-date installation instructions, please visit <uri>https://binmod1d.readthedocs.io/en/latest/installation.html</uri> (last access: 27 July 2026). BinMod1D is distributed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) license, supplemented by specific redistribution and attribution conditions required by the Board of Regents of the University of Oklahoma.</p>
  </notes><notes notes-type="competinginterests"><title>Competing interests</title>

      <p id="d2e13387">The author has declared that there are no competing interests.</p>
  </notes><notes notes-type="disclaimer"><title>Disclaimer</title>

      <p id="d2e13393">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. The authors bear the ultimate responsibility for providing appropriate place names. 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="d2e13399">The author would like to thank Ted Mansell (NSSL) and Jacob Carlin (NSSL) for their suggestions that improved this paper. The author acknowledges the use of Google Gemini Pro for assistance with optimization and refinement of the manuscript's software architecture.</p></ack><notes notes-type="financialsupport"><title>Financial support</title>

      <p id="d2e13404">Funding for this work was provided by the NOAA/Office of Oceanic and Atmospheric Research under NOAA–University of Oklahoma Cooperative Agreement NA21OAR4320204, U.S. Department of Commerce.</p>
  </notes><notes notes-type="reviewstatement"><title>Review statement</title>

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

      <ref id="bib1.bibx1"><label>Alfonso et al.(2008)Alfonso, Raga, and Baumgardner</label><mixed-citation>Alfonso, L., Raga, G. B., and Baumgardner, D.: The validity of the kinetic collection equation revisited, Atmos. Chem. Phys., 8, 969–982, <ext-link xlink:href="https://doi.org/10.5194/acp-8-969-2008" ext-link-type="DOI">10.5194/acp-8-969-2008</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx2"><label>Andrić et al.(2013)Andrić, Kumjian, Zrnić, Straka, and Melnikov</label><mixed-citation>Andrić, J., Kumjian, M. R., Zrnić, D. S., Straka, J. M., and Melnikov, V. M.: Polarimetric signatures above the melting layer in winter storms: An observational and modeling study, J. Appl. Meteorol. Clim., 52, 682–700, <ext-link xlink:href="https://doi.org/10.1175/JAMC-D-12-028.1" ext-link-type="DOI">10.1175/JAMC-D-12-028.1</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx3"><label>Atlas and Ulbrich(1977)</label><mixed-citation>Atlas, D. and Ulbrich, C. W.: Path- and Area-integrated rainfall measurement by microwave attenuation in the 1-3 cm band, J. Appl. Meteorol. Clim., 16, 1322–1331, <ext-link xlink:href="https://doi.org/10.1175/1520-0450(1977)016&lt;1322:PAAIRM&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0450(1977)016&lt;1322:PAAIRM&gt;2.0.CO;2</ext-link>, 1977.</mixed-citation></ref>
      <ref id="bib1.bibx4"><label>Bartman et al.(2022)Bartman, Bulenok, Górski, Jaruga, Łazarski, Olesik, Piasecki, Singer, Talar, and Arabas</label><mixed-citation>Bartman, P., Bulenok, O., Górski, K., Jaruga, A., Łazarski, G., Olesik, M. A., Piasecki, B., Singer, C. E., Talar, A., and Arabas, S.: PySDM v1: particle-based cloud modeling package for warm-rain microphysics and aqueous chemistry, J. Open Source Softw., 7, 3219, <ext-link xlink:href="https://doi.org/10.21105/joss.03219" ext-link-type="DOI">10.21105/joss.03219</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx5"><label>Berry and Reinhardt(1974)</label><mixed-citation>Berry, E. X. and Reinhardt, R. L.: An analysis of cloud drop growth by coalescence: Part I. Double distributions, J. Atmos. Sci., 31, 1814–1824, <ext-link xlink:href="https://doi.org/10.1175/1520-0469(1974)031%3C1814:AAOCDG%3E2.0.CO;2" ext-link-type="DOI">10.1175/1520-0469(1974)031%3C1814:AAOCDG%3E2.0.CO;2</ext-link>, 1974.</mixed-citation></ref>
      <ref id="bib1.bibx6"><label>Best(1950)</label><mixed-citation>Best, A. C.: Empirical formulae for the terminal velocity of water drops falling through the atmosphere, Q. J. Roy. Meteor. Soc., 76, 302–311, <ext-link xlink:href="https://doi.org/10.1002/qj.49707632905" ext-link-type="DOI">10.1002/qj.49707632905</ext-link>, 1950.</mixed-citation></ref>
      <ref id="bib1.bibx7"><label>Bieli et al.(2022)Bieli, Dunbar, de Jong, Jaruga, Schneider, and Bischoff</label><mixed-citation>Bieli, M., Dunbar, O. R. A., de Jong, E. K., Jaruga, A., Schneider, T., and Bischoff, T.: An Efficient Bayesian Approach to Learning Droplet Collision Kernels: Proof of Concept Using “Cloudy”, a New <inline-formula><mml:math id="M535" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula>-Moment Bulk Microphysics Scheme, J. Adv. Model Earth Sy., 14, e2022MS002994, <ext-link xlink:href="https://doi.org/10.1029/2022MS002994" ext-link-type="DOI">10.1029/2022MS002994</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx8"><label>Bleck(1970)</label><mixed-citation>Bleck, R.: A fast, approximative method for integrating the stochastic coalescence equation, J. Geophys. Res., 75, 5165–5171, <ext-link xlink:href="https://doi.org/10.1029/JC075i027p05165" ext-link-type="DOI">10.1029/JC075i027p05165</ext-link>, 1970.</mixed-citation></ref>
      <ref id="bib1.bibx9"><label>Bott(1998)</label><mixed-citation>Bott, A.: A flux method for the numerical solution of the stochastic collection equation, J. Atmos. Sci., 55, 2284–2293, <ext-link xlink:href="https://doi.org/10.1175/1520-0469(1998)055&lt;2284:AFMFTN&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0469(1998)055&lt;2284:AFMFTN&gt;2.0.CO;2</ext-link>, 1998.</mixed-citation></ref>
      <ref id="bib1.bibx10"><label>Bott(2000)</label><mixed-citation>Bott, A.: A flux method for the numerical solution of the stochastic collection equation: Extension to two-dimensional particle distributions, J. Atmos. Sci., 57, 284–294, <ext-link xlink:href="https://doi.org/10.1175/1520-0469(2000)057&lt;0284:AFMFTN&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0469(2000)057&lt;0284:AFMFTN&gt;2.0.CO;2</ext-link>, 2000.</mixed-citation></ref>
      <ref id="bib1.bibx11"><label>Brandes et al.(2002)Brandes, Zhang, and Vivekanandan</label><mixed-citation>Brandes, E. A., Zhang, G., and Vivekanandan, J.: Experiments in Rainfall Estimation with a Polarimetric Radar in a Subtropical Environment, J. Appl. Meteor., 41, 674–685, <ext-link xlink:href="https://doi.org/10.1175/1520-0450(2002)041&lt;0674:EIREWA&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0450(2002)041&lt;0674:EIREWA&gt;2.0.CO;2</ext-link>, 2002.</mixed-citation></ref>
      <ref id="bib1.bibx12"><label>Bukovčić and Krause(2026)</label><mixed-citation>Bukovčić, P. and Krause, J.: Path-CVP (pCVP) – polarimetric radar data snapshot along the predefined path based on Columnar Vertical Profiles, Atmos. Meas. Tech., 19, 775–791, <ext-link xlink:href="https://doi.org/10.5194/amt-19-775-2026" ext-link-type="DOI">10.5194/amt-19-775-2026</ext-link>, 2026.</mixed-citation></ref>
      <ref id="bib1.bibx13"><label>Bukovčić et al.(2020)Bukovčić, Ryzhkov, and Zrnić</label><mixed-citation>Bukovčić, P., Ryzhkov, A. V., and Zrnić, D.: Polarimetric relations for snow estimation – radar verification, J. Appl. Meteorol. Clim., 59, 1–52, <ext-link xlink:href="https://doi.org/10.1175/JAMC-D-19-0140.1" ext-link-type="DOI">10.1175/JAMC-D-19-0140.1</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx14"><label>Chase et al.(2021)Chase, Nesbitt, and McFarquhar</label><mixed-citation>Chase, R. J., Nesbitt, S. W., and McFarquhar, G. M.: A dual-frequency radar retreival of two parameters of the snowfall particle size distribution using a neural network, J. Appl. Meteorol. Clim., 60, 341–359, <ext-link xlink:href="https://doi.org/10.1175/JAMC-D-20-0177.1" ext-link-type="DOI">10.1175/JAMC-D-20-0177.1</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx15"><label>Connolly et al.(2012)Connolly, Emersic, and Field</label><mixed-citation>Connolly, P. J., Emersic, C., and Field, P. R.: A laboratory investigation into the aggregation efficiency of small ice crystals, Atmos. Chem. Phys., 12, 2055–2076, <ext-link xlink:href="https://doi.org/10.5194/acp-12-2055-2012" ext-link-type="DOI">10.5194/acp-12-2055-2012</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx16"><label>Drake(1972)</label><mixed-citation>Drake, R. L.: The scalar transport equation of coalesence theory: Moments and kernels, J. Atmos. Sci., 29, 537–547, <ext-link xlink:href="https://doi.org/10.1175/1520-0469(1972)029&lt;0537:TSTEOC&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0469(1972)029&lt;0537:TSTEOC&gt;2.0.CO;2</ext-link>, 1972.</mixed-citation></ref>
      <ref id="bib1.bibx17"><label>Drake and Wright(1972)</label><mixed-citation>Drake, R. L. and Wright, T. J.: The scalar transport equation of coalesence theory: New families of exact solutions, J. Atmos. Sci., 29, 548–556, <ext-link xlink:href="https://doi.org/10.1175/1520-0469(1972)029&lt;0548:TSTEOC&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0469(1972)029&lt;0548:TSTEOC&gt;2.0.CO;2</ext-link>, 1972.</mixed-citation></ref>
      <ref id="bib1.bibx18"><label>Dunavant(1985)</label><mixed-citation>Dunavant, D. A.: High degree efficient symmetrical Gaussian quadrature rules for the triangle, Int. J. Numer. Meth. Eng., 21, 1129–1148, <ext-link xlink:href="https://doi.org/10.1002/nme.1620210612" ext-link-type="DOI">10.1002/nme.1620210612</ext-link>, 1985.</mixed-citation></ref>
      <ref id="bib1.bibx19"><label>Dunnavan(2026a)</label><mixed-citation>Dunnavan, E. L.: BinMod1D v1.0.10: A Python package for explicitly simulating 1D collisional coalescence/breakup processes with corresponding polarimetric radar signatures, Zenodo [code and data set], <ext-link xlink:href="https://doi.org/10.5281/zenodo.19889377" ext-link-type="DOI">10.5281/zenodo.19889377</ext-link>, 2026a.</mixed-citation></ref>
      <ref id="bib1.bibx20"><label>Dunnavan(2026b)</label><mixed-citation>Dunnavan, E. L.: BinMod1D (v1.0.10) Documentation, Zenodo, <ext-link xlink:href="https://doi.org/10.5281/zenodo.19890222" ext-link-type="DOI">10.5281/zenodo.19890222</ext-link>, 2026b.</mixed-citation></ref>
      <ref id="bib1.bibx21"><label>Dunnavan et al.(2022)Dunnavan, Carlin, Hu, Bukovčić, Ryzhkov, McFarquhar, Finlon, Matrosov, and Delene</label><mixed-citation>Dunnavan, E. L., Carlin, J. T., Hu, J., Bukovčić, P., Ryzhkov, A. V., McFarquhar, G. M., Finlon, J. A., Matrosov, S. Y., and Delene, D. J.: Radar retrieval evaluation and investigation of dendritic growth layer polarimetric signatures in a winter storm, J. Appl. Meteorol. Clim., 61, 1685–1711, <ext-link xlink:href="https://doi.org/10.1175/JAMC-D-21-0220.1" ext-link-type="DOI">10.1175/JAMC-D-21-0220.1</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx22"><label>Enukashvily(1980)</label><mixed-citation>Enukashvily, I. M.: A numerical method for integrating the kinetic equation of coalescence and breakup of cloud droplets, J. Atmos. Sci., 37, 2521–2534, <ext-link xlink:href="https://doi.org/10.1175/1520-0469(1980)037&lt;2521:ANMFIT&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0469(1980)037&lt;2521:ANMFIT&gt;2.0.CO;2</ext-link>, 1980.</mixed-citation></ref>
      <ref id="bib1.bibx23"><label>Feingold et al.(1988)Feingold, Tzivion, and Levin</label><mixed-citation>Feingold, G., Tzivion, S., and Levin, Z.: Evolution of raindrop spectra. Part I: Solution to the Stochastic Collection/Breakup equation using the method of moments, J. Atmos. Sci., 45, 3387–3399, <ext-link xlink:href="https://doi.org/10.1175/1520-0469(1988)045&lt;3387:EORSPI&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0469(1988)045&lt;3387:EORSPI&gt;2.0.CO;2</ext-link>, 1988.</mixed-citation></ref>
      <ref id="bib1.bibx24"><label>Field et al.(2006)Field, Heymsfield, and Bansemer</label><mixed-citation>Field, P. R., Heymsfield, A. J., and Bansemer, A.: A test of ice self-collection kernels using aircraft data, J. Atmos. Sci., 63, 651–666, <ext-link xlink:href="https://doi.org/10.1175/JAS3653.1" ext-link-type="DOI">10.1175/JAS3653.1</ext-link>, 2006.</mixed-citation></ref>
      <ref id="bib1.bibx25"><label>Golovin(1963)</label><mixed-citation>Golovin, A. M.: The solution of the coagulation equation for cloud droplets in a rising air current, Bull. Acad. Sci. SSSR Geophys. Ser. (English Transl.), 482–487,  <uri>http://mi.mathnet.ru/dan27630</uri> (last access: 27 July 2026), 1963.</mixed-citation></ref>
      <ref id="bib1.bibx26"><label>Griffin et al.(2018)Griffin, Schuur, and Ryzhkov</label><mixed-citation>Griffin, E. M., Schuur, T. J., and Ryzhkov, A. V.: A polarimetric analysis of ice microphysical processes in snow, using quasi-vertical profiles, J. Appl. Meteorol. Clim., 57, 31–50, <ext-link xlink:href="https://doi.org/10.1175/JAMC-D-17-0033.1" ext-link-type="DOI">10.1175/JAMC-D-17-0033.1</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx27"><label>Kennedy and Rutledge(2011)</label><mixed-citation>Kennedy, P. C. and Rutledge, S. A.: S-band dual-polarization radar observations of winter storms, J. Appl. Meteorol. Clim., 50, 844–858, <ext-link xlink:href="https://doi.org/10.1175/2010JAMC2558.1" ext-link-type="DOI">10.1175/2010JAMC2558.1</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx28"><label>Khain and Lynn(2009)</label><mixed-citation>Khain, A. and Lynn, B.: Simulation of a supercell storm in clean and dirty atmosphere using weather research and forecast model with spectral bin microphysics, J. Geophys. Res., 114, D19209, <ext-link xlink:href="https://doi.org/10.1029/2009JD011827" ext-link-type="DOI">10.1029/2009JD011827</ext-link>, 2009.</mixed-citation></ref>
      <ref id="bib1.bibx29"><label>Kovetz and Olund(1969)</label><mixed-citation>Kovetz, A. and Olund, B.: The effect of coalescence and condensation on rain formation in a cloud of finite vertical extent, J. Atmos. Sci., 26, 1060–1065, <ext-link xlink:href="https://doi.org/10.1175/1520-0469(1969)026&lt;1060:TEOCAC&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0469(1969)026&lt;1060:TEOCAC&gt;2.0.CO;2</ext-link>, 1969.</mixed-citation></ref>
      <ref id="bib1.bibx30"><label>Kumar and Ramkrishna(1996)</label><mixed-citation>Kumar, S. and Ramkrishna, D.: On the solution of population balance equations by discretization – I. A fixed pivot technique, Chem. Eng. Sci., 51, 1311–1332, <ext-link xlink:href="https://doi.org/10.1016/0009-2509(96)88489-2" ext-link-type="DOI">10.1016/0009-2509(96)88489-2</ext-link>, 1996.</mixed-citation></ref>
      <ref id="bib1.bibx31"><label>Kumjian and Prat(2014)</label><mixed-citation>Kumjian, M. R. and Prat, O. P.: The impact of raindrop collisional processes on the polarimetric radar variables, J. Atmos. Sci., 71, 3052–3067, <ext-link xlink:href="https://doi.org/10.1175/JAS-D-13-0357.1" ext-link-type="DOI">10.1175/JAS-D-13-0357.1</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx32"><label>Lam et al.(2015)Lam, Pitrou, and Seibert</label><mixed-citation>Lam, S. K., Pitrou, A., and Seibert, S.: Numba: A LLVM-based Python JIT compiler, in: Proceedings of the Second Workshop on the LLVM Compiler Infrastructure in HPC, LLVM '15,   Association for Computing Machinery, New York, NY, USA, 1–6,  <ext-link xlink:href="https://doi.org/10.1145/2833157.2833162" ext-link-type="DOI">10.1145/2833157.2833162</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx33"><label>Long(1974)</label><mixed-citation>Long, A. B.: Solutions to the droplet collection equation for polynomial kernels, J. Atmos. Sci., 31, 1040–1051, <ext-link xlink:href="https://doi.org/10.1175/1520-0469(1974)031&lt;1040:STTDCE&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0469(1974)031&lt;1040:STTDCE&gt;2.0.CO;2</ext-link>, 1974.</mixed-citation></ref>
      <ref id="bib1.bibx34"><label>Low and List(1982a)</label><mixed-citation>Low, T. B. and List, R.: Collision, coalescence, and breakup of raindrops. Part I: Experimentally established coalescence efficiencies and fragment size distributions in breakup, J. Atmos. Sci., 39, 1591–1606, <ext-link xlink:href="https://doi.org/10.1175/1520-0469(1982)039&lt;1591:CCABOR&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0469(1982)039&lt;1591:CCABOR&gt;2.0.CO;2</ext-link>, 1982a.</mixed-citation></ref>
      <ref id="bib1.bibx35"><label>Low and List(1982b)</label><mixed-citation>Low, T. B. and List, R.: Collision, coalescence, and breakup of raindrops. Part II: Parameterization of fragment size distributions, J. Atmos. Sci., 39, 1607–1618, <ext-link xlink:href="https://doi.org/10.1175/1520-0469(1982)039&lt;1607:CCABOR&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0469(1982)039&lt;1607:CCABOR&gt;2.0.CO;2</ext-link>, 1982b.</mixed-citation></ref>
      <ref id="bib1.bibx36"><label>McFarquhar(2004)</label><mixed-citation>McFarquhar, G. M.: A new representation of collision-induced breakup of raindrops and its implications for the shapes of raindrop size distributions, J. Atmos. Sci., 61, 777–794, <ext-link xlink:href="https://doi.org/10.1175/1520-0469(2004)061&lt;0777:ANROCB&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0469(2004)061&lt;0777:ANROCB&gt;2.0.CO;2</ext-link>, 2004.</mixed-citation></ref>
      <ref id="bib1.bibx37"><label>McLeod(1964)</label><mixed-citation>McLeod, J. B.: On the Scalar Transport Equation, Proc. Lond. Math. Soc., 14, 445–458, <ext-link xlink:href="https://doi.org/10.1112/plms/s3-14.3.445" ext-link-type="DOI">10.1112/plms/s3-14.3.445</ext-link>, 1964.</mixed-citation></ref>
      <ref id="bib1.bibx38"><label>Mitchell(1991)</label><mixed-citation>Mitchell, D. L.: Evolution of snow-size spectra in cyclonic storms. Part II: Deviations from exponential form, J. Atmos. Sci., 48, 1885–1899, <ext-link xlink:href="https://doi.org/10.1175/1520-0469(1991)048&lt;1885:EOSSSI&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0469(1991)048&lt;1885:EOSSSI&gt;2.0.CO;2</ext-link>, 1991.</mixed-citation></ref>
      <ref id="bib1.bibx39"><label>Murphy et al.(2020)Murphy, Ryzhkov, and Zhang</label><mixed-citation>Murphy, A. M., Ryzhkov, A., and Zhang, P.: Columnar vertical profiles (CVP) methodology for validating polarimetric retrievals in ice using in situ aircraft measurements, J. Atmos. Ocean. Technol., 37, 1623–1642, <ext-link xlink:href="https://doi.org/10.1175/JTECH-D-20-0011.1" ext-link-type="DOI">10.1175/JTECH-D-20-0011.1</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx40"><label>Okuta et al.(2017)Okuta, Unno, Nishino, Hido, and Loomis</label><mixed-citation>Okuta, R., Unno, Y., Nishino, D., Hido, S., and Loomis, C.: CuPy: A NumPy-Compatible Library for NVIDIA GPU Calculations, in: Proceedings of Workshop on Machine Learning Systems (LearningSys) in The Thirty-first Annual Conference on Neural Information Processing Systems (NIPS), <uri>http://learningsys.org/nips17/assets/papers/paper_16.pdf</uri> (last access: 27 July 2026), 2017.</mixed-citation></ref>
      <ref id="bib1.bibx41"><label>Phillips et al.(2015)Phillips, Formenton, Bansemer, Kudzotsa, and Lienert</label><mixed-citation>Phillips, V. T. J., Formenton, M., Bansemer, A., Kudzotsa, I., and Lienert, B.: A parameterization of sticking efficiency for collisions of snow and graupel with ice crystals, J. Atmos. Sci., 72, 4885–4902, <ext-link xlink:href="https://doi.org/10.1175/JAS-D-14-0096.1" ext-link-type="DOI">10.1175/JAS-D-14-0096.1</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx42"><label>Phillips et al.(2017)Phillips, Yano, and Khain</label><mixed-citation>Phillips, V. T. J., Yano, J.-I., and Khain, A.: Ice multiplication by breakup in ice-ice collisions. Part I: Theoretical formulation, J. Atmos. Sci., 74, 1705–1719, <ext-link xlink:href="https://doi.org/10.1175/JAS-D-16-0224.1" ext-link-type="DOI">10.1175/JAS-D-16-0224.1</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx43"><label>Prat and Barros(2007a)</label><mixed-citation>Prat, O. P. and Barros, A. P.: A robust numerical solution of the stochastic collection–breakup equation for warm rain, J. Atmos. Sci., 46, 1480–1497, <ext-link xlink:href="https://doi.org/10.1175/JAM2544.1" ext-link-type="DOI">10.1175/JAM2544.1</ext-link>, 2007a.</mixed-citation></ref>
      <ref id="bib1.bibx44"><label>Prat and Barros(2007b)</label><mixed-citation>Prat, O. P. and Barros, A. P.: Exploring the use of a column model for the characterization of microphysical processes in warm rain: results from a homogeneous rainshaft model, Adv. Geosci., 10, 145–152, <ext-link xlink:href="https://doi.org/10.5194/adgeo-10-145-2007" ext-link-type="DOI">10.5194/adgeo-10-145-2007</ext-link>, 2007b.</mixed-citation></ref>
      <ref id="bib1.bibx45"><label>Prat et al.(2012)Prat, Barros, and Testik</label><mixed-citation>Prat, O. P., Barros, A. P., and Testik, F. Y.: On the influence of raindrop collision outcomes on equlibrium drop size distributions, J. Atmos. Sci., 69, 1534–1546, <ext-link xlink:href="https://doi.org/10.1175/JAS-D-11-0192.1" ext-link-type="DOI">10.1175/JAS-D-11-0192.1</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx46"><label>Ryzhkov et al.(2011)Ryzhkov, Pinsky, Pokrovsky, and Khain</label><mixed-citation>Ryzhkov, A., Pinsky, M., Pokrovsky, A., and Khain, A.: Polarimetric radar observation operator for a cloud model with spectral microphysics, J. Appl. Meteorol. Clim., 50, 873–894, <ext-link xlink:href="https://doi.org/10.1175/2010JAMC2363.1" ext-link-type="DOI">10.1175/2010JAMC2363.1</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx47"><label>Ryzhkov et al.(2016)Ryzhkov, Zhang, Reeves, Kumjian, Tschallener, Trömel, and Simmer</label><mixed-citation>Ryzhkov, A., Zhang, P., Reeves, H., Kumjian, M., Tschallener, T., Trömel, S., and Simmer, C.: Quasi-Vertical Profiles – A new way to look at polarimetric radar data, J. Atmos. Ocean. Technol., 33, 551–562, <ext-link xlink:href="https://doi.org/10.1175/JTECH-D-15-0020.1" ext-link-type="DOI">10.1175/JTECH-D-15-0020.1</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx48"><label>Ryzhkov and Zrnić(2019)</label><mixed-citation>Ryzhkov, A. V. and Zrnić, D. S.: Radar polarimetry for weather observations, Springer Atmospheric Sciences, <ext-link xlink:href="https://doi.org/10.1007/978-3-030-05093-1" ext-link-type="DOI">10.1007/978-3-030-05093-1</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx49"><label>Safronov(1962)</label><mixed-citation>Safronov, V. S.: A particular case of the solution of the coagulation equation, Dokl. Acad. Nauk SSSR, 147, 64–67, <uri>https://mathnet.ru/dan27172</uri> (last access: 27 July 2026), 1962.</mixed-citation></ref>
      <ref id="bib1.bibx50"><label>Schrom et al.(2015)Schrom, Kumjian, and Lu</label><mixed-citation>Schrom, R. S., Kumjian, M. R., and Lu, Y.: Polarimetric radar signatures of dendritic growth zones within Colorado winter storms, J. Appl. Meteorol. Clim., 54, 2365–2388, <ext-link xlink:href="https://doi.org/10.1175/JAMC-D-15-0004.1" ext-link-type="DOI">10.1175/JAMC-D-15-0004.1</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx51"><label>Scott(1968)</label><mixed-citation>Scott, W. T.: Analytical studies of cloud droplet coalesence I, J. Atmos. Sci., 25, 54–65, <ext-link xlink:href="https://doi.org/10.1175/1520-0469(1968)025&lt;0054:ASOCDC&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0469(1968)025&lt;0054:ASOCDC&gt;2.0.CO;2</ext-link>, 1968.</mixed-citation></ref>
      <ref id="bib1.bibx52"><label>Shima et al.(2009)Shima, Kusano, Kawano, Sugiyama, and Kawahara</label><mixed-citation>Shima, S., 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, Q. J. Roy. Meteor. Soc., 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.bibx53"><label>Simmel et al.(2002)Simmel, Trautmann, and Tetzlaff</label><mixed-citation>Simmel, M., Trautmann, T., and Tetzlaff, G.: Numerical solution of the stochastic collection equation – comparison of the Linear Discrete Method with other methods, Atmos. Res., 61, 135–148, <ext-link xlink:href="https://doi.org/10.1016/S0169-8095(01)00131-4" ext-link-type="DOI">10.1016/S0169-8095(01)00131-4</ext-link>, 2002.</mixed-citation></ref>
      <ref id="bib1.bibx54"><label>Smoluchowski(1917)</label><mixed-citation>Smoluchowski, M.: Versuch einer mathematischen Theorie der Koagulations-kinetik kolloider Lösungen, Z. Phys. Chem., 92, 129–168, <ext-link xlink:href="https://doi.org/10.1515/zpch-1918-9209" ext-link-type="DOI">10.1515/zpch-1918-9209</ext-link>, 1917. </mixed-citation></ref>
      <ref id="bib1.bibx55"><label>Stammler and Birnstiel(2022)</label><mixed-citation>Stammler, S. M. and Birnstiel, T.: DustPy: A Python Package for Dust Evolution in Protoplanetary Disks, Astrophys. J., 935, 35, <ext-link xlink:href="https://doi.org/10.3847/1538-4357/ac7d58" ext-link-type="DOI">10.3847/1538-4357/ac7d58</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx56"><label>Straub et al.(2010)Straub, Beheng, Seifert, Schlottke, and Weigand</label><mixed-citation>Straub, W., Beheng, K. D., Seifert, A., Schlottke, J., and Weigand, B.: Numerical investigation of collision-induced breakup of raindrops. Part II: Parameterizations of coalescence efficiencies and fragment size distributions, J. Atmos. Sci., 46, 576–588, <ext-link xlink:href="https://doi.org/10.1175/2009JAS3175.1" ext-link-type="DOI">10.1175/2009JAS3175.1</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx57"><label>Tobin and Kumjian(2017)</label><mixed-citation>Tobin, D. M. and Kumjian, M. R.: Polarimetric radar and surface-based precipitation-type observations of ice pellet to freezing rain transitions, Weather Forecast., 32, 2065–2082, <ext-link xlink:href="https://doi.org/10.1175/WAF-D-17-0054.1" ext-link-type="DOI">10.1175/WAF-D-17-0054.1</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx58"><label>Tzivion et al.(1987)Tzivion, Feingold, and Levin</label><mixed-citation>Tzivion, S., Feingold, G., and Levin, Z.: An efficient numerical solution to the Stochastic Collection Equation, J. Atmos. Sci., 44, 3139–3149, <ext-link xlink:href="https://doi.org/10.1175/1520-0469(1987)044&lt;3139:AENSTT&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0469(1987)044&lt;3139:AENSTT&gt;2.0.CO;2</ext-link>, 1987.</mixed-citation></ref>
      <ref id="bib1.bibx59"><label>Unterstrasser et al.(2020)Unterstrasser, Hoffman, and Lerch</label><mixed-citation>Unterstrasser, S., Hoffmann, F., and Lerch, M.: Collisional growth in a particle-based cloud microphysical model: insights from column model simulations using LCM1D (v1.0), Geosci. Model Dev., 13, 5119–5145, <ext-link xlink:href="https://doi.org/10.5194/gmd-13-5119-2020" ext-link-type="DOI">10.5194/gmd-13-5119-2020</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx60"><label>Wang et al.(2007)Wang, Xue, and Grabowski</label><mixed-citation>Wang, L.-P., Xue, Y., and Grabowski, W. W.: A bin integral method for solving the kinetic collection equation, J. Comput. Phys., 226, 59–88, <ext-link xlink:href="https://doi.org/10.1016/j.jcp.2007.03.029" ext-link-type="DOI">10.1016/j.jcp.2007.03.029</ext-link>, 2007.</mixed-citation></ref>

  </ref-list></back>
    <!--<article-title-html>BinMod1D v1.0.10: a Python package for explicitly simulating 1D collisional coalescence/breakup processes with corresponding polarimetric radar signatures</article-title-html>
<abstract-html/>
<ref-html id="bib1.bib1"><label>Alfonso et al.(2008)Alfonso, Raga, and Baumgardner</label><mixed-citation>
      
Alfonso, L., Raga, G. B., and Baumgardner, D.: The validity of the kinetic collection equation revisited, Atmos. Chem. Phys., 8, 969–982, <a href="https://doi.org/10.5194/acp-8-969-2008" target="_blank">https://doi.org/10.5194/acp-8-969-2008</a>, 2008.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib2"><label>Andrić et al.(2013)Andrić, Kumjian, Zrnić, Straka, and
Melnikov</label><mixed-citation>
      
Andrić, J., Kumjian, M. R., Zrnić, D. S., Straka, J. M., and Melnikov,
V. M.: Polarimetric signatures above the melting layer in winter storms: An
observational and modeling study, J. Appl. Meteorol. Clim., 52,
682–700, <a href="https://doi.org/10.1175/JAMC-D-12-028.1" target="_blank">https://doi.org/10.1175/JAMC-D-12-028.1</a>, 2013.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib3"><label>Atlas and Ulbrich(1977)</label><mixed-citation>
      
Atlas, D. and Ulbrich, C. W.: Path- and Area-integrated rainfall measurement
by microwave attenuation in the 1-3 cm band, J. Appl. Meteorol. Clim.,
16, 1322–1331, <a href="https://doi.org/10.1175/1520-0450(1977)016&lt;1322:PAAIRM&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0450(1977)016&lt;1322:PAAIRM&gt;2.0.CO;2</a>, 1977.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib4"><label>Bartman et al.(2022)Bartman, Bulenok, Górski, Jaruga, Łazarski,
Olesik, Piasecki, Singer, Talar, and Arabas</label><mixed-citation>
      
Bartman, P., Bulenok, O., Górski, K., Jaruga, A., Łazarski, G., Olesik,
M. A., Piasecki, B., Singer, C. E., Talar, A., and Arabas, S.: PySDM v1:
particle-based cloud modeling package for warm-rain microphysics and aqueous
chemistry, J. Open Source Softw., 7, 3219, <a href="https://doi.org/10.21105/joss.03219" target="_blank">https://doi.org/10.21105/joss.03219</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib5"><label>Berry and Reinhardt(1974)</label><mixed-citation>
      
Berry, E. X. and Reinhardt, R. L.: An analysis of cloud drop growth by
coalescence: Part I. Double distributions, J. Atmos. Sci., 31,
1814–1824, <a href="https://doi.org/10.1175/1520-0469(1974)031%3C1814:AAOCDG%3E2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0469(1974)031%3C1814:AAOCDG%3E2.0.CO;2</a>, 1974.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib6"><label>Best(1950)</label><mixed-citation>
      
Best, A. C.: Empirical formulae for the terminal velocity of water drops
falling through the atmosphere, Q. J. Roy. Meteor. Soc., 76,
302–311, <a href="https://doi.org/10.1002/qj.49707632905" target="_blank">https://doi.org/10.1002/qj.49707632905</a>, 1950.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib7"><label>Bieli et al.(2022)Bieli, Dunbar, de Jong, Jaruga, Schneider, and
Bischoff</label><mixed-citation>
      
Bieli, M., Dunbar, O. R. A., de Jong, E. K., Jaruga, A., Schneider, T., and
Bischoff, T.: An Efficient Bayesian Approach to Learning Droplet Collision
Kernels: Proof of Concept Using “Cloudy”, a New <i>n</i>-Moment Bulk
Microphysics Scheme, J. Adv. Model Earth Sy., 14, e2022MS002994,
<a href="https://doi.org/10.1029/2022MS002994" target="_blank">https://doi.org/10.1029/2022MS002994</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib8"><label>Bleck(1970)</label><mixed-citation>
      
Bleck, R.: A fast, approximative method for integrating the stochastic
coalescence equation, J. Geophys. Res., 75, 5165–5171,
<a href="https://doi.org/10.1029/JC075i027p05165" target="_blank">https://doi.org/10.1029/JC075i027p05165</a>, 1970.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib9"><label>Bott(1998)</label><mixed-citation>
      
Bott, A.: A flux method for the numerical solution of the stochastic collection
equation, J. Atmos. Sci., 55, 2284–2293,
<a href="https://doi.org/10.1175/1520-0469(1998)055&lt;2284:AFMFTN&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0469(1998)055&lt;2284:AFMFTN&gt;2.0.CO;2</a>, 1998.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib10"><label>Bott(2000)</label><mixed-citation>
      
Bott, A.: A flux method for the numerical solution of the stochastic
collection equation: Extension to two-dimensional particle distributions,
J. Atmos. Sci., 57, 284–294,
<a href="https://doi.org/10.1175/1520-0469(2000)057&lt;0284:AFMFTN&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0469(2000)057&lt;0284:AFMFTN&gt;2.0.CO;2</a>, 2000.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib11"><label>Brandes et al.(2002)Brandes, Zhang, and Vivekanandan</label><mixed-citation>
      
Brandes, E. A., Zhang, G., and Vivekanandan, J.: Experiments in Rainfall
Estimation with a Polarimetric Radar in a Subtropical Environment, J. Appl.
Meteor., 41, 674–685, <a href="https://doi.org/10.1175/1520-0450(2002)041&lt;0674:EIREWA&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0450(2002)041&lt;0674:EIREWA&gt;2.0.CO;2</a>,
2002.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib12"><label>Bukovčić and Krause(2026)</label><mixed-citation>
      
Bukovčić, P. and Krause, J.: Path-CVP (pCVP) – polarimetric radar data snapshot along the predefined path based on Columnar Vertical Profiles, Atmos. Meas. Tech., 19, 775–791, <a href="https://doi.org/10.5194/amt-19-775-2026" target="_blank">https://doi.org/10.5194/amt-19-775-2026</a>, 2026.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib13"><label>Bukovčić et al.(2020)Bukovčić, Ryzhkov, and
Zrnić</label><mixed-citation>
      
Bukovčić, P., Ryzhkov, A. V., and Zrnić, D.: Polarimetric relations
for snow estimation – radar verification, J. Appl. Meteorol. Clim., 59,
1–52, <a href="https://doi.org/10.1175/JAMC-D-19-0140.1" target="_blank">https://doi.org/10.1175/JAMC-D-19-0140.1</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib14"><label>Chase et al.(2021)Chase, Nesbitt, and McFarquhar</label><mixed-citation>
      
Chase, R. J., Nesbitt, S. W., and McFarquhar, G. M.: A dual-frequency radar
retreival of two parameters of the snowfall particle size distribution using
a neural network, J. Appl. Meteorol. Clim., 60, 341–359,
<a href="https://doi.org/10.1175/JAMC-D-20-0177.1" target="_blank">https://doi.org/10.1175/JAMC-D-20-0177.1</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib15"><label>Connolly et al.(2012)Connolly, Emersic, and Field</label><mixed-citation>
      
Connolly, P. J., Emersic, C., and Field, P. R.: A laboratory investigation into the aggregation efficiency of small ice crystals, Atmos. Chem. Phys., 12, 2055–2076, <a href="https://doi.org/10.5194/acp-12-2055-2012" target="_blank">https://doi.org/10.5194/acp-12-2055-2012</a>, 2012.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib16"><label>Drake(1972)</label><mixed-citation>
      
Drake, R. L.: The scalar transport equation of coalesence theory: Moments and
kernels, J. Atmos. Sci., 29, 537–547,
<a href="https://doi.org/10.1175/1520-0469(1972)029&lt;0537:TSTEOC&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0469(1972)029&lt;0537:TSTEOC&gt;2.0.CO;2</a>, 1972.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib17"><label>Drake and Wright(1972)</label><mixed-citation>
      
Drake, R. L. and Wright, T. J.: The scalar transport equation of coalesence
theory: New families of exact solutions, J. Atmos. Sci., 29, 548–556,
<a href="https://doi.org/10.1175/1520-0469(1972)029&lt;0548:TSTEOC&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0469(1972)029&lt;0548:TSTEOC&gt;2.0.CO;2</a>, 1972.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib18"><label>Dunavant(1985)</label><mixed-citation>
      
Dunavant, D. A.: High degree efficient symmetrical Gaussian quadrature rules
for the triangle, Int. J. Numer. Meth. Eng., 21, 1129–1148,
<a href="https://doi.org/10.1002/nme.1620210612" target="_blank">https://doi.org/10.1002/nme.1620210612</a>, 1985.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib19"><label>Dunnavan(2026a)</label><mixed-citation>
      
Dunnavan, E. L.: BinMod1D v1.0.10: A Python package for explicitly simulating
1D collisional coalescence/breakup processes with corresponding polarimetric
radar signatures, Zenodo [code and data set],
<a href="https://doi.org/10.5281/zenodo.19889377" target="_blank">https://doi.org/10.5281/zenodo.19889377</a>, 2026a.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib20"><label>Dunnavan(2026b)</label><mixed-citation>
      
Dunnavan, E. L.: BinMod1D (v1.0.10) Documentation, Zenodo,
<a href="https://doi.org/10.5281/zenodo.19890222" target="_blank">https://doi.org/10.5281/zenodo.19890222</a>, 2026b.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib21"><label>Dunnavan et al.(2022)Dunnavan, Carlin, Hu, Bukovčić, Ryzhkov,
McFarquhar, Finlon, Matrosov, and Delene</label><mixed-citation>
      
Dunnavan, E. L., Carlin, J. T., Hu, J., Bukovčić, P., Ryzhkov, A. V.,
McFarquhar, G. M., Finlon, J. A., Matrosov, S. Y., and Delene, D. J.: Radar
retrieval evaluation and investigation of dendritic growth layer polarimetric
signatures in a winter storm, J. Appl. Meteorol. Clim., 61, 1685–1711,
<a href="https://doi.org/10.1175/JAMC-D-21-0220.1" target="_blank">https://doi.org/10.1175/JAMC-D-21-0220.1</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib22"><label>Enukashvily(1980)</label><mixed-citation>
      
Enukashvily, I. M.: A numerical method for integrating the kinetic equation of
coalescence and breakup of cloud droplets, J. Atmos. Sci., 37, 2521–2534,
<a href="https://doi.org/10.1175/1520-0469(1980)037&lt;2521:ANMFIT&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0469(1980)037&lt;2521:ANMFIT&gt;2.0.CO;2</a>, 1980.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib23"><label>Feingold et al.(1988)Feingold, Tzivion, and Levin</label><mixed-citation>
      
Feingold, G., Tzivion, S., and Levin, Z.: Evolution of raindrop spectra. Part
I: Solution to the Stochastic Collection/Breakup equation using the method of
moments, J. Atmos. Sci., 45, 3387–3399,
<a href="https://doi.org/10.1175/1520-0469(1988)045&lt;3387:EORSPI&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0469(1988)045&lt;3387:EORSPI&gt;2.0.CO;2</a>, 1988.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib24"><label>Field et al.(2006)Field, Heymsfield, and Bansemer</label><mixed-citation>
      
Field, P. R., Heymsfield, A. J., and Bansemer, A.: A test of ice
self-collection kernels using aircraft data, J. Atmos. Sci., 63, 651–666,
<a href="https://doi.org/10.1175/JAS3653.1" target="_blank">https://doi.org/10.1175/JAS3653.1</a>, 2006.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib25"><label>Golovin(1963)</label><mixed-citation>
      
Golovin, A. M.: The solution of the coagulation equation for cloud droplets in
a rising air current, Bull. Acad. Sci. SSSR Geophys. Ser. (English Transl.),
482–487,  <a href="http://mi.mathnet.ru/dan27630" target="_blank"/> (last access: 27 July 2026), 1963.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib26"><label>Griffin et al.(2018)Griffin, Schuur, and Ryzhkov</label><mixed-citation>
      
Griffin, E. M., Schuur, T. J., and Ryzhkov, A. V.: A polarimetric analysis of
ice microphysical processes in snow, using quasi-vertical profiles, J.
Appl. Meteorol. Clim., 57, 31–50, <a href="https://doi.org/10.1175/JAMC-D-17-0033.1" target="_blank">https://doi.org/10.1175/JAMC-D-17-0033.1</a>, 2018.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib27"><label>Kennedy and Rutledge(2011)</label><mixed-citation>
      
Kennedy, P. C. and Rutledge, S. A.: S-band dual-polarization radar observations
of winter storms, J. Appl. Meteorol. Clim., 50, 844–858,
<a href="https://doi.org/10.1175/2010JAMC2558.1" target="_blank">https://doi.org/10.1175/2010JAMC2558.1</a>, 2011.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib28"><label>Khain and Lynn(2009)</label><mixed-citation>
      
Khain, A. and Lynn, B.: Simulation of a supercell storm in clean and dirty
atmosphere using weather research and forecast model with spectral bin
microphysics, J. Geophys. Res., 114, D19209, <a href="https://doi.org/10.1029/2009JD011827" target="_blank">https://doi.org/10.1029/2009JD011827</a>,
2009.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib29"><label>Kovetz and Olund(1969)</label><mixed-citation>
      
Kovetz, A. and Olund, B.: The effect of coalescence and condensation on rain
formation in a cloud of finite vertical extent, J. Atmos. Sci., 26,
1060–1065, <a href="https://doi.org/10.1175/1520-0469(1969)026&lt;1060:TEOCAC&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0469(1969)026&lt;1060:TEOCAC&gt;2.0.CO;2</a>, 1969.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib30"><label>Kumar and Ramkrishna(1996)</label><mixed-citation>
      
Kumar, S. and Ramkrishna, D.: On the solution of population balance equations
by discretization – I. A fixed pivot technique, Chem. Eng. Sci., 51,
1311–1332, <a href="https://doi.org/10.1016/0009-2509(96)88489-2" target="_blank">https://doi.org/10.1016/0009-2509(96)88489-2</a>, 1996.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib31"><label>Kumjian and Prat(2014)</label><mixed-citation>
      
Kumjian, M. R. and Prat, O. P.: The impact of raindrop collisional processes on
the polarimetric radar variables, J. Atmos. Sci., 71, 3052–3067,
<a href="https://doi.org/10.1175/JAS-D-13-0357.1" target="_blank">https://doi.org/10.1175/JAS-D-13-0357.1</a>, 2014.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib32"><label>Lam et al.(2015)Lam, Pitrou, and Seibert</label><mixed-citation>
      
Lam, S. K., Pitrou, A., and Seibert, S.: Numba: A LLVM-based Python JIT
compiler, in: Proceedings of the Second Workshop on the LLVM Compiler
Infrastructure in HPC, LLVM '15,   Association for Computing
Machinery, New York, NY, USA, 1–6,  <a href="https://doi.org/10.1145/2833157.2833162" target="_blank">https://doi.org/10.1145/2833157.2833162</a>, 2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib33"><label>Long(1974)</label><mixed-citation>
      
Long, A. B.: Solutions to the droplet collection equation for polynomial
kernels, J. Atmos. Sci., 31, 1040–1051,
<a href="https://doi.org/10.1175/1520-0469(1974)031&lt;1040:STTDCE&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0469(1974)031&lt;1040:STTDCE&gt;2.0.CO;2</a>, 1974.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib34"><label>Low and List(1982a)</label><mixed-citation>
      
Low, T. B. and List, R.: Collision, coalescence, and breakup of raindrops.
Part I: Experimentally established coalescence efficiencies and fragment size
distributions in breakup, J. Atmos. Sci., 39, 1591–1606,
<a href="https://doi.org/10.1175/1520-0469(1982)039&lt;1591:CCABOR&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0469(1982)039&lt;1591:CCABOR&gt;2.0.CO;2</a>, 1982a.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib35"><label>Low and List(1982b)</label><mixed-citation>
      
Low, T. B. and List, R.: Collision, coalescence, and breakup of raindrops.
Part II: Parameterization of fragment size distributions, J. Atmos. Sci.,
39, 1607–1618, <a href="https://doi.org/10.1175/1520-0469(1982)039&lt;1607:CCABOR&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0469(1982)039&lt;1607:CCABOR&gt;2.0.CO;2</a>,
1982b.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib36"><label>McFarquhar(2004)</label><mixed-citation>
      
McFarquhar, G. M.: A new representation of collision-induced breakup of
raindrops and its implications for the shapes of raindrop size
distributions, J. Atmos. Sci., 61, 777–794,
<a href="https://doi.org/10.1175/1520-0469(2004)061&lt;0777:ANROCB&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0469(2004)061&lt;0777:ANROCB&gt;2.0.CO;2</a>, 2004.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib37"><label>McLeod(1964)</label><mixed-citation>
      
McLeod, J. B.: On the Scalar Transport Equation, Proc. Lond. Math. Soc., 14,
445–458, <a href="https://doi.org/10.1112/plms/s3-14.3.445" target="_blank">https://doi.org/10.1112/plms/s3-14.3.445</a>, 1964.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib38"><label>Mitchell(1991)</label><mixed-citation>
      
Mitchell, D. L.: Evolution of snow-size spectra in cyclonic storms. Part II:
Deviations from exponential form, J. Atmos. Sci., 48, 1885–1899,
<a href="https://doi.org/10.1175/1520-0469(1991)048&lt;1885:EOSSSI&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0469(1991)048&lt;1885:EOSSSI&gt;2.0.CO;2</a>, 1991.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib39"><label>Murphy et al.(2020)Murphy, Ryzhkov, and Zhang</label><mixed-citation>
      
Murphy, A. M., Ryzhkov, A., and Zhang, P.: Columnar vertical profiles (CVP)
methodology for validating polarimetric retrievals in ice using in situ
aircraft measurements, J. Atmos. Ocean. Technol., 37, 1623–1642,
<a href="https://doi.org/10.1175/JTECH-D-20-0011.1" target="_blank">https://doi.org/10.1175/JTECH-D-20-0011.1</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib40"><label>Okuta et al.(2017)Okuta, Unno, Nishino, Hido, and Loomis</label><mixed-citation>
      
Okuta, R., Unno, Y., Nishino, D., Hido, S., and Loomis, C.: CuPy: A
NumPy-Compatible Library for NVIDIA GPU Calculations, in: Proceedings of
Workshop on Machine Learning Systems (LearningSys) in The Thirty-first Annual
Conference on Neural Information Processing Systems (NIPS),
<a href="http://learningsys.org/nips17/assets/papers/paper_16.pdf" target="_blank"/> (last access: 27 July 2026),
2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib41"><label>Phillips et al.(2015)Phillips, Formenton, Bansemer, Kudzotsa, and
Lienert</label><mixed-citation>
      
Phillips, V. T. J., Formenton, M., Bansemer, A., Kudzotsa, I., and Lienert, B.:
A parameterization of sticking efficiency for collisions of snow and graupel
with ice crystals, J. Atmos. Sci., 72, 4885–4902,
<a href="https://doi.org/10.1175/JAS-D-14-0096.1" target="_blank">https://doi.org/10.1175/JAS-D-14-0096.1</a>, 2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib42"><label>Phillips et al.(2017)Phillips, Yano, and Khain</label><mixed-citation>
      
Phillips, V. T. J., Yano, J.-I., and Khain, A.: Ice multiplication by breakup
in ice-ice collisions. Part I: Theoretical formulation, J. Atmos. Sci.,
74, 1705–1719, <a href="https://doi.org/10.1175/JAS-D-16-0224.1" target="_blank">https://doi.org/10.1175/JAS-D-16-0224.1</a>, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib43"><label>Prat and Barros(2007a)</label><mixed-citation>
      
Prat, O. P. and Barros, A. P.: A robust numerical solution of the stochastic
collection–breakup equation for warm rain, J. Atmos. Sci., 46,
1480–1497, <a href="https://doi.org/10.1175/JAM2544.1" target="_blank">https://doi.org/10.1175/JAM2544.1</a>, 2007a.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib44"><label>Prat and Barros(2007b)</label><mixed-citation>
      
Prat, O. P. and Barros, A. P.: Exploring the use of a column model for the characterization of microphysical processes in warm rain: results from a homogeneous rainshaft model, Adv. Geosci., 10, 145–152, <a href="https://doi.org/10.5194/adgeo-10-145-2007" target="_blank">https://doi.org/10.5194/adgeo-10-145-2007</a>, 2007b.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib45"><label>Prat et al.(2012)Prat, Barros, and Testik</label><mixed-citation>
      
Prat, O. P., Barros, A. P., and Testik, F. Y.: On the influence of raindrop
collision outcomes on equlibrium drop size distributions, J. Atmos. Sci.,
69, 1534–1546, <a href="https://doi.org/10.1175/JAS-D-11-0192.1" target="_blank">https://doi.org/10.1175/JAS-D-11-0192.1</a>, 2012.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib46"><label>Ryzhkov et al.(2011)Ryzhkov, Pinsky, Pokrovsky, and
Khain</label><mixed-citation>
      
Ryzhkov, A., Pinsky, M., Pokrovsky, A., and Khain, A.: Polarimetric radar
observation operator for a cloud model with spectral microphysics, J. Appl.
Meteorol. Clim., 50, 873–894, <a href="https://doi.org/10.1175/2010JAMC2363.1" target="_blank">https://doi.org/10.1175/2010JAMC2363.1</a>, 2011.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib47"><label>Ryzhkov et al.(2016)Ryzhkov, Zhang, Reeves, Kumjian, Tschallener,
Trömel, and Simmer</label><mixed-citation>
      
Ryzhkov, A., Zhang, P., Reeves, H., Kumjian, M., Tschallener, T., Trömel,
S., and Simmer, C.: Quasi-Vertical Profiles – A new way to look at
polarimetric radar data, J. Atmos. Ocean. Technol., 33, 551–562,
<a href="https://doi.org/10.1175/JTECH-D-15-0020.1" target="_blank">https://doi.org/10.1175/JTECH-D-15-0020.1</a>, 2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib48"><label>Ryzhkov and Zrnić(2019)</label><mixed-citation>
      
Ryzhkov, A. V. and Zrnić, D. S.: Radar polarimetry for weather
observations, Springer Atmospheric Sciences, <a href="https://doi.org/10.1007/978-3-030-05093-1" target="_blank">https://doi.org/10.1007/978-3-030-05093-1</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib49"><label>Safronov(1962)</label><mixed-citation>
      
Safronov, V. S.: A particular case of the solution of the coagulation equation,
Dokl. Acad. Nauk SSSR, 147, 64–67,
<a href="https://mathnet.ru/dan27172" target="_blank"/> (last access: 27 July 2026), 1962.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib50"><label>Schrom et al.(2015)Schrom, Kumjian, and Lu</label><mixed-citation>
      
Schrom, R. S., Kumjian, M. R., and Lu, Y.: Polarimetric radar signatures of
dendritic growth zones within Colorado winter storms, J. Appl. Meteorol.
Clim., 54, 2365–2388, <a href="https://doi.org/10.1175/JAMC-D-15-0004.1" target="_blank">https://doi.org/10.1175/JAMC-D-15-0004.1</a>, 2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib51"><label>Scott(1968)</label><mixed-citation>
      
Scott, W. T.: Analytical studies of cloud droplet coalesence I, J. Atmos.
Sci., 25, 54–65, <a href="https://doi.org/10.1175/1520-0469(1968)025&lt;0054:ASOCDC&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0469(1968)025&lt;0054:ASOCDC&gt;2.0.CO;2</a>,
1968.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib52"><label>Shima et al.(2009)Shima, Kusano, Kawano, Sugiyama, and
Kawahara</label><mixed-citation>
      
Shima, S., 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, Q. J. Roy. Meteor. Soc., 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.bib53"><label>Simmel et al.(2002)Simmel, Trautmann, and Tetzlaff</label><mixed-citation>
      
Simmel, M., Trautmann, T., and Tetzlaff, G.: Numerical solution of the
stochastic collection equation – comparison of the Linear Discrete Method
with other methods, Atmos. Res., 61, 135–148,
<a href="https://doi.org/10.1016/S0169-8095(01)00131-4" target="_blank">https://doi.org/10.1016/S0169-8095(01)00131-4</a>, 2002.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib54"><label>Smoluchowski(1917)</label><mixed-citation>
      
Smoluchowski, M.: Versuch einer mathematischen Theorie der Koagulations-kinetik
kolloider Lösungen, Z. Phys. Chem., 92,
129–168, <a href="https://doi.org/10.1515/zpch-1918-9209" target="_blank">https://doi.org/10.1515/zpch-1918-9209</a>, 1917.


    </mixed-citation></ref-html>
<ref-html id="bib1.bib55"><label>Stammler and Birnstiel(2022)</label><mixed-citation>
      
Stammler, S. M. and Birnstiel, T.: DustPy: A Python Package for Dust Evolution
in Protoplanetary Disks, Astrophys. J., 935, 35,
<a href="https://doi.org/10.3847/1538-4357/ac7d58" target="_blank">https://doi.org/10.3847/1538-4357/ac7d58</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib56"><label>Straub et al.(2010)Straub, Beheng, Seifert, Schlottke, and
Weigand</label><mixed-citation>
      
Straub, W., Beheng, K. D., Seifert, A., Schlottke, J., and Weigand, B.:
Numerical investigation of collision-induced breakup of raindrops. Part II:
Parameterizations of coalescence efficiencies and fragment size
distributions, J. Atmos. Sci., 46, 576–588, <a href="https://doi.org/10.1175/2009JAS3175.1" target="_blank">https://doi.org/10.1175/2009JAS3175.1</a>,
2010.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib57"><label>Tobin and Kumjian(2017)</label><mixed-citation>
      
Tobin, D. M. and Kumjian, M. R.: Polarimetric radar and surface-based
precipitation-type observations of ice pellet to freezing rain transitions,
Weather Forecast., 32, 2065–2082, <a href="https://doi.org/10.1175/WAF-D-17-0054.1" target="_blank">https://doi.org/10.1175/WAF-D-17-0054.1</a>, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib58"><label>Tzivion et al.(1987)Tzivion, Feingold, and Levin</label><mixed-citation>
      
Tzivion, S., Feingold, G., and Levin, Z.: An efficient numerical solution to
the Stochastic Collection Equation, J. Atmos. Sci., 44, 3139–3149,
<a href="https://doi.org/10.1175/1520-0469(1987)044&lt;3139:AENSTT&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0469(1987)044&lt;3139:AENSTT&gt;2.0.CO;2</a>, 1987.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib59"><label>Unterstrasser et al.(2020)Unterstrasser, Hoffman, and
Lerch</label><mixed-citation>
      
Unterstrasser, S., Hoffmann, F., and Lerch, M.: Collisional growth in a particle-based cloud microphysical model: insights from column model simulations using LCM1D (v1.0), Geosci. Model Dev., 13, 5119–5145, <a href="https://doi.org/10.5194/gmd-13-5119-2020" target="_blank">https://doi.org/10.5194/gmd-13-5119-2020</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib60"><label>Wang et al.(2007)Wang, Xue, and Grabowski</label><mixed-citation>
      
Wang, L.-P., Xue, Y., and Grabowski, W. W.: A bin integral method for solving
the kinetic collection equation, J. Comput. Phys., 226, 59–88,
<a href="https://doi.org/10.1016/j.jcp.2007.03.029" target="_blank">https://doi.org/10.1016/j.jcp.2007.03.029</a>, 2007.

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