Microphysics model¶
Model overview and transported quantities in ERF
(note: Q1 and Q2 are always the mixing ratios of water vapor and cloud water)
Model |
Name in ERF |
|
|
|
|
|---|---|---|---|---|---|
Simple saturation adjustment |
|
– |
– |
– |
– |
Kessler, no rain |
|
– |
– |
– |
– |
Kessler |
|
\(q_r\) |
– |
– |
– |
Single moment, no precip or ice |
|
– |
– |
– |
– |
Single moment, no ice |
|
– |
\(q_r\) |
– |
– |
Single moment |
|
\(q_i\) |
\(q_r\) |
\(q_s\) |
\(q_g\) |
Double moment, no ice |
|
– |
\(q_r\) |
– |
– |
Double moment |
|
\(q_i\) |
\(q_r\) |
\(q_s\) |
\(q_g\) |
Predicted Particle Properties |
|
\(q_i\) |
\(q_r\) |
\(q_{rim}\) |
– |
Super-Droplet Method (SDM) |
|
– |
– |
– |
– |
Kessler Microphysics model¶
The Kessler microphysics model is a simple version of cloud microphysics which has precipitation only in the form of rain. Hence \(q_p = q_r\). Governing equations for the microphysical quantities for Kessler microphysics from gabervsek2012dry are
where \(C_c\) is the rate of condensation of water vapor to cloud water, \(E_c\) is the rate of evaporation of cloud water to water vapor, \(A_c\) is the autoconversion of cloud water to rain, \(K_c\) is the accretion of cloud water to rain drops, \(E_r\) is the evaporation of rain to water vapor and \(F_r = \rho_{d} w_{t} q_p\) is the sedimentation flux. The source terms that enter into the governing equations are then given by:
The parametrizations provided in klemp1978simulation are given below for each term. Note that in all the equations, \(p\) is specified in millibars and \(\overline{\rho}\) is specified in g cm \(^{-3}\). The parametrization of the source terms are given below.
Rate of condensation of water vapor/evaporation of cloud water¶
From klemp1978simulation, we have the following expressions.
If the air is not saturated, i.e. \(q_v > q_{vs}\)
If the air is not saturated, i.e. \(q_v < q_{vs}\), then cloud water evaporates to water vapor at the rate
Rate of autoconversion of cloud water into rain¶
The rate of autoconversion of cloud water into rain is given by
where \(k_1 = 0.001\) s-1, \(a = 0.001\) kg kg-1.
Rate of accretion of cloud water into rain water drops¶
The rate of accretion of cloud water into rain water drops is given by
where \(k_2= 2.2\) s-1.
The rate of evaporation of rain into water vapor¶
The rate of evaporation of rain into water vapor is given by
where the ventilation factor \(C = 1.6 + 124.9(\overline{\rho}q_r)^{0.2046}\).
Terminal fall velocity of rain¶
The terminal fall velocity of rain is given by
Morrison Microphysics Model¶
The Morrison microphysics model in ERF is a direct Fortran to C++ conversion of the Morrison microphysics module in WRF. For the relevant paper, please see Morrison et al, MWR, 2009. The specific Fortran file which was ported was module_mp_morr_two_moment.F
Single Moment (SAM) Microphysics Model¶
The conversion rates among the moist hydrometeors are parameterized assuming that
where \(N_{0m}\) is the intercept parameter, \(D_{m}\) is the diameters, and
where \(\rho_{m}\) is the density of moist hydrometeors. Assuming that the particle terminal velocity
The total production rates including the contribution from aggregation, accretion, sublimation, melting, bergeron process, freezing and autoconversion are listed below without derivation. For details, please refer to Yuh-Lang Lin et al (J. Climate Appl. Meteor, 22, 1065, 1983) and Marat F. Khairoutdinov and David A. Randall’s (J. Atm Sciences, 607, 1983). The implementation of microphysics model in ERF is similar to the that in the SAM code (http://rossby.msrc.sunysb.edu/SAM.html)
Accretion¶
There are several different type of accretional growth mechanisms that need to be included; these describe the interaction of water vapor and cloud water with rain water.
The accretion of cloud water forms in either the dry or wet growth rate can be written as:
The accretion of raindrops by accretion of cloud water is
The bergeron Process¶
The cloud water transform to snow by deposition and rimming can be written as
Autoconversion¶
The collision and coalescence of cloud water to from raindrops is parameterized as following
Evaporation¶
The evaporation rate of rain is
Saturation Adjustment (SatAdj) Microphysics Model¶
The saturation adjustment microphysics model is the simplest possible moisture model and only transports the water vapor mixing ratio, \(q_v\), and the cloud water mixing ration, \(q_c\). Evaporation, \(q_v \longrightarrow q_c\), and condensation, \(q_c \longrightarrow q_v\), are the only relevant mechanisms. The final saturation state, \(q_v = q_{vs}(T)\) is obtained from Newton-Raphson iterations on the thermal temperature \(T\).
Predicted Particle Properties (P3) Microphysics Model¶
The P3 microphysics scheme uses a fundamentally different approach than traditional bulk schemes. Rather than using fixed hydrometeor categories (ice, snow, graupel), P3 predicts evolving ice particle properties, allowing continuous transitions from unrimed ice to heavily rimed particles.
P3 transports water vapor (\(q_v\)), cloud water (\(q_c\)), rain (\(q_r\)), total ice mass (\(q_i\)), and rime mass (\(q_{rim}\)). Additional prognostic variables include ice number concentration and rime volume.
The scheme represents physical processes including vapor deposition/sublimation, riming, aggregation, melting, and sedimentation. Particle properties evolve continuously based on environmental conditions and microphysical processes.
For details, see Morrison and Milbrandt (2015, J. Atmos. Sci., 72, 287–311).
Super-Droplet Method (SDM) Microphysics Model¶
The super-droplet method (SDM) is a particle-based, probabilistic approach for the simulation of cloud microphysics. Unlike the bulk parametrization and spectral bin methods, SDM directly tracks computational particles (called “super-droplets”) that represent multiple real droplets with identical attributes. This Lagrangian approach enables accurate simulation of detailed cloud microphysical processes with reasonable computational cost.
Note
To use SDM, build ERF with particles enabled i.e., USE_PARTICLES=TRUE
with GNU Make or -D ERF_ENABLE_PARTICLES=TRUE with CMake.
Overview and Method¶
The implementation in ERF is based on the method described in Shima et al., 2009 (Q. J. R. Meteorol. Soc., 135: 1307-1320). The key innovation is the concept of a super-droplet: a computational particle that represents \(\xi_i(t)\) identical physical droplets, where \(\xi_i(t)\) is the multiplicity. Each super-droplet has its own position \(\mathbf{x}_i(t)\) and attributes \(\mathbf{a}_i(t)\) that characterize the state of the \(\xi_i(t)\) physical droplets it represents.
For the warm-rain system implemented in ERF, the attributes are:
Equivalent radius of water, \(R_i(t)\), representing the amount of water the droplet contains
Mass of solute contained in the droplet, \(M_i(t)\), for multiple aerosol species
Additional species masses for multi-component systems
The total number of physical droplets represented is \(N_r(t) = \sum_{i=1}^{N_s(t)} \xi_i(t)\), where \(N_s(t)\) is the number of super-droplets in the simulation domain.
Initialization of Super-Droplets¶
The initialization process creates super-droplets in the computational domain with prescribed spatial and attribute distributions. The implementation supports multiple initialization regions and allows flexible specification of particle properties.
Spatial Distribution¶
Super-droplets can be initialized with two spatial distribution types:
Uniform Distribution: Particles are placed uniformly within a rectangular box defined by particle_box_lo and particle_box_hi.
Within each grid cell that intersects the initialization box, the specified number of super-droplets per cell (particles_per_cell)
are created. If the initialization box is smaller than a grid cell (subgrid initialization), particles are placed only in cells
that contain the box.
Bubble Distribution: Particles are placed uniformly within an ellipsoidal bubble defined by particle_bubble_center (center position)
and particle_bubble_radius (radii in each direction). The bubble region is determined by:
where \((x_c, y_c, z_c)\) is the bubble center and \((r_x, r_y, r_z)\) are the radii.
Particle Position¶
Within each grid cell, super-droplet positions can be assigned in two ways controlled by place_randomly_in_cells:
Random placement (default): Particles are randomly distributed within the cell or initialization region using a uniform random distribution. For bubble distributions, random positions are generated using spherical coordinates with uniform angular distribution and radial position sampled to ensure uniform volume distribution.
Fixed placement: Particles are placed at the cell center or initialization region center.
For terrain-following coordinates, particle positions in the vertical direction are adjusted to account for the terrain height using bilinear interpolation of the terrain surface at the particle’s horizontal position.
Attribute Distribution¶
Each super-droplet is assigned physical attributes including masses of water vapor/condensate species and aerosol species. The mass distribution for each species and aerosol can be specified independently using one of four distribution types:
mass_constant: All super-droplets have the same mass for the species, set to species_mean_mass_<NAME> or aerosol_mean_mass_<NAME>.
mass_exponential: Masses are sampled from an exponential distribution with mean species_mean_mass_<NAME> or aerosol_mean_mass_<NAME>,
truncated between the minimum and maximum mass values.
radius_log_normal: Dry radii are sampled from a log-normal distribution with mean radius species_mean_radius_<NAME> or
aerosol_mean_radius_<NAME> and geometric standard deviation species_geomstd_radius_<NAME> or aerosol_geomstd_radius_<NAME>.
The mass is computed from the radius using the species density.
radius_lognormal_autorange: Similar to radius_log_normal, but the minimum and maximum radii are automatically determined
from the distribution parameters to capture the specified range of the distribution.
Multiplicity Assignment¶
The multiplicity \(\xi_i\) (number of physical droplets represented by each super-droplet) can be assigned using two methods
specified by multiplicity_type:
Constant multiplicity: Each super-droplet represents the same number of physical particles. The multiplicity is computed as:
where \(N_\text{par}\) is the total number of physical particles per cell (from initial_number_density times cell volume)
and \(N_\text{SD}\) is the number of super-droplets per cell (particles_per_cell).
Sampled multiplicity: Multiplicities are sampled from the mass/radius distribution to better represent the underlying size distribution. The sampled multiplicities are scaled to ensure the total number of physical particles matches the specified number density. This approach can provide better statistical representation of the particle size distribution, especially for broad distributions.
Effective Radius and Total Mass¶
After assigning species and aerosol masses, each super-droplet’s effective radius and total mass are computed. The effective radius accounts for the water content, soluble species (which affect the droplet solution properties), and insoluble species (which form cores within the droplet):
where: - \(r_\text{eff}\) is the effective radius of the droplet - \(m_w\) is the water mass - \(m_s\) is the total mass of soluble species and aerosols - \(m_{ins}\) is the total mass of insoluble species and aerosols - \(\rho_w\) is the water density - \(\rho_{ins}\) is the weighted average density of insoluble components
The total mass stored in the super-droplet includes all species and aerosol masses:
where: - \(m_\text{total}\) is the total mass of the droplet - \(N_\text{sp}\) is the number of species - \(m_{\text{sp},j}\) is the mass of species j - \(N_\text{ae}\) is the number of aerosol types - \(m_{\text{ae},j}\) is the mass of aerosol type j
Initialization from Condensate Density¶
An alternative initialization method (initial_distribution_type = condensate_density) allows super-droplet attributes to
be set from a prescribed condensate mass density field. In this case, the multiplicity of each super-droplet is varied randomly
around the mean value, and the mass per physical particle is computed to match the local condensate density. The radius is then
determined from the mass assuming spherical water droplets.
Density Scaling¶
If density_scaling is enabled, super-droplet multiplicities are scaled by the local air density after initialization. This
allows the number of physical droplets to vary with altitude, reflecting realistic atmospheric conditions where particle
concentrations typically decrease with height.
Multiple Initializations¶
The implementation supports multiple initialization regions (num_initializations), each with its own spatial distribution,
particle count, and attribute distributions. Parameters for each region are specified with the prefix super_droplets_moisture.N
where N is the initialization index (0, 1, 2, …). This allows complex initial conditions with multiple cloud regions or
layers with different properties.
Microphysical Processes¶
Motion and Sedimentation¶
Droplets are assumed to immediately reach their terminal velocity. The motion of each super-droplet is governed by:
where:
\(\mathbf{v}_i(t)\) is the velocity vector of the super-droplet
\(\mathbf{U}(\mathbf{x}_i)\) is the wind velocity at the droplet position
\(\hat{\mathbf{z}}\) is the unit vector in the vertical direction
\(v_\infty(R_i)\) is the terminal velocity of the droplet
\(R_i\) is the radius of the droplet
\(\mathbf{x}_i\) is the position of the super-droplet
The terminal velocity can be computed using several empirical models, including the Rogers-Yau formula, Atlas-Ulbrich formula, or the cloud-rain formula from Shima et al.
Condensation and Evaporation¶
The growth/shrinkage of droplets through condensation/evaporation is described by Köhler theory, which accounts for both curvature and solution effects:
where:
\(R_i\) is the radius of the droplet
\(S_v\) is the ambient saturation ratio (ratio of vapor pressure to saturation vapor pressure)
\(a_K\) is the curvature coefficient, given by \(a_K = \frac{2\sigma}{R_v \rho_w T}\), where: - \(\sigma\) is the surface tension of water - \(R_v\) is the specific gas constant for water vapor - \(\rho_w\) is the density of liquid water - \(T\) is the temperature
\(b_K\) is the solution coefficient, given by \(b_K = \frac{3 i M_i M_w}{4\pi \rho_w M_s}\), where: - \(i\) is the van’t Hoff factor (degree of ionic dissociation) - \(M_i\) is the mass of solute in the droplet - \(M_w\) is the molecular weight of water - \(M_s\) is the molecular weight of the solute
\(F_k\) and \(F_d\) are thermodynamic and diffusion terms:
where: - \(L_v\) is the latent heat of vaporization for water - \(K_T\) is the thermal conductivity of air - \(D_v\) is the molecular diffusion coefficient of water vapor in air - \(e_s(T)\) is the saturation vapor pressure at temperature \(T\)
The implementation uses an implicit time integration scheme (backward Euler or higher-order methods like Runge-Kutta) with a Newton-Raphson solver to solve this nonlinear ordinary differential equation.
Stochastic Coalescence¶
Coalescence (collision and merging) of droplets is treated probabilistically. For two super-droplets \(j\) and \(k\) in a well-mixed volume \(\Delta V\), the coalescence probability during time interval \(\Delta t_c\) is:
where: - \(P_{jk}^{(s)}\) is the probability of collision between super-droplets j and k - \(\xi_j\) and \(\xi_k\) are the multiplicities of the super-droplets - \(K_{coal}(R_j, R_k)\) is the coalescence kernel - \(\Delta t_c\) is the coalescence time step - \(\Delta V\) is the volume in which coalescence is considered
The coalescence kernel is given by:
where: - \(E_{coll}(R_j, R_k)\) is the collection efficiency accounting for flow deflection and droplet bounce effects - \(R_j\) and \(R_k\) are the radii of the two droplets - \(\mathbf{v}_j\) and \(\mathbf{v}_k\) are the velocities of the two droplets
When super-droplets \(j\) and \(k\) coalesce (assuming \(\xi_j > \xi_k\) without loss of generality), \(\min(\xi_j, \xi_k)\) pairs of physical droplets merge:
This formulation preserves the number of super-droplets in most cases, maintaining accuracy even as the number of physical droplets changes dramatically.
The Monte Carlo scheme for coalescence achieves \(O(n_s)\) computational cost (where \(n_s\) is the number of super-droplets in a grid cell) by examining only \([n_s/2]\) randomly generated, non-overlapping pairs rather than all possible \(n_s(n_s-1)/2\) pairs. The coalescence probability is scaled accordingly.
Several collision kernels are implemented:
Golovin kernel: \(K = b(X_j + X_k)\) where \(X = \frac{4\pi}{3}R^3\) (primarily for testing)
Sedimentation kernel: Based on geometric collision cross-section
Long’s kernel: Empirical formula for gravitational collision
Hall’s kernel: Table-based collection efficiency for realistic cloud conditions
Coupling with Eulerian Dynamics¶
The super-droplets are coupled to the non-hydrostatic Eulerian dynamics through three source terms:
Momentum coupling through the liquid water density:
where: - \(\rho_{lw}(\mathbf{x}, t)\) is the liquid water density at position \(\mathbf{x}\) and time \(t\) - \(N_s\) is the total number of super-droplets - \(\xi_i\) is the multiplicity of the super-droplet (number of physical droplets it represents) - \(m_i(t) = \frac{4\pi}{3} R_i^3 \rho_{w}\) is the mass of a physical droplet - \(\rho_{w}\) is the density of liquid water - \(\delta^3\) is the three-dimensional delta function
Vapor source from condensation/evaporation:
where: - \(S_{vap}(\mathbf{x}, t)\) is the vapor source/sink term - \(\rho_{air}(\mathbf{x}, t)\) is the air density - \(\frac{dm_i(t)}{dt}\) is the rate of mass change of a physical droplet
Latent heat release:
where: - \(L_v\) is the latent heat of vaporization - \(c_p\) is the specific heat capacity at constant pressure
In the numerical implementation, these delta functions are smoothed onto the Eulerian grid using appropriate interpolation functions to ensure conservation and numerical stability.
Input Parameters and Configuration¶
The super-droplet method is configured through input parameters specified in the input file with the prefix super_droplets_moisture.
SDM Parameters¶
All SDM parameters use the prefix super_droplets_moisture:
Parameter |
Default Value |
Description |
|---|---|---|
Microphysics Model |
||
|
|
Enable/disable condensation and evaporation |
|
|
Enable/disable particle advection |
|
|
Enable/disable stochastic coalescence |
|
|
Initial distribution type ( |
|
|
Minimum radius (m) to classify droplet as rain |
|
|
Run in kinematic mode (no feedback to dynamics) |
|
|
Simulation dimensionality ( |
|
|
Enable particle recycling at boundaries |
|
|
List of vapour/condensate species |
|
(none) |
List of aerosol species |
|
|
Timesteps between diagnostic output |
|
|
Number of substeps for phase change process |
|
|
Allow initial relaxation of droplet sizes |
|
|
Duration (s) of initial relaxation |
Particle Container |
||
|
|
Scale initial SD number with air density |
|
|
Nucleate new super-droplets from vapor |
|
|
Advect particles with fluid velocity |
|
|
Include gravitational settling |
|
|
Use prescribed vertical velocity |
|
|
Coalescence kernel type ( |
|
|
Terminal velocity formula ( |
|
|
Include Brownian motion in coalescence |
|
|
Grid coarsening factor for coalescence cells |
|
|
CFL number for phase change time integration |
|
|
Time integrator for mass change ODE ( |
|
|
Newton solver relative tolerance |
|
|
Newton solver absolute tolerance |
|
|
Newton solver step tolerance |
|
|
Newton solver maximum iterations |
|
|
Randomly place SDs within grid cells |
|
|
Kernel width parameter for distribution estimation |
|
|
Grid size for computing distributions |
|
|
Multiplicity threshold for deactivating particles |
|
|
Write inactive particles to plot files |
|
|
Number of initialization regions |
|
|
Number of injection sources |
Initialization Parameters¶
For each initialization region (indexed by N), parameters are specified with prefix super_droplets_moisture.N:
Parameter |
Default Value |
Description |
|---|---|---|
|
|
Spatial distribution ( |
|
(required) |
Number of super-droplets per grid cell |
|
domain lower bounds |
Lower corner of initialization box (for |
|
domain upper bounds |
Upper corner of initialization box (for |
|
– |
Center of initialization bubble (for |
|
– |
Radius of initialization bubble (for |
|
– |
Physical droplet number density (m-3) |
|
|
How to assign multiplicity ( |
|
– |
Maximum multiplicity value |
Species and Aerosol Distribution Parameters¶
For each initialization region (indexed by N) and each species/aerosol (<NAME>), distribution parameters are specified with prefix super_droplets_moisture.N.initial_:
Parameter |
Default Value |
Description |
|---|---|---|
Species Parameters |
||
|
|
Distribution type for species <NAME>: |
|
– |
Minimum mass (kg) for species <NAME> |
|
– |
Mean mass (kg) for species <NAME> |
|
5 × mean_mass |
Maximum mass (kg) for species <NAME> |
|
– |
Minimum radius (m) for species <NAME> |
|
– |
Maximum radius (m) for species <NAME> |
|
– |
Mean radius (m) for species <NAME> (used with log-normal distributions) |
|
– |
Standard deviation of radius (m) for species <NAME> (converted to geometric std; cannot specify both std and geomstd) |
|
– |
Geometric standard deviation (dimensionless) of radius for species <NAME> (used with log-normal distributions) |
Aerosol Parameters |
||
|
|
Distribution type for aerosol <NAME>: |
|
– |
Minimum mass (kg) for aerosol <NAME> |
|
– |
Mean mass (kg) for aerosol <NAME> |
|
5 × mean_mass |
Maximum mass (kg) for aerosol <NAME> |
|
– |
Minimum radius (m) for aerosol <NAME> |
|
– |
Maximum radius (m) for aerosol <NAME> |
|
– |
Mean radius (m) for aerosol <NAME> (used with log-normal distributions) |
|
– |
Standard deviation of radius (m) for aerosol <NAME> (converted to geometric std; cannot specify both std and geomstd) |
|
– |
Geometric standard deviation (dimensionless) of radius for aerosol <NAME> (used with log-normal distributions) |
Diagnostic Parameters¶
Diagnostic parameters use the prefix super_droplets_moisture:
Parameter |
Default Value |
Description |
|---|---|---|
|
|
Log particles with unconverged mass change |
|
|
Filename for unconverged particle log |
|
|
Minimum radius (m) for binned distributions |
|
|
Maximum radius (m) for binned distributions |
Particle Injection¶
The SDM implementation supports runtime injection of super-droplets from specified sources. This feature enables simulation of scenarios such as cloud seeding, aerosol injection, or particle sources at boundaries. Multiple injection sources can be configured, each with its own spatial distribution, timing, and particle properties.
Overview¶
Particle injection creates new super-droplets at regular intervals during the simulation. Each injection source is defined by a spatial region (uniform box or ellipsoidal bubble), temporal window (start and stop times), injection rate, and particle attribute distributions. The injection region can optionally move with a prescribed velocity to simulate moving sources.
Injection Process¶
At each timestep, if the current simulation time falls within an injection source’s active time window, new super-droplets are created within the injection region. The number of super-droplets created is determined by:
where \(\text{rate}\) is the injection rate (physical particles per unit volume per unit time), \(V_\text{region}\)
is the volume of the injection region, \(\Delta t\) is the timestep, and \(\text{multiplicity}\) is computed from
the particles_per_cell parameter similar to initialization.
Injection Parameters¶
For each injection source (indexed by N), parameters are specified with prefix super_droplets_moisture.injection.N:
Parameter |
Default Value |
Description |
|---|---|---|
Spatial Distribution |
||
|
|
Spatial distribution ( |
|
– |
Lower corner of injection box (for |
|
– |
Upper corner of injection box (for |
|
– |
Center of injection bubble (for |
|
– |
Radius of injection bubble (for |
|
|
Velocity (m/s) of moving injection region |
Temporal Control |
||
|
|
Injection start time (s) |
|
\(\infty\) |
Injection stop time (s) |
Injection Rate |
||
|
(required) |
Injection rate (physical particles m-3 s-1) |
|
(required) |
Number of super-droplets per cell for injection |
Particle Attributes |
||
|
|
Distribution type for species <NAME>: |
|
|
Distribution type for aerosol <NAME>: |
(other species/aerosol parameters) |
– |
Same as initialization parameters |
Example Configuration¶
The following example demonstrates injection configuration with three sources: two uniform box regions with opposing velocities, and one stationary bubble region with temporal control:
super_droplets_moisture.num_injections = 3
# Moving box injection from left
super_droplets_moisture.injection.0.distribution_type = "uniform"
super_droplets_moisture.injection.0.particle_box_lo = 1000.0 0.0 5000.0
super_droplets_moisture.injection.0.particle_box_hi = 1400.0 400.0 5400.0
super_droplets_moisture.injection.0.domain_velocity = 18.0 0.0 0.0
super_droplets_moisture.injection.0.rate = 2.0e6
super_droplets_moisture.injection.0.particles_per_cell = 8
super_droplets_moisture.injection.0.aerosol_distribution_type_NaCl = "mass_exponential"
super_droplets_moisture.injection.0.aerosol_mean_mass_NaCl = 1.0e-19
# Time-limited box injection from right
super_droplets_moisture.injection.1.distribution_type = "uniform"
super_droplets_moisture.injection.1.particle_box_lo = 16000.0 0.0 4000.0
super_droplets_moisture.injection.1.particle_box_hi = 16400.0 400.0 4400.0
super_droplets_moisture.injection.1.domain_velocity = -18.0 0.0 0.0
super_droplets_moisture.injection.1.t_start = 200.0
super_droplets_moisture.injection.1.t_stop = 600.0
super_droplets_moisture.injection.1.rate = 2.0e7
super_droplets_moisture.injection.1.particles_per_cell = 32
# Stationary bubble injection (early times only)
super_droplets_moisture.injection.2.distribution_type = "bubble"
super_droplets_moisture.injection.2.particle_bubble_center = 10000.0 0.0 2000.0
super_droplets_moisture.injection.2.particle_bubble_radius = 2000.0 400.0 2000.0
super_droplets_moisture.injection.2.t_start = 0.0
super_droplets_moisture.injection.2.t_stop = 200.0
super_droplets_moisture.injection.2.rate = 5.0e6
super_droplets_moisture.injection.2.particles_per_cell = 16
Particle Recycling¶
Particle recycling is a mechanism to maintain a relatively constant number of super-droplets in the simulation by reactivating deactivated particles. When super-droplets evaporate completely or fall below a multiplicity threshold, they are deactivated rather than removed from the simulation. Recycling allows these inactive particles to be reintroduced with new attributes, which is particularly useful for maintaining statistical convergence in long-running simulations or simulations with strong sedimentation.
Recycling Mechanism¶
When recycle_particles is enabled, the model tracks the fraction of deactivated super-droplets. Once this fraction exceeds
the inactive_threshold (default 1%), the recycling process is triggered:
Selection: Inactive super-droplets are identified as candidates for recycling.
Repositioning: Selected particles are repositioned within the domain. The new positions are sampled from the original initialization distribution. If a recycling bounding box is specified (
recycle_box_loandrecycle_box_hi), particles are constrained to this region; otherwise, the entire domain is used.Attribute Resampling: Particle attributes (species masses, aerosol masses) are resampled from the original initialization distributions to maintain the prescribed size and composition distributions.
Multiplicity Reset: Multiplicities are reset based on the original initialization parameters to represent the appropriate number of physical droplets.
Reactivation: The recycled super-droplets are marked as active and reintroduced into the simulation.
This approach maintains computational efficiency by reusing particle memory rather than deallocating and reallocating particles, while preserving the statistical properties of the particle population.
Recycling Parameters¶
Recycling behavior is controlled by parameters with prefix super_droplets_moisture:
Parameter |
Default Value |
Description |
|---|---|---|
|
|
Enable particle recycling |
|
|
Fraction of inactive particles (0.01 = 1%) that triggers recycling |
|
domain lower bounds |
Lower corner of recycling region |
|
domain upper bounds |
Upper corner of recycling region |
Use Cases¶
Particle recycling is particularly beneficial for:
Sedimentation-dominated flows: Where particles continuously fall out of the domain and need to be replenished at the top
Long-time simulations: To maintain statistical convergence without accumulating large numbers of inactive particles
Boundary layer simulations: Where particles entering from one boundary can be recycled to maintain a quasi-steady state
Example Configuration¶
# Enable recycling when 1% of particles become inactive
super_droplets_moisture.recycle_particles = true
super_droplets_moisture.inactive_threshold = 0.01
# Constrain recycled particles to upper portion of domain
super_droplets_moisture.recycle_box_lo = 0.0 0.0 8000.0
super_droplets_moisture.recycle_box_hi = 20000.0 400.0 10000.0
Material Properties and Aerosol Species¶
The SDM implementation supports multiple aerosol and condensate species with different physical and chemical properties. Each species is characterized by its material properties including density, molecular weight, ionization state (for soluble species), and thermodynamic properties for phase change calculations.
Available Species¶
The following species are currently implemented in ERF:
Species Name |
Density (kg/m3) |
Molecular Weight (kg/mol) |
Ionization |
Type |
|---|---|---|---|---|
|
1000.0 |
0.01802 |
0 |
Condensate (water) |
|
2170.0 |
0.05844 |
2 |
Soluble aerosol (sodium chloride) |
|
1770.0 |
0.13214 |
3 |
Soluble aerosol (ammonium sulfate) |
|
1780.0 |
0.11511 |
2 |
Soluble aerosol (ammonium bisulfate) |
|
1220.0 |
– |
0 |
Insoluble aerosol |
Species Classification¶
Water Species (H2O): These represent the condensate phase. Water species have associated saturation vapor
pressure and latent heat properties required for phase change calculations.
Soluble Aerosols (NaCl, NH42SO4, NH4HSO4): These species dissolve in water droplets and affect the equilibrium
vapor pressure through the Köhler effect (solution term). The ionization factor (van’t Hoff factor) represents the number of
ions produced when the species dissociates in solution, which directly affects the strength of the solution effect on droplet
growth.
Insoluble Aerosols (soil): These species do not dissolve in water but can serve as cloud condensation nuclei (CCN) or
be incorporated into droplets. They affect droplet properties through their mass and volume but do not contribute to the
solution term in Köhler theory.
Multi-Species Configuration¶
Species are specified as comma-separated lists in the input file:
# Specify condensate and aerosol species
super_droplets_moisture.species = H2O
super_droplets_moisture.aerosols = NH4HSO4
# For multiple aerosol species
super_droplets_moisture.aerosols = NH4HSO4, NaCl
Each species then requires its own distribution parameters for initialization and injection:
# NH4HSO4 aerosol with log-normal radius distribution
super_droplets_moisture.0.initial_aerosol_distribution_type_NH4HSO4 = "radius_log_normal"
super_droplets_moisture.0.initial_aerosol_mean_radius_NH4HSO4 = 30.0e-9
super_droplets_moisture.0.initial_aerosol_std_radius_NH4HSO4 = 0.247
# NaCl aerosol with exponential mass distribution
super_droplets_moisture.0.initial_aerosol_distribution_type_NaCl = "mass_exponential"
super_droplets_moisture.0.initial_aerosol_mean_mass_NaCl = 1.0e-19
super_droplets_moisture.0.initial_aerosol_max_mass_NaCl = 1.0e-18
Impact on Microphysics¶
The choice of aerosol species affects several microphysical processes:
Condensation/Evaporation: Soluble aerosols reduce the equilibrium vapor pressure over a droplet (solution effect), promoting condensation and inhibiting evaporation. The strength of this effect scales with the ionization factor and aerosol mass.
Activation: Droplets containing soluble aerosols can activate (begin growing by condensation) at lower supersaturations compared to pure water droplets of the same size.
Sedimentation: Different aerosol densities affect the effective density of cloud droplets, slightly modifying terminal fall velocities for very small droplets where aerosol mass is comparable to water mass.
Examples and Test Cases¶
The ERF repository includes several test cases and examples demonstrating SDM capabilities. These cases provide templates for configuring SDM simulations and serve as verification benchmarks.
Idealized Test Cases¶
Source terms for all of these tests are located in Source/Prob.
SDM_Bubble2D_Adv: 2D advection test of a moist bubble with super-droplets. Tests particle advection with the flow field
and basic particle dynamics without coalescence or phase change.
Inputs located in Tests/test_files/SDM_Bubble2D_Adv/.
SDM_Bubble2D_Adv_InitSampling: Similar to SDM_Bubble2D_Adv but demonstrates sampling-based multiplicity assignment for
improved representation of the size distribution.
Inputs located in Tests/test_files/SDM_Bubble2D_Adv_InitSampling/.
SDM_Bubble2D_Adv_wInjection: 2D moist bubble with runtime particle injection. Demonstrates injection configuration with
moving injection domains.
Inputs located in Tests/test_files/SDM_Bubble2D_Adv_wInjection/.
SDM_Box3D_Cond: 3D box test for condensation/evaporation processes. Tests phase change physics with fixed environmental
conditions.
Inputs located in Tests/test_files/SDM_Box3D_Cond/.
SDM_Box3D_VTerm: 3D box test for terminal velocity and sedimentation. Tests gravitational settling with various terminal
velocity formulations.
Inputs located in Tests/test_files/SDM_Box3D_VTerm/.
SDM_Box3D_Recycling: 3D box test demonstrating particle recycling at domain boundaries. Shows how to maintain particle
population during sedimentation.
Inputs located in Tests/test_files/SDM_Box3D_Recycling/.
SDM_MultiSpecies_Bubble2D: 2D moist bubble with multiple aerosol species. Demonstrates multi-component configuration.
Inputs located in Tests/test_files/SDM_MultiSpecies_Bubble2D/.
Realistic Test Cases¶
SDM_RICO3D: 3D simulation of the Rain In Cumulus Over the Ocean (RICO) case, a precipitating shallow cumulus benchmark.
Tests full SDM microphysics including condensation, coalescence, and sedimentation in a realistic cloud environment.
Source files located in Source/Prob/ERF*RICO3D.H.
Inputs with NH4HSO4 aerosol located in Tests/test_files/SDM_RICO3D/.
SDM_RICO3D_InitSampling: RICO case with sampling-based initialization for improved size distribution representation.
Source files located in Source/Prob/ERF*SDM_RICO3D.H.
Inputs located in Tests/test_files/SDM_RICO3D_InitSampling/.
SDM_Congestus3D: 3D simulation of congestus clouds, testing SDM in a deeper convective environment.
Source files located in Source/Prob/ERF*SDM_Congestus3D.H.
Inputs located in Tests/test_files/SDM_Congestus3D/.
Example Problems¶
Moist Bubble with Multi-Injection: Exec/RegTests/Bubble/ contains multiple inputs files for different microphysics models,
the inputs_BF02_moist_bubble_SDM_multi_injections_unimodal_NaCl demonstrates SDM a complex injection setup with three injection sources:
two moving box regions with opposing velocities and one time-limited bubble injection. This example is useful for understanding injection
configuration and moving source regions.
RICO DevTest: Exec/CanonicalTests/RICO/ contains multiple input files for the RICO case with different microphysics models,
including SDM configurations with various aerosol species (input_sdm).
Temperature Source Tests: Exec/RegTests/SDM_Congestus3D and Exec/RegTests/SineMassFlux
include SDM configurations for testing particle behavior with prescribed temperature and mass flux forcing.
Verification¶
Many test cases include gold files (reference solutions) in Tests/ERFGoldFiles/ for automated verification. When running
with CTest, results are automatically compared against these gold files to ensure numerical consistency.
Output Files¶
The super-droplet method generates several types of output files in addition to the standard AMReX plot files and particle output files.
Particle Plot Files¶
Super-droplet data is written to AMReX particle plot files at regular intervals (controlled by the main ERF output settings). These files contain all particle attributes including position, velocity, mass, radius, multiplicity, and species/aerosol masses. The particle files can be visualized and analyzed using standard AMReX visualization tools.
Inactive Particle Plot Files¶
When write_inactive_plt is enabled, deactivated (inactive) super-droplets are written to separate plot file directories named deac_SD_NNNNN where NNNNN is the timestep number. These files allow tracking of particles that have been deactivated due to evaporation or other processes. Each output includes both a dummy Eulerian field and the particle data in a standard AMReX plot file format.
Droplet Size Distribution Files¶
The model can output droplet size distribution (DSD) data in two formats:
Kernel-Smoothed Distributions (super_droplets_moisture_g_lnR_NNNNN.txt):
These text files contain kernel-smoothed mass distributions as a function of the natural logarithm of droplet radius. The files are written at intervals specified by diagnostics_interval and contain multiple columns:
Column 1: Droplet radius \(R\) (m)
Column 2: Mass-weighted distribution \(g_m(\ln R)\) (kg/m3)
Columns 3+: Mass distributions for individual aerosol species (if present)
The kernel-smoothed distribution is computed using:
where: - \(g_m(\ln R)\) is the mass-weighted size distribution - \(\gamma_{ker}\) is a normalization factor for the kernel - \(\lambda_{ker}\) is the kernel width parameter related to \(\sigma_0\) - \(\xi_i\) is the multiplicity of super-droplet i - \(m_i\) is the mass of a single droplet represented by super-droplet i - \(R_i\) is the radius of droplet i
where the kernel width is controlled by sigma0.
Binned Distributions (available with ERF_USE_ML_UPHYS_DIAGNOSTICS):
When compiled with machine learning diagnostics enabled, binned distributions are written to both text and plot file formats:
super_droplets_moisture_binned_dsd_NNNNN.txt: Domain-integrated binned distributions with columns for radius, mass distribution \(g_m(\ln R)\), and number distribution \(g_n(\ln R)\).super_droplets_moisture_binned_dsd_mass_NNNNN/andsuper_droplets_moisture_binned_dsd_number_NNNNN/: AMReX plot file directories containing cell-wise binned mass and number distributions. These files allow spatial analysis of the droplet size distribution.
The binned distributions divide the radius range from distribution_rmin to distribution_rmax into distribution_grid_size bins with logarithmic spacing. The distributions are normalized by cell volume and bin width \(d\ln R\).
Unconverged Particle Log¶
When mass_change_unconverged_log is enabled (CPU only), particles that fail to converge during the phase change time integration are logged to the file specified by mass_change_unconverged_log_filename (default: unconverged_superdroplets.log). This file helps diagnose numerical issues with the condensation/evaporation solver and can be used to tune solver tolerances.
References¶
Shima, S., K. Kusano, A. Kawano, T. Sugiyama, and S. Kawahara, 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. Q. J. R. Meteorol. Soc., 135: 1307-1320.