P3 Cloud-Liquid Immersion Freezing
This document describes the P3 routine cldliq_immersion_freezing. The
routine computes heterogeneous immersion freezing tendencies for cloud-liquid
mass and cloud-droplet number, and it summarizes the physical-property tests
that verify the implementation.
Purpose
The routine computes:
qc2qi_hetero_freeze_tend: cloud-liquid mass converted to ice by heterogeneous immersion freezingnc2ni_immers_freeze_tend: cloud-droplet number converted to ice number by immersion freezing
These tendencies are used when supercooled cloud droplets freeze into ice in the P3 microphysics scheme.
Physical Context
Cloud-liquid immersion freezing represents heterogeneous freezing of supercooled cloud droplets. For the current positive runtime exponent, the rate increases with supercooling and depends on the assumed cloud-droplet size distribution. The mass tendency and number tendency are different moments of that same size distribution, so their ratio encodes the mean mass of newly frozen droplets.
Active Mask
The routine is active when all of the following conditions hold:
qc_incld >= QSMALLT_atm <= T_rainfrzcontext == true
Both thresholds are inclusive. If any of these conditions fail, the routine does not modify the output lane.
Governing Formulas
For active lanes, define
The implementation computes
The code forms these powers through inv_lamc3 = (1/lamc)^3, so the mass
tendency uses square(inv_lamc3) and the number tendency uses inv_lamc3.
Moment Identity
Let
Then the mass-to-number ratio simplifies exactly to
This follows from
Using
the constant ratio is
This ratio is the mean mass per newly frozen droplet implied by the assumed
cloud-droplet size distribution. Since
\(\mathrm{CONS6} / \mathrm{CONS5} = \pi \rho_w / 6\), the ratio has the same
structure as the mass of a spherical water droplet, with the effective
droplet-volume factor supplied by the Gamma-distribution moment ratio.
Temperature, the runtime exponent, and the distribution prefactor cdist1
cancel out because they multiply the mass and number moments identically.
Volume-Weighted Freezing Interpretation
The implemented mass-to-number tendency ratio can be interpreted as the mean mass per newly frozen droplet. Because
the ratio has the structure of the mass of a spherical water droplet, \(m = (\pi \rho_w / 6)D^3\).
For an ordinary Gamma cloud droplet number distribution, the ordinary mean cloud droplet mass is
For the newly frozen droplets implied by the P3 immersion-freezing closure,
Therefore,
This expresses a general microphysical property of volume-proportional immersion freezing: newly frozen droplets are biased toward larger droplets than the ordinary cloud droplet population, because larger droplets have more volume in which to contain an immersed ice-nucleating site.
Implementation Notes
qc_incld is currently a gate only. Above threshold it does not enter the
active-lane formulas directly. Cloud-water dependence enters through the
diagnosed distribution parameters lamc, mu_c, and cdist1.
This does not mean cloud water is physically irrelevant; it means this small
kernel receives cloud-water dependence through the precomputed droplet-spectrum
parameters.
inv_qc_relvar is currently inactive in this routine because the code uses
// sgs_var_coef = subgrid_variance_scaling(inv_qc_relvar, 2);
sgs_var_coef = 1;
If subgrid-variance scaling is restored, the physical-property tests should be updated from invariance to the corresponding exact scaling law.
When context is false, or when the lane fails the qc_incld or temperature
activation gate, the routine leaves the incoming output values unchanged.
The property tests therefore seed outputs with sentinel values when checking
inactive lanes.
Mathematical Properties
For active lanes, the separable structure implies exact logarithmic scaling identities:
These identities encode the key physics:
- for positive
a, stronger supercooling increases both tendencies exponentially - smaller
lamccorresponds to larger characteristic droplets, with a stronger effect on frozen mass than on frozen number because mass samples a higher moment of the droplet distribution cdist1scales both tendencies linearlycdist1 = 0gives zero mass and number freezing tendencies for otherwise active lanes
Physical-Property Tests
The unit tests live in
components/eamxx/src/physics/p3/tests/p3_cldliq_imm_freezing_unit_tests.cpp.
The run_phys() implementation uses separate Catch2 sections for:
activation_and_thresholdstemperature_supercooling_scalingruntime_exponent_sensitivitylambda_power_law_scalingmass_number_moment_identityvolume_nucleation_prefers_larger_than_mean_dropletsdistribution_prefactor_scalingzero_distribution_prefactor_gives_zeroscalar_multiplier_cancellation_in_mass_number_ratioqc_gate_only_behaviorinv_qc_relvar_currently_inactivecontext_mask_preserves_inactive_lanesfinite_nonnegative_outputs
These tests use deterministic inputs, launch the production
Functions::cldliq_immersion_freezing kernel through Kokkos, copy the results
back to host, and compare the outputs against independent identities, exact
ratios, and one-sided physical inequalities. The BFB regression path remains
separate in run_bfb().
Tolerance Philosophy
The tests use identity tolerances for exact algebraic relations such as the
moment identity and the separable scaling ratios. Exact equality is used for
inactive-lane preservation checks because the kernel should not touch those
lanes. Near-zero floors remain separate from scaled relative checks so that
inactive preservation and positive-tendency assertions are not conflated. The
volume-weighted size-bias test also uses this identity tolerance, because the
comparison still goes through production-kernel outputs involving tgamma,
exp, and ratio formation.