Land Model
Land Model
ClimateMachine.Land.LandModel — TypeLandModel{PS, S, SRC, IS} <: BalanceLawA BalanceLaw for land modeling. Users may over-ride prescribed default values for each field.
Usage
LandModel(
param_set,
soil,
source
init_state_prognostic
)Fields
param_setParameter set
soilSoil model
sourceSource Terms (Problem specific source terms)
init_state_prognosticInitial Condition (Function to assign initial values of state variables)
Soil
ClimateMachine.Land.SoilModel — TypeSoilModel{PF, W, H} <: BalanceLawA BalanceLaw for soil modeling. Users may over-ride prescribed default values for each field.
Usage
SoilModel(
param_functions,
water,
heat,
)Fields
param_functionsSoil Parameter Functions
waterWater model
heatHeat model
ClimateMachine.Land.SoilWaterModel — TypeSoilWaterModel{FT, IF, VF, MF, HM, Fiϑl, Fiθi, BCD, BCN} <: AbstractWaterModelThe necessary components for solving the equations for water (liquid or ice) in soil.
Without freeze/thaw source terms added (separately), this model reduces to Richard's equation for liquid water. Note that the default for θ_i is zero. Without freeze/thaw source terms added to both the liquid and ice equations, the default should never be changed, because we do not enforce that the total volumetric water fraction is less than or equal to porosity otherwise.
When freeze/thaw source terms are included, this model encompasses water in both liquid and ice form, and water content is conserved upon phase change.
Fields
impedance_factorImpedance Factor - will be 1 or ice dependent
viscosity_factorViscosity Factor - will be 1 or temperature dependent
moisture_factorMoisture Factor - will be 1 or moisture dependent
hydraulicsHydraulics Model - used in matric potential and moisture factor of hydraulic conductivity
initialϑ_lInitial condition: augmented liquid fraction
initialθ_iInitial condition: volumetric ice fraction
dirichlet_bcDirichlet boundary condition structure
neumann_bcNeumann boundary condition structure
ClimateMachine.Land.PrescribedWaterModel — TypePrescribedWaterModel{F1, F2} <: AbstractWaterModelModel structure for a prescribed water content model.
The user supplies functions of space and time for both ϑ_l and θ_i. No auxiliary or state variables are added, no PDE is solved. The defaults are no moisture anywhere, for all time.
Fields
ϑ_lAugmented liquid fraction
θ_iVolumetric fraction of ice
ClimateMachine.Land.SoilHeatModel — TypeSoilHeatModel{FT, FiT, BCD, BCN} <: AbstractHeatModelThe necessary components for the Heat Equation in a soil water matrix.
Fields
initialTInitial conditions for temperature
dirichlet_bcDirichlet BC structure
neumann_bcNeumann BC structure
ClimateMachine.Land.PrescribedTemperatureModel — TypePrescribedTemperatureModel{F1} <: AbstractHeatModelModel structure for a prescribed temperature model.
ClimateMachine.Land.SoilWaterParameterizations — ModuleSoilWaterParameterizationsvan Genuchten, Brooks and Corey, and Haverkamp parameters for and formulation of
- hydraulic conductivity
- matric potential
Hydraulic conductivity can be chosen to be dependent or independent of impedance, viscosity and moisture.
Functions for hydraulic head, effective saturation, pressure head, matric potential, and the relationship between augmented liquid fraction and liquid fraction are also included.
ClimateMachine.Land.SoilHeatParameterizations — ModuleSoilHeatParameterizationsFunctions for volumetric heat capacity, temperature as a function of volumetric internal energy, saturated thermal conductivity, thermal conductivity, relative saturation and the Kersten number are included. Heat capacities denoted by ρc_ are volumetric, while cp_ denotes an isobaric specific heat capacity.
ClimateMachine.Land.SoilParamFunctions — TypeSoilParamFunctions{FT} <: AbstractSoilParameterFunctions{FT}Necessary parameters for the soil model. These will eventually be prescribed functions of space (and time).
Fields
porosityAggregate porosity of the soil
KsatHydraulic conductivity at saturation. Units of m s-1.
S_sSpecific storage of the soil. Units of m s-1.
ν_ss_gravelVolume fraction of gravels, relative to soil solids only. Units of m-3 m-3.
ν_ss_omVolume fraction of SOM, relative to soil solids only. Units of m-3 m-3.
ν_ss_quartzVolume fraction of quartz, relative to soil solids only. Units of m-3 m-3.
ρc_dsBulk volumetric heat capacity of dry soil. Units of J m-3 K-1.
ρpParticle density for soil solids. Units of kg/m^3
κ_solidThermal conductivity of the soil solids. Units of W m-1 K-1.
κ_sat_unfrozenSaturated thermal conductivity for unfrozen soil. Units of W m-1 K-1.
κ_sat_frozenSaturated thermal conductivity for frozen soil. Units of W m-1 K-1.
aAdjustable scale parameter for determining Kersten number in the Balland and Arp formulation; unitless.
bAdjustable scale parameter for determining Kersten number in the Balland and Arp formulation; unitless.
κ_dry_parameterParameter used in the Balland and Arp formulation for κ_dry; unitless
ClimateMachine.Land.get_water_content — Functionget_water_content(
water::SoilWaterModel,
aux::Vars,
state::Vars,
t::Real
)Return the moisture variables for the balance law soil water model.
get_water_content(
water::PrescribedWaterModel,
aux::Vars,
state::Vars,
t::Real
)Return the moisture variables for the prescribed soil water model.
Boundary Conditions
ClimateMachine.Land.Dirichlet — Typestruct Dirichlet{Fs, Fb} <: AbstractBoundaryFunctionsA concrete type to hold the surface state and bottom state variable values/functions, if Dirichlet boundary conditions are desired.
Fields
surface_stateSurface state boundary condition
bottom_stateBottom state boundary condition
ClimateMachine.Land.Neumann — Typestruct Neumann{Fs, Fb} <: AbstractBoundaryFunctionsA concrete type to hold the surface and/or bottom diffusive flux values/functions, if Neumann boundary conditions are desired.
Note that these are intended to be scalar values. In the boundary_state! functions, they are multiplied by the ẑ vector (i.e. the normal vector n̂ to the domain at the upper boundary, and -n̂ at the lower boundary. These normal vectors point out of the domain.)
Fields
surface_fluxSurface flux boundary condition
bottom_fluxBottom flux boundary condition