Simple#

class abcmodel.atmos.surface_layer.simple.SimpleState(ustar, uw=<factory>, vw=<factory>, ra=<factory>)[source]#

Bases: AbstractSurfaceLayerState

Minimal surface layer model initial state.

ustar: Array#

Surface friction velocity [m/s].

uw: Array#

Zonal surface momentum flux [m2 s-2].

vw: Array#

Meridional surface momentum flux [m2 s-2].

ra: Array#

Aerodynamic resistance [s/m].

class abcmodel.atmos.surface_layer.simple.SimpleModel(*args: Any, **kwargs: Any)[source]#

Bases: AbstractSurfaceLayerModel[SimpleState]

Simple surface layer model with constant friction velocity.

init_state(ustar)[source]#

Initialize the model state.

Parameters:

ustar (float) – Friction velocity [m/s].

Returns:

The initial surface layer state.

run(state)[source]#

Run the model.

Parameters:

state (AbstractCoupledState[TypeVar(RadT, bound= AbstractRadiationState), TypeVar(LandT, bound= AbstractLandState), DayOnlyAtmosphereState[SimpleState, TypeVar(MixedT, bound= AbstractMixedLayerState), TypeVar(CloudT, bound= AbstractCloudState)]])

Returns:

The updated surface layer state.

abcmodel.atmos.surface_layer.simple.compute_uw(u, v, ustar)[source]#

Compute the zonal momentum flux uw.

Notes

The zonal momentum flux is given by

\[\overline{u'w'} = -\frac{u\,u_*^2}{\sqrt{u^2 + v^2}}\]

where \(u\) and \(v\) are the zonal and meridional wind components, and \(u_*\) is the friction velocity. The special case \(u = 0\) returns zero.

abcmodel.atmos.surface_layer.simple.compute_vw(u, v, ustar)[source]#

Compute the meridional momentum flux vw.

Notes

The meridional momentum flux is given by

\[\overline{v'w'} = -\frac{v\,u_*^2}{\sqrt{u^2 + v^2}}\]

where \(u\) and \(v\) are the zonal and meridional wind components, and \(u_*\) is the friction velocity. The special case \(v = 0\) returns zero.

abcmodel.atmos.surface_layer.simple.compute_ra(u, v, wstar, ustar)[source]#

Compute the aerodynamic resistance ra.

Notes

The aerodynamic resistance is given by

\[r_a = \frac{u_{\text{eff}}}{u_*^2},\]

where the effective wind speed is

\[u_{\text{eff}} = \sqrt{u^2 + v^2 + w_*^2}\]

and \(u_*\) is the friction velocity.