You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(edmfx): add horizontal component to the EDMFX SGS diffusive flux
The EDMFX environment SGS diffusive flux was vertical-only. Add its horizontal
component, enabled by the opt-in option `edmfx_sgs_horizontal_diffusive_flux`
(default false), for high-resolution box runs. On single-column geometry the
tendency returns immediately, so column results are unchanged by the option.
The scalar fluxes mirror the vertical EDMFX diffusive flux: the same variables
(total enthalpy, total specific humidity with its air-mass coupling, the
environment SGS tracers scaled by `α_vert_diff_tracer`, and TKE) and the same
TKE-based eddy diffusivity, with horizontal rather than vertical operators.
The momentum tendency is the horizontal weak divergence of the SGS stress
`τ = -2 K_u S`, with the full three-dimensional strain rate, on cell centers
for the horizontal wind and on cell faces for the vertical wind, mirroring the
Smagorinsky-Lilly stress split by divergence direction. The corresponding TKE
shear production from horizontal gradients, `2 ρ K_u S_h : S_h` with `S_h` the
strain rate built from horizontal gradients only, is positive definite; the
production from vertical gradients and its stencil are unchanged. All terms
are always explicit and never enter the implicit Jacobian; the vertical flux
stays implicit when `implicit_diffusion` is set.
The anisotropy follows the Smagorinsky-Lilly length-scale split: the eddy
diffusivity is isotropic in TKE, so only the mixing length differs by direction
through its grid-scale limiter (the cell thickness for the vertical flux, the
horizontal node spacing for the horizontal flux). `mixing_length_lopez_gomez_2020`
generalizes its limiter argument (`ᶜdz` to `grid_scale`); `ᶜmixing_length`
gains `grid_scale` and `buoyancy_gradient` keywords (defaults: the vertical
cell thickness and the centered `ᶜlinear_buoygrad`), and the horizontal call
sites pass both explicitly.
Add diagnostics for the horizontal closure fields (`lmixh`, `edth`, `evuh`).
Combining the option with Smagorinsky-Lilly or anisotropic minimum dissipation,
which already apply horizontal SGS diffusion, is rejected at model construction.
Add tests: horizontally uniform states and single-column geometry produce no
tendency, the moist air mass tendency matches the `ρq_tot` tendency bitwise,
the grid-scale limit is directional and attains a binding cap, the TKE
production is positive definite under uniform TKE, and incompatible closure
combinations are rejected.
Add docs/src/edmf_horizontal_diffusion.md.
Copy file name to clipboardExpand all lines: NEWS.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,7 @@ ClimaAtmos.jl Release Notes
4
4
main
5
5
----
6
6
7
+
-[#4657](https://github.com/CliMA/ClimaAtmos.jl/pull/4657)![][badge-✨feature/enhancement] Add a horizontal component to the EDMFX SGS diffusive flux, enabled by the opt-in `edmfx_sgs_horizontal_diffusive_flux` config option (default `false`), for high-resolution box configurations: scalar and TKE fluxes, the momentum stress `τ = -2 K_u S` with the full strain rate, the corresponding TKE shear production from horizontal gradients, and diagnostics `lmixh`, `edth`, and `evuh`.
7
8
-[#4648](https://github.com/CliMA/ClimaAtmos.jl/pull/4648)![][badge-🔥behavioralΔ] Carry the energy of sedimenting water at each subdomain's own value under `PrognosticEDMFX`. Each sedimenting species transports its specific internal, potential, and kinetic energy `e_int(T) + Φ + Kin(w, u)`; the grid-mean sedimentation energy flux is set equal to the sum of the updraft and environment fluxes, each the subdomain sedimentation mass flux times its specific energy (with `Φ` common to all subdomains and the environment mass flux taken as the grid-mean residual `ρqw - ρaʲqʲwʲ`). The updraft kinetic energy uses the updraft velocities; the environment kinetic energy uses the grid-mean terminal velocity, since the environment terminal velocity is not stored separately.
8
9
-[#4653](https://github.com/CliMA/ClimaAtmos.jl/pull/4653)![][badge-🔥behavioralΔ] Improve the manual implicit Jacobian (the tendencies are unchanged; behavior changes only through the single-Newton-iteration implicit solve).
9
10
- Document that the existing height-form pressure-gradient-force Jacobian blocks are the exact linearization of the Exner-form tendency `cp_d θ_v ∇Π` (stencils unchanged): the thermal-buoyancy and pressure-buoyancy terms cancel via the equation-of-state identity `δρ/ρ = (1-κ_d) δp/p - δθ_v/θ_v`, leaving the acoustic operator `∇δp/ρ` in every column perturbed at fixed density plus a single buoyancy term in the `ρ` column, so sound and gravity waves are both treated fully implicitly.
Copy file name to clipboardExpand all lines: config/default_configs/default_config.yml
+3Lines changed: 3 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -455,6 +455,9 @@ edmfx_sgs_mass_flux:
455
455
edmfx_sgs_diffusive_flux:
456
456
help: "If set to true, it switches on EDMFX SGS diffusive flux. [`true`, `false` (default)]"
457
457
value: false
458
+
edmfx_sgs_horizontal_diffusive_flux:
459
+
help: "If set to true, it switches on the horizontal component of the EDMFX SGS diffusive flux. Intended for high-resolution box runs. [`true`, `false` (default)]"
460
+
value: false
458
461
updraft_number:
459
462
help: "Sets the number of updrafts for the EDMF scheme"
The EDMFX environment sub-grid scale (SGS) diffusive flux is, by default, vertical only: it parameterizes turbulent transport along the column with an eddy-diffusivity closure and applies the resulting tendency to the grid mean. The horizontal component adds the analogous horizontal down-gradient flux. It is enabled with the configuration option `edmfx_sgs_horizontal_diffusive_flux` (default `false`).
4
+
5
+
## Formulation
6
+
7
+
The horizontal flux uses the same TKE-based eddy diffusivity as the vertical flux,
8
+
9
+
```math
10
+
K = c_m \, l \, \sqrt{e} \,/\, \mathrm{Pr}_t ,
11
+
```
12
+
13
+
where ``l`` is the environment mixing length, ``e`` is the environment turbulent kinetic energy (TKE), ``c_m`` is the eddy-diffusivity coefficient, and ``\mathrm{Pr}_t`` the turbulent Prandtl number. The grid-mean tendencies are, on cell centers,
where ``\nabla_h`` and ``\nabla_h\cdot`` are the horizontal gradient and weak divergence, ``s_\text{d}`` is the dry static energy, ``h_\mu`` and ``q_\mu`` are the specific enthalpy and specific humidity of the water species ``\mu \in \{\text{vap}, \text{liq}, \text{ice}\}``, ``\Phi`` is the geopotential, ``K_u`` is the eddy viscosity and ``K_h = K_u/\mathrm{Pr}_t``. The total enthalpy uses the dry-static-energy + water-enthalpy decomposition of the vertical flux, which avoids the spurious enthalpy flux that diffusing ``h_\text{tot}`` directly would carry with the dry-air mass. The tracer ``\chi`` ranges over the total specific humidity and the environment SGS tracers — the microphysics species (cloud, precipitation, and, for two-moment schemes, number concentrations) and any passive tracers — i.e. the same set the vertical flux diffuses. Sedimenting microphysics species are scaled by the tracer diffusion factor ``\alpha`` (`α_vert_diff_tracer`); other tracers use the unscaled ``K_h``, matching the vertical flux. The total-specific-humidity flux additionally enters the air-mass tendency ``\partial_t \rho``; condensate and precipitation fluxes do not.
26
+
27
+
The momentum tendency is the horizontal weak divergence of the subgrid-scale stress ``\tau = -2 K_u \mathcal{S}``, with ``\mathcal{S}`` the full three-dimensional strain rate of the grid-mean velocity,
evaluated on cell centers for the horizontal wind and on cell faces for the vertical wind, mirroring the Smagorinsky-Lilly stress split by divergence direction; the vertical stress divergence is handled by the vertical diffusion pathway.
36
+
37
+
The corresponding shear production of TKE uses the strain rate built from horizontal gradients only, ``\mathcal{S}_h``,
which is positive definite; the production from vertical gradients and its stencil are unchanged. This mirrors the decoupled Smagorinsky-Lilly split, in which each directional norm is built from that direction's gradients.
44
+
45
+
The horizontal flux mirrors the vertical EDMFX diffusive flux: the same variables, the same tracer set, and the same scaling, with horizontal rather than vertical operators.
46
+
47
+
## Anisotropic length scale
48
+
49
+
The eddy diffusivity depends on direction only through the mixing length ``l``: the TKE ``e`` is isotropic. In the Lopez-Gomez et al. (2020) closure the mixing length is the smooth minimum of physical scales (wall distance, TKE production–dissipation balance, static stability), limited from above by a grid scale,
50
+
51
+
```math
52
+
l = \min(l_\text{phys}, \, \Delta).
53
+
```
54
+
55
+
Unlike the Smagorinsky-Lilly closure, whose length scale is purely geometric (``l = c_s \Delta``), the EDMF length is physically based; only its grid-scale limiter is geometric. The vertical and horizontal fluxes therefore share the same physical length but use different limiters — the cell thickness ``\Delta z`` for the vertical flux and the horizontal node spacing ``\Delta x`` for the horizontal flux:
56
+
57
+
```math
58
+
l_v = \min(l_\text{phys}, \, \Delta z),
59
+
\qquad
60
+
l_h = \min(l_\text{phys}, \, \Delta x).
61
+
```
62
+
63
+
This mirrors the Smagorinsky-Lilly horizontal/vertical split, in which the two length scales are ``c_s \Delta x`` and ``c_s \Delta z``. Two limits follow:
64
+
65
+
- where ``l_\text{phys} < \min(\Delta x, \Delta z)`` (for example small near-surface
66
+
eddies), ``l_h = l_v = l_\text{phys}`` and the diffusivity is isotropic;
67
+
- where ``l_\text{phys} > \max(\Delta x, \Delta z)``, the ratio ``l_h / l_v = \Delta x / \Delta z`` recovers the Smagorinsky grid anisotropy.
68
+
69
+
## When to enable it
70
+
71
+
Horizontal EDMF diffusion is intended for box configurations whose horizontal grid spacing is comparable to or smaller than the physical mixing length, so that the horizontal limiter ``\min(l_\text{phys}, \Delta x)`` binds. This is the high-resolution and gray-zone regime, where the horizontal grid is fine enough for an anisotropic SGS length scale to matter.
72
+
73
+
At coarse horizontal resolution (for example global runs with ``\Delta x`` of tens of kilometers) the horizontal limiter rarely binds, the horizontal diffusivity reduces to the isotropic environment value, and the term is typically negligible next to resolved horizontal transport. The option is off by default for that reason.
74
+
75
+
The horizontal term is a grid-mean closure applied independently of the vertical flux and of the diffusion mode: it is always explicit, since the horizontal operators are not part of the column implicit solve, while the vertical flux remains implicit when `implicit_diffusion` is set. The Smagorinsky-Lilly and anisotropic-minimum-dissipation closures already supply horizontal SGS diffusion of the same fields, so combining either with this option is rejected at model construction.
76
+
77
+
Because the term is explicit, it adds a horizontal diffusive stability limit on the timestep, ``\Delta t \lesssim \Delta x^2 / (2 K_h)``. At the fine horizontal resolutions where this closure is intended, the timestep is in practice already set by the explicit horizontal acoustic limit ``\Delta t \lesssim \Delta x / c_s``, which is the more restrictive of the two.
0 commit comments