
Atmospheric dispersion: Pasquill-Gifford sigmas, Briggs plume rise, Gaussian plume and puff, Eulerian and Lagrangian models
Source:R/AirDispersion.R
PgSigmas.RdPgSigmas: Briggs (1973) fits of the Pasquill-Gifford coefficients,
rural sigma_y = a_y x (1 + 0.0001 x)^(-1/2) (urban 0.0004) and
sigma_z = a_z x (1 + b_z x)^(e_z) by stability class A-F.
BriggsPlumeRise: buoyancy flux
F = g v_s d^2 (T_s - T_a) / (4 T_s); final rise
21.425 F^(3/4) / u (F < 55, x_f = 49 F^(5/8)) or
38.71 F^(3/5) / u (x_f = 119 F^(2/5)) for classes A-D,
2.6 (F / (u s))^(1/3) with s = g (dtheta/dz) / T_a and
x_f = 2.0715 u / sqrt(s) for E and F; transitional rise
1.6 F^(1/3) x^(2/3) / u before x_f (EPA ISC3).
GaussianPlume: Q / (2 pi u sigma_y sigma_z) exp(-y^2 / (2 sigma_y^2)) V
with ground reflection and, under a mixing lid, image terms.
GaussianPuff: instantaneous puff with sigma_x = sigma_y at the
travel distance u t. AdvectionDiffusion2d: explicit upwind
advection, central diffusion, forward Euler, zero boundaries; the scheme
is stable when |u dt/dx| + |v dt/dy| + 2 (kx dt/dx^2 + ky dt/dy^2) <= 1,
returned as stability_number and stable, and a call outside
the bound is taken in enough sub-steps of a smaller dt to satisfy
it (substeps, dt), with a warning. Every physical input is
checked: rates, masses, heights and distances non-negative, wind speed,
travel time and grid steps positive, n_images a whole number, the
stack hotter than the air, x0 and y0 single numbers; a
release above mixing_height warns.
LagrangianParticles: random walk
x + u dt + sqrt(2 K dt) xi with Philox normals (step k uses
streams 2k and 2k + 1) and an optional counting grid.
Usage
PgSigmas(x, stability = "D", setting = "rural")
BriggsPlumeRise(
x,
u,
diameter,
exit_velocity,
stack_temp,
ambient_temp,
stability = "D",
dtheta_dz = NULL,
g = 9.80616
)
GaussianPlume(
q,
u,
h,
receptors,
stability = "D",
setting = "rural",
mixing_height = NULL,
n_images = 3
)
GaussianPuff(
mass,
u,
h,
receptors,
t,
stability = "D",
setting = "rural",
mixing_height = NULL,
n_images = 3
)
AdvectionDiffusion2d(c0, u, v, kx, ky, dx, dy, dt, n_steps, source = NULL)
LagrangianParticles(
n,
x0,
y0,
u,
v,
kx,
ky,
dt,
n_steps,
seed = 0,
grid = NULL
)Arguments
- x
Downwind distance(s) (m).
- stability
Pasquill stability class, "A" to "F".
- setting
"rural" or "urban".
- u
Wind speed (m/s), or the x velocity.
- diameter, exit_velocity, stack_temp, ambient_temp
Stack diameter (m), exit velocity (m/s), stack gas and ambient temperatures (K).
- dtheta_dz
Potential temperature gradient for stable classes (K/m).
- g
Gravity.
- q
Emission rate.
- h
Effective stack height.
- receptors
Matrix (or list) of receptor coordinates x, y, z.
- mixing_height
Mixing-lid height, or NULL for none.
- n_images
Number of lid image pairs.
- mass
Puff mass.
- t
Time since release.
- c0
Initial concentration grid.
- v
Velocity along y.
- kx, ky
Eddy diffusivities.
- dx, dy
Grid spacings.
- dt
Time step.
- n_steps
Number of steps.
- source
Source grid (per unit time), or NULL.
- n
Number of particles.
- x0, y0
Release point.
- seed
Philox seed.
- grid
NULL or c(x_min, x_max, y_min, y_max, nx, ny).
References
Briggs, G. A. (1973). Diffusion estimation for small emissions. ATDL Contribution 79. Briggs, G. A. (1975). Plume rise predictions. AMS. Turner, D. B. (1970). Workbook of Atmospheric Dispersion Estimates. EPA AP-26. Seinfeld, J. H. and Pandis, S. N. (2016). Atmospheric Chemistry and Physics, 3rd ed. Thomson, D. J. (1987). J. Fluid Mech. 180, 529-556.