API
Initial conditions
General
ClimaAtmos.InitialConditions.InitialCondition
— TypeInitialCondition
A mechanism for specifying the LocalState
of an AtmosModel
at every point in the domain. Given some initial_condition
, calling initial_condition(params)
returns a function of the form local_state(local_geometry)::LocalState
.
ClimaAtmos.InitialConditions.IsothermalProfile
— TypeIsothermalProfile(; temperature = 300)
An InitialCondition
with a uniform temperature profile.
ClimaAtmos.InitialConditions.DecayingProfile
— TypeDecayingProfile(; perturb = true)
An InitialCondition
with a decaying temperature profile, and with an optional perturbation to the temperature.
ClimaAtmos.InitialConditions.hydrostatic_pressure_profile
— Functionhydrostatic_pressure_profile(; thermo_params, p_0, [T, θ, q_tot, z_max])
Solves the initial value problem p'(z) = -g * ρ(z)
for all z ∈ [0, z_max]
, given p(0)
, either T(z)
or θ(z)
, and optionally also q_tot(z)
. If q_tot(z)
is not given, it is assumed to be 0. If z_max
is not given, it is assumed to be 30 km. Note that z_max
should be the maximum elevation to which the specified profiles T(z), θ(z), and/or q_tot(z) are valid.
Plane / Box
ClimaAtmos.InitialConditions.ConstantBuoyancyFrequencyProfile
— TypeConstantBuoyancyFrequencyProfile()
An InitialCondition
with a constant Brunt-Vaisala frequency and constant wind velocity, where the pressure profile is hydrostatically balanced. This is currently the only InitialCondition
that supports the approximation of a steady-state solution.
ClimaAtmos.InitialConditions.DryDensityCurrentProfile
— TypeDryDensityCurrentProfile(; perturb = false)
An InitialCondition
with an isothermal background profile, with a negatively buoyant bubble, and with an optional perturbation to the temperature.
ClimaAtmos.InitialConditions.RisingThermalBubbleProfile
— TypeRisingThermalBubbleProfile(; perturb = false)
An InitialCondition
with an isothermal background profile, with a positively buoyant bubble, and with an optional perturbation to the temperature.
Sphere
ClimaAtmos.InitialConditions.DryBaroclinicWave
— TypeDryBaroclinicWave(; perturb = true, deep_atmosphere = false)
An InitialCondition
with a dry baroclinic wave, and with an optional perturbation to the horizontal velocity.
ClimaAtmos.InitialConditions.MoistBaroclinicWaveWithEDMF
— TypeMoistBaroclinicWaveWithEDMF(; perturb = true, deep_atmosphere = false)
The same InitialCondition
as MoistBaroclinicWave
, except with an initial TKE of 0 and an initial draft area fraction of 0.2.
ClimaAtmos.InitialConditions.MoistAdiabaticProfileEDMFX
— TypeMoistAdiabaticProfileEDMFX(; perturb = true)
An InitialCondition
with a moist adiabatic temperature profile, and with an optional perturbation to the temperature.
Cases from literature
ClimaAtmos.InitialConditions.Nieuwstadt
— TypeNieuwstadt
The InitialCondition
described in [7], but with a hydrostatically balanced pressure profile.
ClimaAtmos.InitialConditions.GABLS
— TypeGABLS
The InitialCondition
described in [8], but with a hydrostatically balanced pressure profile.
ClimaAtmos.InitialConditions.GATE_III
— TypeGATE_III
The InitialCondition
described in [9], but with a hydrostatically balanced pressure profile.
ClimaAtmos.InitialConditions.ARM_SGP
— TypeARM_SGP
The InitialCondition
described in [10], but with a hydrostatically balanced pressure profile.
ClimaAtmos.InitialConditions.DYCOMS_RF01
— TypeDYCOMS_RF01
The InitialCondition
described in [11], but with a hydrostatically balanced pressure profile.
ClimaAtmos.InitialConditions.DYCOMS_RF02
— TypeDYCOMS_RF02
The InitialCondition
described in [12], but with a hydrostatically balanced pressure profile.
ClimaAtmos.InitialConditions.Rico
— TypeRico
The InitialCondition
described in [13], but with a hydrostatically balanced pressure profile.
ClimaAtmos.InitialConditions.TRMM_LBA
— TypeTRMM_LBA
The InitialCondition
described in [14], but with a hydrostatically balanced pressure profile.
ClimaAtmos.InitialConditions.LifeCycleTan2018
— TypeLifeCycleTan2018
The InitialCondition
described in [15], but with a hydrostatically balanced pressure profile.
ClimaAtmos.InitialConditions.Bomex
— TypeBomex
The InitialCondition
described in [16], but with a hydrostatically balanced pressure profile.
ClimaAtmos.InitialConditions.Soares
— TypeSoares
The InitialCondition
described in [17], but with a hydrostatically balanced pressure profile.
Jacobian
ClimaAtmos.Jacobian
— TypeJacobian(alg, Y, atmos)
Wrapper for a JacobianAlgorithm
and its cache, which it uses to update and invert the Jacobian.
ClimaAtmos.JacobianAlgorithm
— TypeJacobianAlgorithm
A description of how to compute the matrix $∂R/∂Y$, where $R(Y)$ denotes the residual of an implicit step with the state $Y$. Concrete implementations of this abstract type should define 3 methods:
jacobian_cache(alg::JacobianAlgorithm, Y, atmos)
update_jacobian!(alg::JacobianAlgorithm, cache, Y, p, dtγ, t)
invert_jacobian!(alg::JacobianAlgorithm, cache, ΔY, R)
See Implicit Solver for additional background information.
ClimaAtmos.ManualSparseJacobian
— TypeManualSparseJacobian(
topography_flag,
diffusion_flag,
sgs_advection_flag,
sgs_entr_detr_flag,
sgs_mass_flux_flag,
sgs_nh_pressure_flag,
approximate_solve_iters,
)
A JacobianAlgorithm
that approximates the Jacobian
using analytically derived tendency derivatives and inverts it using a specialized nested linear solver. Certain groups of derivatives can be toggled on or off by setting their DerivativeFlag
s to either UseDerivative
or IgnoreDerivative
.
Arguments
topography_flag::DerivativeFlag
: whether the derivative of vertical contravariant velocity with respect to horizontal covariant velocity should be computeddiffusion_flag::DerivativeFlag
: whether the derivatives of the grid-scale diffusion tendency should be computedsgs_advection_flag::DerivativeFlag
: whether the derivatives of the subgrid-scale advection tendency should be computedsgs_entr_detr_flag::DerivativeFlag
: whether the derivatives of the subgrid-scale entrainment and detrainment tendencies should be computedsgs_mass_flux_flag::DerivativeFlag
: whether the derivatives of the subgrid-scale mass flux tendency should be computedsgs_nh_pressure_flag::DerivativeFlag
: whether the derivatives of the subgrid-scale non-hydrostatic pressure drag tendency should be computedapproximate_solve_iters::Int
: number of iterations to take for the approximate linear solve required when thediffusion_flag
isUseDerivative
Helper
ClimaAtmos.InitialConditions.ColumnInterpolatableField
— TypeColumnInterpolatableField(::Fields.ColumnField)
A column field object that can be interpolated in the z-coordinate. For example:
cif = ColumnInterpolatableField(column_field)
z = 1.0
column_field_at_z = cif(z)