Skip to content

Vertical diffusion

Vertical diffusion in SpeedyWeather.jl is implemented as a Laplacian in the vertical Sigma coordinates with a diffusion coefficient that in general depends on space and time and is flow-aware, meaning it is recalculated on every time step depending on the vertical stability of the atmospheric column.

Vertical diffusion can be applied to velocities , temperature (done via dry static energy, see below) and specific humidity .

Implementations

The following schemes for vertical diffusion are currently implemented

julia
using SpeedyWeather
subtypes(SpeedyWeather.AbstractVerticalDiffusion)
1-element Vector{Any}:
 BulkRichardsonDiffusion

You can always set vertical_diffusion=nothing which will disable all vertical diffusion. BulkRichardsonDiffusion is explained in the following.

Laplacian in sigma coordinates

The vertical diffusion of a variable, say , takes the in sigma coordinates the form

as a tendency to with no-flux boundary conditions   at   (top of the atmosphere) and   (the surface). That way the diffusion preserves the integral of the variable from   to  .

Discretising the diffusion operator over vertical layers   with , on those layers at respective coordinates that are generally not equally spaced using centred finite differences

We reconstruct on the faces   with a simple arithmetic average of and . This is necessary for the multiplication with the gradients which are only available on the faces after the centred gradients are computed. We then take the gradient again to obtain the final tendencies again at cell centres .

Bulk Richardson-based diffusion coefficient

We calculate the diffusion coefficient based on the bulk Richardson number [^Frierson2006] which is computed as follows

(see Bulk Richardson-based drag coefficient in comparison). Gravitational acceleration is , height , the virtual potential temperature where we use the virtual dry static energy   with the Virtual temperature. The boundary layer height (vertical index ) is defined as the height of the lowermost layer where   with   the critical Richardson number.

The diffusion coefficient is for every layer   in the boundary layer calculated depending on the height of a layer and its bulk Richardson number .

with   the fraction of the boundary layer height above which the second case guarantees a smooth transition in to zero at  . is then defined as

is the surface drag coefficient as computed in Bulk Richardson-based drag coefficient. The subscript denotes the lowermost model layer  .

As for the Bulk Richardson-based drag coefficient we also simplify this calculation here by approximating   with the height Z of the lowermost layer given resolution and a reference surface temperature, for more details see description in that section.

Vertical diffusion tendencies

The vertical diffusion is then computed as a tendency for and temperature via the dry static energy   , i.e.

where we just fold the heat capacity into the diffusion coefficient  . The other variables are diffused straight-forwardly as  , etc.

References

[^Frierson2006]: Frierson, D. M. W., I. M. Held, and P. Zurita-Gotor, 2006: A Gray-Radiation Aquaplanet Moist GCM. Part I: Static Stability and Eddy Scale. J. Atmos. Sci., 63, 2548-2566. DOI: 10.1175/JAS3753.1.