PlantHydraulics
Models and Parameters
ClimaLand.Canopy.AbstractPlantHydraulicsModel — Type
AbstractPlantHydraulicsModel{FT} <: AbstractCanopyComponent{FT}An abstract type for plant hydraulics models.
ClimaLand.Canopy.PlantHydraulicsModel — Type
PlantHydraulicsModel{FT, PS} <: AbstractPlantHydraulicsModel{FT}Defines, and constructs instances of, the PlantHydraulicsModel type, which is used for simulation flux of water to/from soil and ultimately being lost from the system by transpiration. Note that the canopy height is part of the biomass model.
The model can be used in Canopy standalone mode by prescribing the soil matric potential at the root tips or flux in the roots.
parameters: Parameters required by the Plant Hydraulics model
ClimaLand.Canopy.PlantHydraulicsParameters — Type
PlantHydraulicsParametersA 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.AbstractConductivityModel — Type
AbstractConductivityModel{FT <: AbstractFloat}An abstract type for the plant hydraulics conductivity model.
ClimaLand.Canopy.Weibull — Type
Weibull{FT} <: AbstractConductivityModel{FT}A concrete type specifying that a Weibull conductivity model is to be used; the struct contains the required parameters for this model.
Fields
K_sat: Maximum Water conductivity in the above-ground plant (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 the shape of the conductance curve (Sperry, 2016).
ClimaLand.Canopy.AbstractRetentionModel — Type
AbstractRetentionModel{FT <: AbstractFloat}An abstract type for the plant retention curve model.
ClimaLand.Canopy.LinearRetentionCurve — Type
LinearRetentionCurve{FT} <: AbstractRetentionModel{FT}A concrete type specifying that a linear water retention model is to be used; the struct contains the required 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.
Constructor Methods
ClimaLand.Canopy.PlantHydraulicsModel — Method
PlantHydraulicsModel{FT}(
domain,
toml_dict::CP.ParamDict;
ν::FT = toml_dict["plant_nu"],
S_s::FT = toml_dict["plant_S_s"], # m3/m3/MPa to m3/m3/m
conductivity_model = PlantHydraulics.Weibull(toml_dict),
retention_model = PlantHydraulics.LinearRetentionCurve(toml_dict),
) where {FT <: AbstractFloat}Creates a PlantHydraulicsModel on the provided domain, using paramters from toml_dict.
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.water_flux — Function
water_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 assume a harmonic mean for effective conductivity between the two layers.
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.effective_saturation — Function
effective_saturation(
ν::FT,
ϑ_l::FT) where {FT}Computes the effective saturation given the augmented liquid fraction.
ClimaLand.Canopy.augmented_liquid_fraction — Function
augmented_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.water_retention_curve — Function
water_retention_curve(
retention_params::LinearRetentionCurve{FT},
S_l::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.inverse_water_retention_curve — Function
inverse_water_retention_curve(
retention_params::LinearRetentionCurve{FT},
ψ::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.root_water_flux_per_ground_area! — Function
root_water_flux_per_ground_area!(
fa::ClimaCore.Fields.Field,
s::PrognosticGroundConditions,
model::Canopy.PlantHydraulicsModel,
canopy,
Y::ClimaCore.Fields.FieldVector,
p::NamedTuple,
t,
)An extension of the 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 above ground leaves, via the roots, and multiplied by harmonic_mean(LAI, RAI), in the case of a model running without a prognostic soil model:
Flux = -Keff x [(ψleaf - ψsoil)/(zleaf - zsoil) + 1], where Keff = Ksoil Kleaf / (Kleaf + Ksoil).
Note that in PrescribedSoil mode, we compute the flux using Ksoil = Kplant(ψsoil) and Kleaf = Kplant(ψleaf). In PrognosticSoil mode, we compute the flux using Ksoil = Ksoil(ψsoil) and Kleaf = Kplant(ψleaf). 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.
ClimaLand.Canopy.hydraulic_conductivity — Function
hydraulic_conductivity(conductivity_params::Weibull{FT}, ψ::FT) where {FT}Computes the hydraulic conductivity at a point, using the Weibull formulation, given the potential ψ.