Jump to content

Draft:Super Droplet Method

From Wikipedia, the free encyclopedia

In mathematical modeling of aerosols, clouds and precipitation, Super Droplet Method (SDM) is a Monte-Carlo approach for representing collisions and coalescence of particles in atmospheric fluid dynamics simulations. The method and its name was introduced in a 2007 arXiv e-print by Shin-ichiro Shima et al.[1] (preceded by a 2006 patent application[2] and followed by a 2009 journal paper[3]).

Evolution of mass density distribution and the underlying population of 211 super-particles in a Monte-Carlo SDM simulation employing additive coagulation kernel and exponential initial particle mass spectrum, for which the Safronov[4]-Golovin[5] analytical solution to the Smoluchowski coagulation equations can be used as a reference (animation based on Fig. 2 from Shima et al. 2007[1], generated using the basic Python implementation of SDM provided in this article).

SDM algorithm is a probabilistic alternative to the deterministic model of the process embodied in the Smoluchowski coagulation equations. Among the key characteristics of SDM is that it is not subject to the "curse of dimensionality" that hampers application of other methods when multiple particle attributes need to be resolved in a simulation[6]. The algorithm is embarrassingly parallel, has linear time complexity, constant state vector size and zero numerical diffusion.

SDM in the cloud microphysics model taxonomy

[edit]

Particle-based approaches, including SDM, for simulating the dynamics of sizes of particles in clouds are considered as one of three distinct cloud microphysics modelling paradigms[7], which can be classified as either Eulerian or Lagriangian in terms of formulation of dynamics in particle attribute space:

Lagrangian microphysics approaches:

Eulerian microphysics approaches:

  • bulk (in which moment based description of particle attribute distribution is used, with assumed size/mass distributions),
  • bin (in which nonparametric histogram-based description of particle attribute space is used, possibly involving moment-based description within each histogram bin)

The term "super-droplet" approach/method has been used either in reference to the particular Monte-Carlo algorithm (even if not used to model clouds[8]), or more broadly in reference to the particle-based approach for modeling of atmospheric clouds (even if neglecting coalescence processes[9]). Applications of particle-based methods in atmospheric modelling[10][11], including for cloud microphysics modelling[12], and including Monte-Carlo techniques and super-particle nomenclature[13], predate SDM. Analogous Monte-Carlo particle-based methods (or particle swarm methods) have also been used for modelling accretion in astrophysical context[14].

SDM Monte-Carlo Algorithm for Coagulation of Particles

[edit]

The algorithm formulation presented herein follows the notation of Shima et al.[1], but uses pseudocode rather than mathematical notation. The code snippets are valid Python (used to generate the animation above) and refer to NumPy and SciPy components.

Super-particle state

[edit]

SDM models evolution of a particulate system composed of super droplets, with -th super droplet representing a multiplicity of particles. Each super particle carries a set of attributes, among which there are extensive attributes, such as mass , as well as auxiliary attributes which do not change upon aggregation, such as position in space.

Well-mixed control volume

[edit]

The considered particle-laden volume is split into cells. Cell volumes should be small enough to consider them well mixed, and hence to assume that any particle in the cell can collide with any other with a probability dependent only on particle extensive attributes. In subsequent formulation of the algorithm, a single cell of volume is considered.

Attribute sampling

[edit]

SDM allows for arbitrary initial sampling of the particle attribute distribution. Among the commonly used methods, there is inverse transform sampling which yields uniform initial multiplicities across the population. Such constant-multiplicity sampling implies evaluation of the quantile function at random locations chosen uniformly from the 0...1 range as in the listing below:

import numpy as np
from scipy import stats

def sample(*,
    rng: np.random.Generator,
    dist: stats.rv_continuous,
    norm: float,
    n_s: int,
):
    state = np.empty(
        shape=n_s,
        dtype=[('ξ', np.int64), ('m', np.float64)]
    )
    state['ξ'] =  round(norm / n_s)
    state['m'] =  dist.ppf(rng.uniform(0, 1, n_s))
    return state

Several other sampling methods were discussed and applied in studies employing SDM[15][16][17].

Time stepping, candidate pairs and attribute update

[edit]

