PlantHydraulics
Models and Parameters
ClimaLand.Canopy.PlantHydraulics.AbstractPlantHydraulicsModel
— TypeAbstractPlantHydraulicsModel{FT} <: AbstractCanopyComponent{FT}
An abstract type for plant hydraulics models.
ClimaLand.Canopy.PlantHydraulics.PlantHydraulicsModel
— TypePlantHydraulicsModel{FT, PS, T, AA} <: AbstractPlantHydraulicsModel{FT}
Defines, and constructs instances of, the PlantHydraulicsModel type, which is used for simulation flux of water to/from soil, along roots of different depths, along a stem, to a leaf, and ultimately being lost from the system by transpiration. Note that the canopy height is specified as part of the PlantHydraulicsModel and the biomass model, these must be consistent.
The model can be used in Canopy standalone mode by prescribing the soil matric potential at the root tips or flux in the roots. There is also the option (intendend only for debugging) to use a prescribed transpiration rate.
n_stem
: The number of stem compartments for the plant; can be zeron_leaf
: The number of leaf compartments for the plant; must be >=1compartment_midpoints
: The height of the center of each leaf compartment/stem compartment, in meterscompartment_surfaces
: The height of the compartments' top faces, in meters. The canopy height is the last element of the vector.compartment_labels
: The label (:stem or :leaf) of each compartmentparameters
: Parameters required by the Plant Hydraulics modeltranspiration
: The transpiration model, of typeAbstractTranspiration
ClimaLand.Canopy.PlantHydraulics.PlantHydraulicsParameters
— TypePlantHydraulicsParameters
A struct for holding parameters of the PlantHydraulics Model.
ν
: porosity (m3/m3)S_s
: storativity (m3/m3)conductivity_model
: Conductivity model and parametersretention_model
: Water retention model and parameters
Plant Hydraulics Parameterizations
ClimaLand.Canopy.PlantHydraulics.AbstractConductivityModel
— TypeAbstractConductivityModel{FT <: AbstractFloat}
An abstract type for the plant hydraulics conductivity model.
ClimaLand.Canopy.PlantHydraulics.Weibull
— TypeWeibull{FT} <: AbstractConductivityModel{FT}
A concrete type specifying that a Weibull conductivity model is to be used; the struct contains the require parameters for this model.
Fields
K_sat
: Maximum Water conductivity in the above-ground plant compartments (m/s) at saturationψ63
: The absolute water potential in xylem (or xylem water potential) at which ∼63% of maximum xylem conductance is lost (Liu, 2020).c
: Weibull parameter c, which controls shape the shape of the conductance curve (Sperry, 2016).
ClimaLand.Canopy.PlantHydraulics.AbstractRetentionModel
— TypeAbstractRetentionModel{FT <: AbstractFloat}
An abstract type for the plant retention curve model.
ClimaLand.Canopy.PlantHydraulics.LinearRetentionCurve
— TypeLinearRetentionCurve{FT} <: AbstractRetentionModel{FT}
A concrete type specifying that a linear water retention model is to be used; the struct contains the require parameters for this model.
When ψ = 0, the effective saturation is one, so the intercept is not a free parameter, and only the slope must be specified.
Fields
a
: Bulk modulus of elasticity and slope of potential to volume curve. See also Corcuera, 2002, and Christoffersen, 2016.
ClimaLand.Canopy.PlantHydraulics.AbstractTranspiration
— TypeAbstractTranspiration{FT <: AbstractFloat}
An abstract type for types representing different models of transpiration (Prescribed or Diagnostic)
ClimaLand.Canopy.PlantHydraulics.DiagnosticTranspiration
— TypeDiagnosticTranspiration{FT} <: AbstractTranspiration{FT}
A concrete type used for dispatch in the case where transpiration is computed diagnostically, as a function of prognostic variables and parameters, and stored in p
during the update_aux!
step.
ClimaLand.Canopy.PlantHydraulics.PrescribedTranspiration
— TypePrescribedTranspiration{FT, F <: Function} <: AbstractTranspiration{FT}
A concrete type used for dispatch when computing the transpiration from the leaves, in the case where transpiration is prescribed.
Constructor Methods
ClimaLand.Canopy.PlantHydraulics.PlantHydraulicsModel
— MethodPlantHydraulicsModel{FT}(
domain,
toml_dict::CP.ParamDict;
n_stem::Int = 0,
n_leaf::Int = 1,
h_stem::FT = FT(0),
h_leaf::FT = FT(1),
ν::FT = FT(1.44e-4),
S_s::FT = FT(1e-2 * 0.0098), # m3/m3/MPa to m3/m3/m
conductivity_model = Weibull{FT}(
K_sat = FT(7e-8),
ψ63 = FT(-4 / 0.0098),
c = FT(4),
),
retention_model = LinearRetentionCurve{FT}(a = FT(0.2 * 0.0098)),
transpiration = PlantHydraulics.DiagnosticTranspiration{FT}(),
) where {FT <: AbstractFloat}
Creates a PlantHydraulicsModel on the provided domain, using paramters from toml_dict
.
The following default parameters are used:
- n_stem = 0 (unitless) - number of stem compartments
- n_leaf = 1 (unitless) - number of leaf compartments
- h_stem = 0 (m) - height of the stem compartment
- h_leaf = 1 (m) - height of the leaf compartment
- ν = 1.44e-4 (m3/m3) - porosity
- S_s = 1e-2 * 0.0098 (m⁻¹) - storativity
- K_sat = 7e-8 (m/s) - saturated hydraulic conductivity
- ψ63 = -4 / 0.0098 (MPa to m) - xylem percentage loss of conductivity curve parameters;
- c = 4 (unitless) - Weibull parameter;
- a = 0.2 * 0.0098 (m) - bulk modulus of elasticity;
Citation: Holtzman, N., Wang, Y., Wood, J. D., Frankenberg, C., & Konings, A. G. (2023). Constraining plant hydraulics with microwave radiometry in a land surface model: Impacts of temporal resolution. Water Resources Research, 59, e2023WR035481. https://doi.org/10.1029/2023WR035481
Plant Hydraulics Diagnostic Variables
ClimaLand.Canopy.PlantHydraulics.water_flux
— Functionwater_flux(
z1,
z2,
ψ1,
ψ2,
K1,
K2,
) where {FT}
Computes the water flux given the absolute potential ψ (pressure/(ρg)) and the conductivity K (m/s) at the center of the two layers with midpoints z1 and z2.
We currently assuming a harmonic mean for effective conducticity between the two layers (see CLM Technical Documentation).
To account for different path lengths in the two compartments Δz1 and Δz2, we would require the following conductance k (1/s) k_eff = K1/Δz1*K2/Δz2/(K1/Δz1+K2/Δz2) and a water flux of F = -k_eff * (ψ1 +z1 - ψ2 - z2) (m/s).
This currently assumes the path lengths are equal.
ClimaLand.Canopy.PlantHydraulics.effective_saturation
— Functioneffective_saturation(
ν::FT,
ϑ_l::FT) where {FT}
Computes the effective saturation given the augmented liquid fraction.
ClimaLand.Canopy.PlantHydraulics.augmented_liquid_fraction
— Functionaugmented_liquid_fraction(
ν::FT,
S_l::FT) where {FT}
Computes the augmented liquid fraction from porosity and effective saturation.
Augmented liquid fraction allows for oversaturation: an expansion of the volume of space available for storage in a plant compartment.
ClimaLand.Canopy.PlantHydraulics.water_retention_curve
— Functionwater_retention_curve(
S_l::FT,
b::FT,
ν::FT,
S_s::FT) where {FT}
Returns the potential ψ given the effective saturation S at a point, according to a linear model for the retention curve with parameters specified by retention_params
.
ClimaLand.Canopy.PlantHydraulics.inverse_water_retention_curve
— Functioninverse_water_retention_curve(
ψ::FT,
b::FT,
ν::FT,
S_s::FT) where {FT}
Returns the effective saturation given the potential at a point, according to the linear retention curve model.
ClimaLand.Canopy.PlantHydraulics.root_water_flux_per_ground_area!
— FunctionPlantHydraulics.root_water_flux_per_ground_area!(
fa::ClimaCore.Fields.Field,
s::PrognosticGroundConditions,
model::Canopy.PlantHydraulics.PlantHydraulicsModel,
canopy,
Y::ClimaCore.Fields.FieldVector,
p::NamedTuple,
t,
)
An extension of the PlantHydraulics.root_water_flux_per_ground_area!
function, which returns the net flux of water between the roots and the soil, per unit ground area, when both soil and plant hydraulics are modeled prognostically. This is for use in an LSM.
It is computed by summing the flux of water per ground area between roots and soil at each soil layer.
root_water_flux_per_ground_area!(
fa::ClimaCore.Fields.Field,
ground::PrescribedGroundConditions,
model::PlantHydraulicsModel{FT},
canopy,
Y::ClimaCore.Fields.FieldVector,
p::NamedTuple,
t,
) where {FT}
A method which computes the water flux between the soil and the stem, via the roots, and multiplied by the RAI, in the case of a model running without a prognostic soil model:
Flux = -Keff x [(ψstem - ψsoil)/(zstem - zsoil) + 1], where Keff = Ksoil Kstem /(Kstem + Ksoil)
Note that in PrescribedSoil
mode, we compute the flux using Ksoil = Kplant(ψsoil) and Kstem = Kplant(ψstem). In PrognosticSoil
mode, we compute the flux using Ksoil = Ksoil(ψsoil) and Kstem = Kplant(ψstem). The latter is a better model, but our PrescribedSoil
struct does not store Ksoil, only θsoil. θsoil is converted to ψsoil using the retention curve supplied by hydrology_cm.
The returned flux is per unit ground area. This assumes that the stem compartment is the first element of Y.canopy.hydraulics.ϑ_l
.
ClimaLand.Canopy.PlantHydraulics.hydraulic_conductivity
— Functionhydraulic_conductivity(conductivity_params::Weibull{FT}, ψ::FT) where {FT}
Computes the hydraulic conductivity at a point, using the Weibull formulation, given the potential ψ.