Soil Water Parameterizations
Water functions
ClimateMachine.Land.SoilWaterParameterizations.AbstractImpedanceFactor — TypeAbstractImpedanceFactor{FT <: AbstractFloat}ClimateMachine.Land.SoilWaterParameterizations.NoImpedance — TypeNoImpedance{FT} <: AbstractImpedanceFactor{FT}A model to indicate to dependence on ice for the hydraulic conductivity.
ClimateMachine.Land.SoilWaterParameterizations.IceImpedance — TypeIceImpedance{FT} <: AbstractImpedanceFactor{FT}The necessary parameters for the empirical impedance factor due to ice.
Fields
ΩEmpirical coefficient from Hansson 2014.
ClimateMachine.Land.SoilWaterParameterizations.impedance_factor — Functionimpedance_factor(
imp::NoImpedance{FT},
f_i::FT,
) where {FT}Returns the impedance factor when no effect due to ice is desired. Returns 1.
The other arguments are included to unify the function call.
impedance_factor(
imp::IceImpedance{FT},
f_i::FT,
) where {FT}Returns the impedance factor when an effect due to the fraction of ice is desired.
ClimateMachine.Land.SoilWaterParameterizations.AbstractViscosityFactor — TypeAbstractViscosityFactor{FT <: AbstractFloat}ClimateMachine.Land.SoilWaterParameterizations.ConstantViscosity — TypeConstantViscosity{FT} <: AbstractViscosityFactor{FT}A model to indicate a constant viscosity - independent of temperature - factor in hydraulic conductivity.
ClimateMachine.Land.SoilWaterParameterizations.TemperatureDependentViscosity — TypeTemperatureDependentViscosity{FT} <: AbstractViscosityFactor{FT}The necessary parameters for the temperature dependent portion of hydraulic conductivity.
Fields
γEmpirical coefficient
T_refReference temperature
ClimateMachine.Land.SoilWaterParameterizations.viscosity_factor — Functionviscosity_factor(
vm::ConstantViscosity{FT},
T::FT,
) where {FT}Returns the viscosity factor when we choose no temperature dependence, i.e. a constant viscosity. Returns 1.
T is included as an argument to unify the function call.
viscosity_factor(
vm::TemperatureDependentViscosity{FT},
T::FT,
) where {FT}Returns the viscosity factor when we choose a TemperatureDependentViscosity.
ClimateMachine.Land.SoilWaterParameterizations.AbstractMoistureFactor — TypeAbstractMoistureFactor{FT <:AbstractFloat}ClimateMachine.Land.SoilWaterParameterizations.MoistureDependent — TypeMoistureDependent{FT} <: AbstractMoistureFactor{FT} endMoisture dependent moisture factor.
ClimateMachine.Land.SoilWaterParameterizations.MoistureIndependent — TypeMoistureIndependent{FT} <: AbstractMoistureFactor{FT} endMoisture independent moisture factor.
ClimateMachine.Land.SoilWaterParameterizations.moisture_factor — Functionmoisture_factor(
mm::MoistureDependent,
hm::vanGenuchten{FT},
S_l::FT,
) where {FT}Returns the moisture factor of the hydraulic conductivy assuming a MoistureDependent and van Genuchten hydraulic model.
This is intended to be used with an instance of vanGenuchten that has float parameters.
moisture_factor(
mm::MoistureDependent,
hm::BrooksCorey{FT},
S_l::FT,
) where {FT}Returns the moisture factor of the hydraulic conductivy assuming a MoistureDependent and Brooks/Corey hydraulic model.
This is intended to be used with an instance of BrooksCorey that has float parameters.
moisture_factor(
mm::MoistureDependent,
hm::Haverkamp{FT},
S_l::FT,
) where {FT}Returns the moisture factor of the hydraulic conductivy assuming a MoistureDependent and Haverkamp hydraulic model.
This is intended to be used with an instance of Haverkamp that has float parameters.
moisture_factor(mm::MoistureIndependent,
hm::AbstractHydraulicsModel{FT},
S_l::FT,
) where {FT}Returns the moisture factor in hydraulic conductivity when a MoistureIndependent model is chosen. Returns 1.
Note that the hydraulics model and S_l are not used, but are included as arguments to unify the function call.
ClimateMachine.Land.SoilWaterParameterizations.AbstractHydraulicsModel — TypeAbstractsHydraulicsModel{FT <: AbstractFloat}Hydraulics model is used in the moisture factor in hydraulic conductivity and in the matric potential. The single hydraulics model choice sets both of these.
ClimateMachine.Land.SoilWaterParameterizations.vanGenuchten — TypevanGenuchten{FT} <: AbstractHydraulicsModel{FT}The necessary parameters for the van Genuchten hydraulic model; defaults are for Yolo light clay.
The user can supply either floats or functions of aux (aux.x, aux.y, aux.z), which return a scalar float. Internally, the parameters will be converted to type FT and the functions altered to return type FT, so the parameters must be abstract floats or functions that return abstract floats.
Fields
nExponent parameter - used in matric potential
αused in matric potential. The inverse of this carries units in the expression for matric potential (specify in inverse meters).
mExponent parameter - determined by n, used in hydraulic conductivity
ClimateMachine.Land.SoilWaterParameterizations.BrooksCorey — TypeBrooksCorey{FT,T1,T2} <: AbstractHydraulicsModel{FT}The necessary parameters for the Brooks and Corey hydraulic model.
Defaults are chosen to somewhat mirror the Havercamp/vG Yolo light clay hydraulic conductivity/matric potential. The user can supply either floats or functions of aux (aux.x, aux.y, aux.z), which return a scalar float. Internally, the parameters will be converted to type FT and the functions altered to return type FT, so the parameters must be abstract floats or functions that return abstract floats.
Fields
ψbψ_b - used in matric potential. Units of meters.
mExponent used in matric potential and hydraulic conductivity.
ClimateMachine.Land.SoilWaterParameterizations.Haverkamp — TypeHaverkamp{FT,T1,T2,T3,T4,T5} <: AbstractHydraulicsModel{FT}The necessary parameters for the Haverkamp hydraulic model for Yolo light clay.
Note that this only is used in creating a hydraulic conductivity function, and another formulation for matric potential must be used. The user can supply either floats or functions of aux (aux.x, aux.y, aux.z), which return a scalar float. Internally, the parameters will be converted to type FT and the functions altered to return type FT, so the parameters must be abstract floats or functions that return abstract floats.
Fields
kexponent in conductivity
Aconstant A (units of cm^k) using in conductivity. Our sim is in meters
nExponent parameter - using in matric potential
αused in matric potential. The inverse of this carries units in the expression for matric potential (specify in inverse meters).
mExponent parameter - determined by n, used in hydraulic conductivity
ClimateMachine.Land.SoilWaterParameterizations.hydraulic_conductivity — Functionhydraulic_conductivity(
Ksat::FT,
impedance::FT,
viscosity::FT,
moisture::FT,
) where {FT}Returns the hydraulic conductivity.
ClimateMachine.Land.SoilWaterParameterizations.effective_saturation — Functioneffective_saturation(
porosity::FT,
ϑ_l::FT,
θ_r::FT,
) where {FT}Compute the effective saturation of soil.
ϑ_l is defined to be larger than θ_r. If ϑ_l-θ_r is negative, hydraulic functions that take it as an argument will return imaginary numbers, resulting in domain errors. Exit in this case with an error.
ClimateMachine.Land.SoilWaterParameterizations.pressure_head — Functionpressure_head(
model::AbstractHydraulicsModel{FT},
ν::FT,
S_s::FT,
θ_r::FT,
ϑ_l::FT,
θ_i::FT,
) where {FT,PS}Determine the pressure head in both saturated and unsaturated soil.
If ice is present, it reduces the volume available for liquid water. The augmented liquid fraction changes behavior depending on if this volume is full of liquid water vs not. Therefore, the region of saturated vs unsaturated soil depends on porosity - θ_i, not just on porosity. If the liquid water is unsaturated, the usual matric potential expression is treated as unaffected by the presence of ice.
ClimateMachine.Land.SoilWaterParameterizations.hydraulic_head — Functionhydraulic_head(z,ψ)Return the hydraulic head.
The hydraulic head is defined as the sum of vertical height z and pressure head ψ; meters.
ClimateMachine.Land.SoilWaterParameterizations.matric_potential — Functionmatric_potential(
model::vanGenuchten{FT},
S_l::FT
) where {FT}Wrapper function which computes the van Genuchten function for matric potential.
matric_potential(
model::Haverkamp{FT},
S_l::FT
) where {FT}Compute the van Genuchten function as a proxy for the Haverkamp model matric potential (for testing purposes).
matric_potential(
model::BrooksCorey{FT},
S_l::FT
) where {FT}Compute the Brooks and Corey function for matric potential.
ClimateMachine.Land.SoilWaterParameterizations.volumetric_liquid_fraction — Functionvolumetric_liquid_fraction(
ϑ_l::FT,
eff_porosity::FT,
) where {FT}Compute the volumetric liquid fraction from the effective porosity and the augmented liquid fraction.
ClimateMachine.Land.SoilWaterParameterizations.inverse_matric_potential — Functioninverse_matric_potential(
model::vanGenuchten{FT},
ψ::FT
) where {FT}Compute the effective saturation given the matric potential, using the van Genuchten formulation.
inverse_matric_potential(
model::Haverkamp{FT}
ψ::FT
) where {FT}Compute the effective saturation given the matric potential using the Haverkamp hydraulics model. This model uses the van Genuchten formulation for matric potential.
inverse_matric_potential(
model::BrooksCorey{FT}
ψ::FT
) where {FT}Compute the effective saturation given the matric potential using the Brooks and Corey formulation.