Simulation using SDM involves time-stepping loop that advances the system state by in each step. SDM is a Monte Carlo algorithm and each step employs random number generation. As exemplified in the basic serial implementation of an SDM step given in the listing below, each involves:

  • permuting the super particles to select a random set of n_pair non-overlapping pairs among all n_s super particles in the considered volume ;
  • shuffling n_pair random numbers from a uniform distribution (stored into array φ)
  • computing the p_ratio of all possible particle unordered pairs to the number of considered candidate pairs n_pair;
  • enumerating across all candidate pairs with α numbering the pair, and j,k numbering the super droplets within a pair;
  • evaluating the probability p_α of collision within the super-droplet pair α as a product of the coagulation kernel, the timestep-to-cell-volume ratio Δt/Δv, the p_ratio and ξ_j where j is chosen to point to the super droplet of higher multiplicity in the pair;
  • evaluating the γ factor, which for p_α<1 is a Boolean flag resulting from comparison of the probability of coagulation with the random number from the 0...1 range; while in the case of p_α≥1, γ is augmented by the number of "certain" coagulations to represent repeated collision events within a single step (note that depending on the value of the ξ_j/ξ_k ratio, the number of repeated events may need be truncated incurring a collision-event deficit);
  • updating particle attributes ξ_j, ξ_k, m_j and m_k.
Scenario A: single-collision event (γ=1)
Scenario B: multiple-collision event (γ>1 and ξ[j]≠γξ[k])
Scenario C: equal-ratio collision event (γ≥1 and ξ[j]=γξ[k])
from collections import abc

