Single-Column Model
Eulerian grid state and the routines that advance the single-column model (condensation, coalescence, turbulence, advection, and diagnostics).
Droplets.condensation_data — Type
condensation_data
Container for condensation-related data allocations, including condensation source terms, radiative effects, and droplet volume changes.Droplets.radiation_data — Type
radiation_data{FT, AS, CR}
RRTMGP-backed radiation working arrays/fluxes. The struct itself is generic (`AS`, `CR`
are free type params, so this definition carries no RRTMGP dependency); the constructor
that actually loads RRTMGP's lookup tables and builds `CArad`/`AS` lives in the Examples
radiation driver (`Droplets.radiation_data(::Type{FT}, nsd, grid, constants)`), which is
only included by cases that turn radiation on.Droplets.radiation_data — Method
radiation_data(::Type{FT}, nsd::Int, nz::Int; CArad=nothing) where FT<:AbstractFloatradiation allocations for SCM
Droplets.scm_data — Type
scm_data
Bundle of the per-run mutable data/scratch allocations neededDroplets.scm_data — Method
scm_data(grid, droplets, scmsettings::scm_settings{FT}; raddata=radiation_data(FT, scmsettings.coagsettings.Ns, scmsettings.spatial.Nz))Build allocations
Droplets.scm_diagnostics — Type
scm_diagnostics
Diagnostic variables calculated from the droplet attributesDroplets.scm_eulerian_arrays — Type
scm_eulerian_arrays
Container for all SCM arrays, including state variables, wind components, diagnostics, and output arrays.Droplets.scm_outputs — Type
scm_outputs
Output arrays for the SCM, storing time series of state variables and diagnostics at each output step.Droplets.scm_states — Type
scm_states
State variables for the SCM, including pressure, temperature, water vapor mixing ratio,
liquid water content, potential temperature, density, turbulent kinetic energy, and dissipation rate.
everything but P_faces is at cell centers_z
_tmp denotes conventionally diagnostic variablesDroplets.scm_wind — Type
scm_wind
Wind components for the SCM, including u, v, and w velocities.
W component is at cell faces_z, u and v are at cell centers_zDroplets.turbulence_data — Type
turbulence_data
Container for turbulence-related data allocations, including mixing length, shear and buoyancy production, eddy diffusivities, and implicit diffusion coefficients.Droplets.fill_grid_ranges! — Method
fillgridranges! Fill the gridrange vector of UnitRanges for each grid cell, based on the current droplets.I and droplets.cellid. This is used to efficiently access the droplets in each grid cell without having to filter the entire droplets.I array.
Droplets.keep_layer_filled! — Method
keeplayerfilled! Ensure that each grid cell in the cloud layer of DYCOMS(between 400 m and the inversion height) has at least mincount superdroplets. If a cell has fewer than mincount superdroplets, it will borrow superdroplets from aerosol heavy cells with more than min_count superdroplets, superdroplets will be merged to free up slots, and the borrowed superdroplets will be cloned (and halved) from the depleted cell to maintain the total number of superdroplets and real droplets. This is done to maintain a sufficient number of superdroplets for accurate representation of the droplet size distribution in each grid cell.
Droplets.radiation_function! — Method
radiationfunction! Dispatches on the radiation dynamics flag to compute (or skip) radiative fluxes/heating for one timestep. The DynOFF no-op lives here since it needs no radiation-package dependency; the DynON method (RRTMGP-backed) is defined as `Droplets.radiationfunction!` in the Examples radiation driver, so RRTMGP stays out of this package's dependencies.
Droplets.recycle_precipitation! — Method
recycleprecipitation Recycle precipitating droplets (X > diagnosticsettings.cloudrain_cuttoff) that have fallen below the bottom of the grid back to the top of the grid, and add their mass to the surface precipitation diagnostic.
Droplets.recycle_top_escape! — Method
recycletopescape Recycle droplets that have escaped the top of the grid back to the bottom of the grid. Setup for KiD
Droplets.run_scm! — Method
run_scm!
Advance a pre-built SCM environment (`grid`, `droplets`, `scmdata`) from t=0 to
`scmsettings.spatial.t_max` in steps of `scmsettings.spatial.dt`, running
`scmspinupsettings` for the spin-up window (`scmsettings.spinup_time`) and
`scmsettings` afterward. `dt`/`t_max` are read from `scmsettings.spatial` rather than
taken as separate arguments so they can't drift out of sync with the rest of the run.
Case-specific environment construction (grid/droplet initialization, radiation data,
etc.) happens beforehand, so that the hydrostatic solve isnt a dependency
Returns 'droplets_snapshots` if `snapshot_every` is given.Droplets.single_column_timestep — Method
singlecolumntimestep
Advance the SCM by one timestep, including condensation, coalescence, turbulence, advection, and diagnostics,
if processes are turned on by scmsettings.