Dilution, depletion and deposition
The receptor-dependent quantities: the dilution factor in each of its three regimes, the fraction of the plume that survives to reach a given distance, and what settles out of it onto the ground.
Dilution
AtmosphericDispersion.SRS19_CAVITY_COEFFICIENT — Constant
SRS19_CAVITY_COEFFICIENTB₀ = 30 of IAEA SRS-19 (International Atomic Energy Agency, 2001) Eq. (7), the dimensionless constant that "accounts for potential increases in the concentration in air along a vertical wall owing to the presence of zones of air stagnation created by building wakes".
AtmosphericDispersion.SRS19_CAVITY_LENGTH — Constant
SRS19_CAVITY_LENGTHK = 1 m of IAEA SRS-19 Eq. (8), the length that makes the cavity dilution a time per volume.
AtmosphericDispersion.dilution_cavity — Method
dilution_cavity(u, dimension)Dilution factor χ/Q in s/m³ per unit sector frequency at a receptor in the cavity of a building the release does not share a surface with: IAEA SRS-19 (International Atomic Energy Agency, 2001) §3.6.2 Eq. (8),
χ/Q = 1 / (π u H_B K)with K = 1 m, an empirical form Miller and Yildiran (1984) found conservative against some forty sets of tracer data around reactor structures. dimension is the building height H_B in metres, or its width where that is smaller, as SRS-19 directs after Huber (1984). Multiply by the sector frequency for a long-term concentration.
AtmosphericDispersion.dilution_cavity_wall — Method
dilution_cavity_wall(x, u; vent_diameter, coefficient = SRS19_CAVITY_COEFFICIENT)Dilution factor χ/Q in s/m³ at a receptor on the same building surface as the release, x metres from a vent of diameter vent_diameter metres, in a wind of u m/s: IAEA SRS-19 (International Atomic Energy Agency, 2001) §3.6.1 Eq. (7),
χ/Q = B₀ / (u x²)adapted there from Wilson and Britter (1982). Within three vent diameters SRS-19 takes the air to be undiluted, so the model is not defined there and the function throws. The Gaussian plume does not apply in the cavity; see BuildingZone.
AtmosphericDispersion.dilution_extended — Function
dilution_extended(east, north, site, class, wind_bearing, sectors = SectorGrid(16);
nuclide = nothing, washout = nothing)Ground-level dilution factor χ/Q in s/m³ for a release long enough that the wind direction meanders across a sector but short enough that it does not sample the rose,
χ/Q = √(2/π) exp(−H²/2Σ_z²) / (Σ_z u x θ_L)uniform in the crosswind direction within the sector centred on the plume axis, and zero outside it.
wind_bearing is the direction the wind blows from, radians clockwise from north. sectors sets the sector width and defaults to the sixteen cardinal sectors.
AtmosphericDispersion.dilution_instantaneous — Method
dilution_instantaneous(east, north, z, site, class, wind_bearing;
release_duration = SHORT_RELEASE_REFERENCE,
nuclide = nothing, washout = nothing)Dilution factor χ/Q in s/m³ at the receptor (east, north, z) in metres, for a release short enough that the wind holds a single direction wind_bearing, given in radians clockwise from north as the direction the wind blows from.
The field is the Gaussian plume with total reflection at the ground,
χ/Q = exp(−y²/2Σ_y²) [exp(−(z−H)²/2Σ_z²) + exp(−(z+H)²/2Σ_z²)] / (2π Σ_y Σ_z u)with x the downwind and y the crosswind coordinate obtained by rotating the receptor into the plume frame. Upwind of the source the factor is zero: this model carries no upwind diffusion.
AtmosphericDispersion.dilution_long_term — Method
dilution_long_term(east, north, site, rose;
nuclide = nothing, washout = nothing)Ground-level dilution factor χ/Q in s/m³ for a release long enough that the wind direction samples the whole rose,
χ_k/Q = √(2/π) F_k/(r θ_L) Σ_i [ F_ki D_i(r) exp(−H²/2Σ_z²) / (Σ_z ū) ]summed over the Pasquill classes, with F_k the frequency of wind blowing towards the receptor's sector k and F_ki the fraction of that time spent in class i.
That is the form without a mixing lid. Under one, √(2/π) exp(−H²/2Σ_z²)/Σ_z is replaced class by class with crosswind_integrated_factor, exactly as in dilution_extended: the long-term factor is the extended one summed over classes and weighted by the rose, and the two must agree on the vertical profile.
D_i is the depletion factor of class i, which is one unless a nuclide is given. It sits inside the class sum because it depends on the class through both the transport speed and the vertical dispersion. The 2021 code instead formed a separate depletion term as an unweighted sum of six exponentials, one per class, and so returned up to six in the limit of no deposition at all, where a surviving fraction must tend to one.
rose supplies both, in the correct sense whichever convention it was built from — that is the point of WindRose storing blowing-towards frequencies. The sector is the one containing the receptor's bearing.
The distance r is radial, as in the sector-averaged formulation this comes from. The 2021 code instead projected the receptor onto the axis of its sector, which shortens the distance by up to 1 − cos(θ_L/2), about 1.9 % for sixteen sectors, and correspondingly inflates the dilution factor.
AtmosphericDispersion.plume_frame — Method
plume_frame(east, north, wind_bearing)Downwind and crosswind coordinates (x, y) in metres of a receptor at (east, north), for a wind blowing from the bearing wind_bearing (radians clockwise from north).
The plume axis points along the direction the wind blows towards, so a wind from the north puts the axis due south. x is positive downwind of the source and negative upwind of it.
Nuclides
AtmosphericDispersion.TRITIATED_WATER — Constant
TRITIATED_WATERTritium as HTO, the chemical form a heavy-water reactor releases in quantity and the one that deposits readily.
Deposition velocity 0.4–0.8 × 10⁻² m/s, from the notes to CNCAN NSR-23 Table 6, which attribute it to experimental measurement — Murphy (1993) — and attach the condition that the tropopause be taken at 12–15 km. The lower bound agrees with the values in common use elsewhere: the MACCS2 default of 0.5, 0.42 measured at the Savannah River Site, and 0.392–0.444 from AECL.
That HTO deposits at all is a divergence from other guidance, and a deliberate one. IAEA SRS-19 (International Atomic Energy Agency, 2001) §3.9, EUR 15760 (Simmonds et al., 1995) §3.2 and HPA-RPD-058 (Smith and Simmonds, 2009) §3.2.2.3 each assign tritium a deposition velocity of zero and handle it by specific activity instead. This package follows the normative the work was done under; set the velocities to zero to follow the others.
AtmosphericDispersion.TRITIUM_DECAY_CONSTANT — Constant
TRITIUM_DECAY_CONSTANTDecay constant of tritium, 1.784e-9 s⁻¹, a half-life of about 12.3 years.
AtmosphericDispersion.TRITIUM_GAS — Constant
TRITIUM_GASTritium as HT, an order of magnitude less depositing than TRITIATED_WATER.
Deposition velocity 0.04–0.05 × 10⁻² m/s, the same source, which puts HT an order of magnitude below HTO under the same conditions.
AtmosphericDispersion.DepositionVelocity — Type
DepositionVelocity(low, high)Bracketing dry deposition velocities in m/s for a nuclide over a given surface.
The two are used in opposite places, and deliberately so. Depletion of the airborne plume takes low, because removing less material leaves more in the air and overestimates the inhalation pathway. Ground deposition takes high, because depositing more material overestimates the ground-shine and ingestion pathways. Each choice is conservative for the endpoint it feeds.
AtmosphericDispersion.Nuclide — Type
Nuclide(; name, decay_constant, deposition_velocity, washout_species = WASHOUT_TRITIUM_IODINE)A released species: what it is called, how fast it decays, and how readily it deposits.
decay_constant— radioactive decay constantλ, s⁻¹deposition_velocity—DepositionVelocityover the receptor surfacewashout_species— theWashoutSpeciesrow of the washout table the nuclide falls under
The dispersion core is otherwise independent of the species; a nuclide enters only through depletion and deposition.
Depletion
AtmosphericDispersion.DEPLETION_INTEGRAL_FLOOR — Constant
DEPLETION_INTEGRAL_FLOORLower limit in metres of the dry-depletion integral.
The integrand carries a 1/σ_z that diverges as the source is approached, so the integral is started a short distance downwind. The 2021 code used the same one-metre floor.
AtmosphericDispersion.WashoutEvent — Type
WashoutEvent(; duration, precipitation = PRECIPITATION_RAIN,
rate = first(PRECIPITATION_RATES), model = WASHOUT_NORMATIVE)A precipitation event scavenging the plume: its precipitation type, its intensity rate in mm/h, its duration in seconds, and the WashoutModel its coefficients are taken from. The intensity must be one of PRECIPITATION_RATES, the washout table being defined only there.
Which row of the table applies is a property of the released species, so it lives on the Nuclide and not here.
AtmosphericDispersion.decay_factor — Method
decay_factor(x, u, nuclide)Surviving fraction after radioactive decay over a travel distance x metres at transport speed u m/s, exp(−λ x / u).
AtmosphericDispersion.depletion_factor — Method
depletion_factor(x, site, class, nuclide; washout = nothing)Total surviving airborne fraction over x metres: the product of the decay, dry-deposition and washout factors.
They multiply because they act in sequence on the same material. With no washout, no deposition and no decay each factor is one and so is the product, which is the limit that fixes the composition — the 2021 code added the wet and dry factors and so returned two in that limit.
washout is a WashoutEvent; with the default of nothing the plume travels in dry air.
AtmosphericDispersion.depletion_integral — Method
depletion_integral(x, site, class)The integral
∫ √(2/π) exp(−H(x')² / 2Σ_z(x')²) / Σ_z(x') dx'from DEPLETION_INTEGRAL_FLOOR to x, in units of m⁻¹ × m, which sets how much of the plume has met the ground by distance x.
Under a mixing layer the integrand carries the lid's image terms as well, which is HPA-RPD-058 (Smith and Simmonds, 2009) Eq. (3.17); it is crosswind_integrated_factor evaluated along the plume axis.
Evaluated by adaptive Gauss–Kronrod quadrature. The 2021 code used a fifty-point trapezoid rule, which is not adaptive and resolves the near field — where the integrand varies fastest — worst.
AtmosphericDispersion.dry_depletion_factor — Method
dry_depletion_factor(x, site, class, nuclide)Surviving airborne fraction after dry deposition over x metres,
exp[ −√(2/π) (v_d / u) ∫ exp(−H²/2Σ_z²)/Σ_z dx' ]The low deposition velocity of the nuclide is used, which removes the least material and so is conservative for the airborne concentration.
AtmosphericDispersion.washout_coefficients — Function
washout_coefficients(event, species = WASHOUT_TRITIUM_IODINE)The WashoutCoefficients of a WashoutEvent for the given WashoutSpecies.
AtmosphericDispersion.wet_depletion_factor — Function
wet_depletion_factor(event, species = WASHOUT_TRITIUM_IODINE)Surviving airborne fraction after the washout event, exp(−Λ t).
The low washout coefficient is used, for the same reason the low deposition velocity is: it removes the least material and so is conservative for the airborne concentration. The high coefficient drives the ground deposition instead.
Ground deposition and resuspension
AtmosphericDispersion.RESUSPENSION_IAEA_SS57 — Constant
RESUSPENSION_IAEA_SS57IAEA Safety Series No. 57 (International Atomic Energy Agency, 1982), §3.6, Eq. (3.14A): 10⁻⁵ exp(−10⁻² t) + 10⁻⁹ exp(−2×10⁻⁵ t). The default. Safety Series 57 reached this package by way of reference [3] of CNCAN NSR-23; it has since been superseded, and every page of it carries a "no longer valid" stamp, but no successor restates these constants. It falls by a factor of about 38 over the first year and by four orders of magnitude over ten.
AtmosphericDispersion.RESUSPENSION_MAXWELL_ANSPAUGH — Constant
RESUSPENSION_MAXWELL_ANSPAUGHMaxwell and Anspaugh (2011), Eqs. 15/16, also adopted by NRC NUREG/CR-7270 (Bixler et al., 2022): 10⁻⁵ exp(−0.07 t) + 7×10⁻⁹ exp(−0.002 t) + 10⁻⁹. It keeps the fast amplitude and weathers seven times faster, so it lies below Safety Series 57 from the first days, by a factor of 60 after a year. Its floor takes over at about two and a half years, and from there on it is the higher of the two, by 8 % after ten years.
AtmosphericDispersion.ResuspensionModel — Type
ResuspensionModel(; fast_amplitude, fast_rate, slow_amplitude, slow_rate, floor = 0)A resuspension factor of the form
K(t) = A exp(−λ₁ t) + B exp(−λ₂ t) + Cin m⁻¹, with t in days since deposition: amplitudes A and B in m⁻¹, rates λ₁ and λ₂ in day⁻¹, and a long-term floor C in m⁻¹. The fast term describes material still loose on the surface, the slow term material progressively fixed into it.
See RESUSPENSION_IAEA_SS57 and RESUSPENSION_MAXWELL_ANSPAUGH for the two published parameter sets carried; any other is a call away.
AtmosphericDispersion.dry_deposition — Method
dry_deposition(concentration, nuclide)Dry deposition per unit ground area in Bq/m², from the time-integrated ground-level concentration in Bq·s/m³.
Takes the high deposition velocity of the nuclide.
AtmosphericDispersion.resuspended_concentration — Function
resuspended_concentration(deposition, elapsed_days, model = RESUSPENSION_IAEA_SS57)Airborne concentration in Bq/m³ resuspended from a surface deposition of deposition Bq/m², elapsed_days after it was laid down.
AtmosphericDispersion.resuspension_factor — Function
resuspension_factor(elapsed_days, model = RESUSPENSION_IAEA_SS57)Resuspension factor K in m⁻¹ at elapsed_days after deposition; see ResuspensionModel. It converts a surface deposition in Bq/m² into an airborne concentration in Bq/m³.
AtmosphericDispersion.wet_deposition — Method
wet_deposition(east, north, site, class, wind_bearing, nuclide;
activity, washout, release_duration = SHORT_RELEASE_REFERENCE)Wet deposition per unit ground area in Bq/m² beneath a plume of a single direction,
ω_w = Λ A D exp(−y²/2Σ_y²) / (√(2π) Σ_y u)where Λ is the high washout coefficient of the WashoutEvent washout for the nuclide's species, A the released activity in Bq and D the surviving fraction after decay and washout.
The denominator is √(2π) Σ_y u, which is what integrating the Gaussian plume over the whole vertical column leaves. The 2021 code wrote √2 π Σ_y u; the ratio of the two is exactly √π, so that expression understated wet deposition by a factor of 1.772.
AtmosphericDispersion.wet_deposition_sector — Method
wet_deposition_sector(r, site, class, nuclide;
activity, washout, sectors = SectorGrid(16))Wet deposition per unit ground area in Bq/m² at radial distance r metres, averaged over a sector,
ω_w = Λ A D / (u θ_L r)the column activity spread over the arc the sector subtends at that distance.