def sdm(*,
    rng: np.random.Generator,
    ξ: abc.MutableSequence[int],
    m: abc.MutableSequence[float],
    kern: abc.Callable[[float, float], float],
    Δt: float,
    Δv: float,
):
    """ SDM step assuming non-zero multiplicities """
    n_s = len(ξ)
    n_pair = n_s // 2
    
    pairs = rng.permutation(n_s)[: 2 * n_pair]
    φ = rng.uniform(0, 1, n_pair)

    p_ratio = n_s * (n_s - 1) / 2 / n_pair
    for α, (j, k) in enumerate(pairs.reshape(-1, 2)):
        p_jk = kern(m[j], m[k]) * Δt / Δv
        if ξ[j] < ξ[k]:
            j, k = k, j
        p_α = ξ[j] * p_ratio * p_jk
        γ = p_α // 1 + (p_α - p_α // 1) > φ[α]
        if γ != 0:
            γ = min(γ, (ξ[j] / ξ[k]) // 1)
            if ξ[j] - γ * ξ[k] > 0:
                ξ[j] -= γ * ξ[k]
                m[k] += γ * m[j]
            else:
                ξ[j] = ξ[k] // 2
                ξ[k] -= ξ[j]
                m[k] += γ * m[j]
                m[j] = m[k]

Collision Scenarios

[edit]

The above algorithm can yield the following collision scenarios (see animations above, symbol m denotes an arbitrary mass unit, symbol M denotes the mass attribute of the super-droplet of respective color):

- A: single-collision event (γ=1 )

- B: multiple-collision event (γ > 1 and ξ[j] ≠ γξ[k])

- C: equal-ratio collision event (γ ≥ 1 and ξ[j] = γξ[k]), note: an equal-ratio collision event may also occur within scenario A

Concurrency

[edit]

The SDM coagulation algorithm does not feature data dependencies across candidate pairs, hence is particularly well suited for SIMT concurrent operation. Implementations of SDM leverage both CPU and GPU multi-threading[18].

Algorithm development and applications

[edit]
  • TODO: mixed phase[17]
  • TODO: breakup[19]
  • TODO: turbulent mixing
  • TODO: aqueous chemistry[20]
  • TODO: electro-coalescence[21]
  • TODO: idealised benchmark test cases
  • TODO: nuclear fallout[22]
  • TODO: geo-engineering (cloud brightening)[23] (the reference uses particle-based microphysics representation, but collisions are represented in a different way than SDM)
  • TODO: wildfire simulations
  • TODO: cloud-chamber modelling[24][25]
  • TODO: cosmic rays[26]
  • TODO: DNS vs. LES
  • TODO: contrails
  • TODO: fogs[27]
  • TODO: development of parameterization for larger-scale models

Open-source implementations

[edit]
  • reusable MPDATA libraries and packages:
    • TODO: libcloudph++ (C++)
    • TODO: PySDM (Python/Numba)
    • TODO: CLEO (C++)
    • TODO: Droplets.jl (Julia)
  • SDM implementations integrated in other software:
    • TODO: SCALE-SDM (Fortran)
    • TODO: Pencil Code (Fortran)
    • TODO: PALM LES (Fortran)
    • TODO: LCM1D (Python)
    • TODO: superdroplet (Cython/Numba/C++11/Fortran 2008/Julia)
    • TODO: NTLP (FORTRAN)
    • TODO: LacmoPy (Python/Numba)
    • TODO: McSnow (FORTRAN)

References

[edit]
  1. ^ a b c Shima, S.; Kusano, K.; Kawano, A.; Sugiyama, T.; Kawahara, S. (2009). "The super-droplet method for the numerical simulation of clouds and precipitation: A particle-based and probabilistic microphysics model coupled with a non-hydrostatic model". Quarterly Journal of the Royal Meteorological Society. 135 (642): 1307–1320. arXiv:physics/0701103. Bibcode:2009QJRMS.135.1307S. doi:10.1002/qj.441.
  2. ^ JP 2007292465A, "Simulation method, simulation program, and simulation apparatus" 
  3. ^ Shima, S.; Kusano, K.; Kawano, A.; Sugiyama, T.; Kawahara, S. (2009). "The super-droplet method for the numerical simulation of clouds and precipitation: a particle-based and probabilistic microphysics model coupled with a non-hydrostatic model". Quarterly Journal of the Royal Meteorological Society. 135 (642): 1307–1320. arXiv:physics/0701103. Bibcode:2009QJRMS.135.1307S. doi:10.1002/qj.441.
  4. ^ V.S. Safronov (1962). "Частный случай решения уравнения коагуляции (A restricted solution of the accretion equation)". Dokl. Akad. Nauk SSSR (in Russian). 147.
  5. ^ A.M. Golovin (1963). "К вопросу о решении уравнения коагуляции дождевых капель с учетом конденсации (On solving the equation of rain drop coagulation with allowance for condensation)". Dokl. Akad. Nauk SSSR (in Russian). 148.
  6. ^ Grabowski, W.W. and Morrison, H. and Shima, S. and Abade, G.C. and Dziekan, P. and Pawlowska, H. (2019). "Modeling of Cloud Microphysics: Can We Do Better?". Bulletin of the American Meteorological Society. 100 (4): 655–672. Bibcode:2019BAMS..100..655G. doi:10.1175/BAMS-D-18-0005.1. OSTI 1612584.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  7. ^ Morrison, H. and van Lier-Walqui, M. and Fridlind, A.M. and Grabowski, W.W. and Harrington, J.Y. and Hoose, C. and Korolev, A. and Kumjian, M.R. and Milbrandt, J.A. and Pawlowska, H. and Posselt, D.J. and Prat, O.P. and Reimel, K.J. and Shima, S. and van Diedenhoven, B. and Xue, L. (2020). "Confronting the Challenge of Modeling Cloud and Precipitation Microphysics". Journal of Advences in Modeling Earth Systems. 12 (8). Bibcode:2020JAMES..1201689M. doi:10.1029/2019MS001689. PMID 32999700.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  8. ^ Jokulsdottir, T. and Archer, D. (2016). "A stochastic, Lagrangian model of sinking biogenic aggregates in the ocean (SLAMS 1.0): model formulation, validation and sensitivity". Geoscientific Model Development. 9 (4): 1455–1476. Bibcode:2016GMD.....9.1455J. doi:10.5194/gmd-9-1455-2016.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  9. ^ Chandrakar, K.K. and Grabowski, W.W and Morrison, H. and Bryan, G.H. (2021). "Impact of Entrainment Mixing and Turbulent Fluctuations on Droplet Size Distributions in a Cumulus Cloud: An Investigation Using Lagrangian Microphysics with a Subgrid-Scale Model". Journal of the Atmospheric Sciences. 78 (9): 2983. Bibcode:2021JAtS...78.2983C. doi:10.1175/JAS-D-20-0281.1.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  10. ^ Lange, R. (1973), ADPIC: a three-dimensional computer code for the study of pollutant dispersal and deposition under complex conditions, doi:10.2172/4308175
  11. ^ Lange, R. (1978). "ADPIC–A Three-Dimensional Particle-in-Cell Model for the Dispersal of Atmospheric Pollutants and its Comparison to Regional Tracer Studies". Journal of Applied Meteorology. 17 (3): 320. Bibcode:1978JApMe..17..320L. doi:10.1175/1520-0450(1978)017<0320:ATDPIC>2.0.CO;2.
  12. ^ Clark, T.L. and Hall, W.D. (1979). "A Numerical Experiment on Stochastic Condensation Theory". Journal of the Atmospheric Sciences. 36 (3): 470. Bibcode:1979JAtS...36..470C. doi:10.1175/1520-0469(1979)036<0470:ANEOSC>2.0.CO;2.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  13. ^ Zannetti, P. (1984). "New Monte Carlo scheme for simulating Lagranian particle diffusion with wind shear effects"". Applied Mathematical Modelling. 8 (3): 188–192. doi:10.1016/0307-904X(84)90088-X.
  14. ^ Zsom, A. and Dullemond, C.P. (2008). "A representative particle approach to coagulation and fragmentation of dust aggregates and fluid droplets". Astronomy & Astrophysics. 489 (2): 931–941. arXiv:0807.5052. Bibcode:2008A&A...489..931Z. doi:10.1051/0004-6361:200809921.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  15. ^ Unterstrasser, S. and Hoffmann, F. and Lerch, M. (2017). "Collection/aggregation algorithms in Lagrangian cloud microphysical models: rigorous evaluation in box model simulations". Geoscientifi Model Development. 10 (4): 1521–1548. Bibcode:2017GMD....10.1521U. doi:10.5194/gmd-10-1521-2017.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  16. ^ Dziekan, P. and Pawlowska, H. (2017). "Stochastic coalescence in Lagrangian cloud microphysics". Atmospheric Chemistry and Physics. 17 (22): 13509–13520. doi:10.5194/acp-17-13509-2017.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  17. ^ a b Shima S. and Sato, Y. and Hashimoto, A. and Misumi R. (2020). "Predicting the morphology of ice particles in deep convection using the super-droplet method: development and evaluation of SCALE-SDM 0.2.5-2.2.0, -2.2.1, and -2.2.2". Geoscientific Model Development. 13 (9): 4107–4157. Bibcode:2020GMD....13.4107S. doi:10.5194/gmd-13-4107-2020.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  18. ^ Arabas, S. and Jaruga, A. and Pawlowska, H. and Grabowski, W.W. (2015). "libcloudph++ 1.0: a single-moment bulk, double-moment bulk, and particle-based warm-rain microphysics library in C++". Geoscientific Model Development. 8 (6): 1677–1707. arXiv:1310.1905. Bibcode:2015GMD.....8.1677A. doi:10.5194/gmd-8-1677-2015.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  19. ^ de Jong, E. and Mackay, J.B. and Bulenok, O. and Jaruga, A. and Arabas, S. (2023). "Breakups are complicated: an efficient representation of collisional breakup in the superdroplet method". Geoscientific Model Development. 16 (14): 4193–4211. Bibcode:2023GMD....16.4193D. doi:10.5194/gmd-16-4193-2023.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  20. ^ Jaruga, A. and Pawlowska, H. (2018). "libcloudph++ 2.0: aqueous-phase chemistry extension of the particle-based cloud microphysics scheme". Geoscientific Model Development. 11 (9): 3623–3645. Bibcode:2018GMD....11.3623J. doi:10.5194/gmd-11-3623-2018.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  21. ^ Zhang, R. and Zhou, L. and Shima, S. and Yang, H. (2024). "Preliminary evaluation of the effect of electro-coalescence with conducting sphere approximation on the formation of warm cumulus clouds using SCALE-SDM version 0.2.5–2.3.0". Geoscientific Model Dvelopment. 17 (17): 6761–6774. Bibcode:2024GMD....17.6761Z. doi:10.5194/gmd-17-6761-2024.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  22. ^ McGuffin, D.L. and Lucas, D.D. and Morris, J.P. and Spriggs, G.D. and Knight, K.B. (2022). "Super-Droplet Method to Simulate Lagrangian Microphysics of Nuclear Fallout in a Homogeneous Cloud". Journal of Geophysical Research Atmospheres. 127 (18). Bibcode:2022JGRD..12736599M. doi:10.1029/2022JD036599.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  23. ^ Andrejczuk, M. and Gadian, A. and Blyth, A. (2014). "Numerical simulations of stratocumulus cloud response to aerosol perturbation" (PDF). Atmospheric Research. 140–141: 76–84. Bibcode:2014AtmRe.140...76A. doi:10.1016/j.atmosres.2014.01.006.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  24. ^ MacMillan, T. and Shaw, R.A. and Cantrell, W.H. and Richter, D.H. (2022). "Direct numerical simulation of turbulence and microphysics in the Pi Chamber". Physical Review Fluids. 7 (2): 020501. Bibcode:2022PhRvF...7b0501M. doi:10.1103/PhysRevFluids.7.020501.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  25. ^ Grabowski, W.W. and Kim, Y. and Yum, S.S. (2024). "CCN Activation and Droplet Growth in Pi Chamber Simulations with Lagrangian Particle–Based Microphysics". Journal of the Atmospheric Sciences. 81 (7): 1201–1212. Bibcode:2024JAtS...81.1201G. doi:10.1175/JAS-D-24-0004.1.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  26. ^ Kusano, K. and Hasegawa, K. and Shima, S. (2012). Simulation study on bi-stability of cloud-rain system and cosmic ray influence on climate. 39th COSPAR Scientific Assembly. Bibcode:2012cosp...39.1008K.{{cite conference}}: CS1 maint: multiple names: authors list (link)
  27. ^ Richter, D.H. and MacMillan, T. and Wainwright, C. (2021). "A Lagrangian Cloud Model for the Study of Marine Fog". Boundary-Layer Meteorology. 181 (2–3): 523–542. Bibcode:2021BoLMe.181..523R. doi:10.1007/s10546-020-00595-w.{{cite journal}}: CS1 maint: multiple names: authors list (link)