ClimaLSM
LSM Model Types and methods
ClimaLSM.SoilPlantHydrologyModel
— Typestruct SoilPlantHydrologyModel{
FT,
SM <: Soil.AbstractSoilModel{FT},
VM <: Canopy.CanopyModel{FT},
} <: AbstractLandModel{FT}
soil::SM
canopy::VM
end
A concrete type of land model used for simulating systems with a canopy and a soil hydrology component.
This is primarily for testing purposes.
soil
: The soil model to be usedcanopy
: The canopy model to be used
ClimaLSM.LandSoilBiogeochemistry
— Typestruct LandSoilBiogeochemistry{
FT,
SEH <: Soil.EnergyHydrology{FT},
SB <: Soil.Biogeochemistry.SoilCO2Model{FT},
} <: AbstractLandModel{FT}
A concrete type of land model used for simulating systems with a soil energy, hydrology, and biogeochemistry component.
soil
: The soil modelsoilco2
: The biochemistry model
ClimaLSM.LandHydrology
— Typestruct LandHydrology{
FT,
SM <: Soil.AbstractSoilModel{FT},
SW <: Pond.AbstractSurfaceWaterModel{FT},
} <: AbstractLandModel{FT}
A concrete type of land model used for simulating systems with a soil and surface water component.
soil
: The soil modelsurface_water
: The surface water model
ClimaLSM.make_interactions_update_aux
— Functionmake_interactions_update_aux(land::AbstractLandModel) end
Makes and returns a function which updates the interaction variables, which are a type of auxiliary variable.
The update_aux!
function returned is evaluted during the right hand side evaluation.
This is a stub which concrete types of LSMs extend.
make_interactions_update_aux(
land::SoilPlantHydrologyModel{FT, SM, RM},
) where {FT, SM <: Soil.RichardsModel{FT}, RM <: Canopy.CanopyModel{FT}}
A method which makes a function; the returned function updates the auxiliary variable p.root_extraction
, which is needed for the soil model and for the canopy model.
This function is called each ode function evaluation.
Root extraction is in units of 1/s and is equivalent to: RAI * flux per cross section of roots * root distribution (z).
function make_interactions_update_aux(
land::LandHydrology{FT, SM, SW},
) where {FT, SM <: Soil.RichardsModel{FT}, SW <: Pond.PondModel{FT}}
A method which makes a function; the returned function updates the auxiliary variable p.soil_infiltration
, which is needed for both the boundary condition for the soil model and the source term (runoff) for the surface water model.
This function is called each ode function evaluation.
make_interactions_update_aux(
land::SoilCanopyModel{FT, SM, RM},
) where {FT, SM <: Soil.RichardsModel{FT}, RM <: Canopy.CanopyModel{FT}}
A method which makes a function; the returned function updates the auxiliary variable p.root_extraction
, which is needed for a sink term for the soil model and to create the lower water boundary condition for the canopy model. It also updates the soil surface fluxes, which are affected by the presence of a canopy.
This function is called each ode function evaluation.
ClimaLSM.initialize_interactions
— Functioninitialize_interactions(land::AbstractLandModel) end
Initializes interaction variables, which are a type of auxiliary variable, to empty objects of the correct type for the model.
Interaction variables are specified by interaction_vars
, their types by interaction_types
, and their spaces by interaction_spaces
. This function should be called during initialize_auxiliary
step.
ClimaLSM.land_components
— Functionland_components(land::AbstractLandModel)
Returns the component names of the land
model, by calling propertynames(land)
.
ClimaLSM.interaction_vars
— Functioninteraction_vars(m::AbstractLandModel)
Returns the interaction variable symbols for the model in the form of a tuple.
interaction_vars(m::SoilCanopyModel)
The names of the additional auxiliary variables that are included in the integrated Soil-Canopy model.
ClimaLSM.interaction_types
— Functioninteraction_types(m::AbstractLandModel)
Returns the shared interaction variable types for the model in the form of a tuple.
interaction_types(m::SoilCanopyModel)
The types of the additional auxiliary variables that are included in the integrated Soil-Canopy model.
ClimaLSM.interaction_domain_names
— Functioninteractiondomainnames(m::AbstractLandModel)
Returns the interaction domain symbols in the form of a tuple e.g. :surface or :subsurface.
This is only required for variables shared between land submodels, and only needed for multi-component models, not standalone components. Component-specific variables should be listed as prognostic or auxiliary variables which do not require this to initialize.
interaction_domain_names(m::SoilCanopyModel)
The domain names of the additional auxiliary variables that are included in the integrated Soil-Canopy model.
ClimaLSM.domain_name
— Functiondomain_name(model::AbstractModel)
Returns a symbol indicating the model's domain name, e.g. :surface or :subsurface. Only required for models that will be used as part of an LSM.
Land Hydrology
ClimaLSM.infiltration_capacity
— Functionfunction infiltration_capacity(
Y::ClimaCore.Fields.FieldVector,
p::NamedTuple,
)
Function which computes the infiltration capacity of the soil based on soil characteristics, moisture levels, and pond height.
Defined such that positive means into soil.
ClimaLSM.infiltration_at_point
— Functioninfiltration_at_point(η::FT, i_c::FT, P::FT)
Returns the infiltration given pond height η, infiltration capacity, and precipitation.
This is defined such that positive means into soil.
ClimaLSM.PrognosticRunoff
— TypePrognosticRunoff{FT} <: Pond.AbstractSurfaceRunoff{FT}
Concrete type of Pond.AbstractSurfaceRunoff
for use in LSM models, where precipitation is passed in, but infiltration is computed prognostically.
This is paired with Soil.RunoffBC
: both are used at the same time, ensuring the infiltration used for the boundary condition of soil is also used to compute the runoff for the surface water.
ClimaLSM.RunoffBC
— TypeRunoffBC <: Soil.AbstractSoilBC
Concrete type of Soil.AbstractSoilBC
for use in LSM models, where precipitation is passed in, but infiltration is computed prognostically. This infiltration is then used to set an upper boundary condition for the soil.
This is paired with Pond.PrognosticRunoff
: both are used at the same time, ensuring that the infiltration used for the boundary condition of soil is also used to compute the runoff for the surface water.
SoilPlantHydrologyModel
Missing docstring for ClimaLSM.PrognosticSoilPressure
. Check Documenter's build log for details.
ClimaLSM.RootExtraction
— TypeRootExtraction{FT} <: Soil.AbstractSoilSource{FT}
Concrete type of Soil.AbstractSoilSource, used for dispatch in an LSM with both soil and plant hydraulic components.
This is paired with the source term Canopy.PlantHydraulics.PrognosticSoilPressure
:both are used at the same time, ensuring that the water flux into the roots is extracted correctly from the soil.
LandSoilBiogeochemistry
Missing docstring for ClimaLSM.PrognosticMet
. Check Documenter's build log for details.