Soil Water Parameterizations

Water functions

ClimateMachine.Land.SoilWaterParameterizations.impedance_factorFunction
impedance_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.

source
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.

source
ClimateMachine.Land.SoilWaterParameterizations.viscosity_factorFunction
viscosity_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.

source
viscosity_factor(
    vm::TemperatureDependentViscosity{FT},
    T::FT,
) where {FT}

Returns the viscosity factor when we choose a TemperatureDependentViscosity.

source
ClimateMachine.Land.SoilWaterParameterizations.moisture_factorFunction
moisture_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.

source
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.

source
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.

source
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.

source
ClimateMachine.Land.SoilWaterParameterizations.vanGenuchtenType
vanGenuchten{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

  • n

    Exponent 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).

  • m

    Exponent parameter - determined by n, used in hydraulic conductivity

source
ClimateMachine.Land.SoilWaterParameterizations.BrooksCoreyType
BrooksCorey{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.

  • m

    Exponent used in matric potential and hydraulic conductivity.

source
ClimateMachine.Land.SoilWaterParameterizations.HaverkampType
Haverkamp{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

  • k

    exponent in conductivity

  • A

    constant A (units of cm^k) using in conductivity. Our sim is in meters

  • n

    Exponent 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).

  • m

    Exponent parameter - determined by n, used in hydraulic conductivity

source
ClimateMachine.Land.SoilWaterParameterizations.effective_saturationFunction
effective_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.

source
ClimateMachine.Land.SoilWaterParameterizations.pressure_headFunction
pressure_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.

source
ClimateMachine.Land.SoilWaterParameterizations.matric_potentialFunction
matric_potential(
        model::vanGenuchten{FT},
        S_l::FT
) where {FT}

Wrapper function which computes the van Genuchten function for matric potential.

source
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).

source
matric_potential(
        model::BrooksCorey{FT},
        S_l::FT
) where {FT}

Compute the Brooks and Corey function for matric potential.

source
ClimateMachine.Land.SoilWaterParameterizations.inverse_matric_potentialFunction
inverse_matric_potential(
    model::vanGenuchten{FT},
    ψ::FT
) where {FT}

Compute the effective saturation given the matric potential, using the van Genuchten formulation.

source
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.

source
inverse_matric_potential(
    model::BrooksCorey{FT}
    ψ::FT
) where {FT}

Compute the effective saturation given the matric potential using the Brooks and Corey formulation.

source