Source code for imod.flow.conductivity

from imod.flow.pkgbase import Package


[docs] class HorizontalHydraulicConductivity(Package): """ Horizontal hydraulic conductivity [L/T] of the aquifers, between TOP and BOT. This variable behaves somewhat similar to the horizontal hydraulic conductivity in MODFLOW 2005's "Layer Property Flow" schematization. Note however that this does not hold for the vertical hydraulic conductivity: iMODFLOW uses the vertical hydraulic conductivity to specify the hydraulic conductivity of aquitards (between BOT and TOP) Parameters ---------- k_horizontal : xr.DataArray Horizontal hydraulic conductivity, dims ``("layer", "y", "x")``. """ _pkg_id = "khv" _variable_order = ["k_horizontal"]
[docs] def __init__(self, k_horizontal=None): super().__init__() self.dataset["k_horizontal"] = k_horizontal
def _pkgcheck(self, active_cells=None): vars_to_check = ["k_horizontal"] self._check_if_nan_in_active_cells( active_cells=active_cells, vars_to_check=vars_to_check )
[docs] class VerticalHydraulicConductivity(Package): """ Vertical hydraulic conductivity [L/T] for aquitards (between BOT and TOP). Note that this is different from MODFLOW 2005's "Layer Property Flow" schematization. To specify the vertical hydraulic conductivity for aquifers, use VerticalAnisotropy in combination with HorizontalHydraulicConductivity. Parameters ---------- k_vertical : xr.DataArray Vertical hydraulic conductivity, dims ``("layer", "y", "x")``. """ _pkg_id = "kvv" _variable_order = ["k_vertical"]
[docs] def __init__(self, k_vertical=None): super().__init__() self.dataset["k_vertical"] = k_vertical
def _pkgcheck(self, active_cells=None): vars_to_check = ["k_vertical"] self._check_if_nan_in_active_cells( active_cells=active_cells, vars_to_check=vars_to_check )
[docs] class VerticalAnisotropy(Package): """ Vertical anisotropy for aquifers [-], defined as the horizontal hydraulic conductivity over the vertical hydraulic conductivity. Use this package in combination with HorizontalHydraulicConductivity to specify the vertical hydraulic conductivity. Parameters ---------- vertical_anisotropy : xr.DataArray Vertical anisotropy factor (Kv/Kh), dims ``("layer", "y", "x")``. """ _pkg_id = "kva" _variable_order = ["vertical_anisotropy"]
[docs] def __init__(self, vertical_anisotropy): super().__init__() self.dataset["vertical_anisotropy"] = vertical_anisotropy
def _pkgcheck(self, active_cells=None): vars_to_check = ["vertical_anisotropy"] self._check_if_nan_in_active_cells( active_cells=active_cells, vars_to_check=vars_to_check )
class Transmissivity(Package): """ Transmissivity [L2/T] of the aquifers, between TOP and BOT. This variable behaves similar to the transmissivity in MODFLOW 2005's "Block Centred Flow (BCF)" schematization. Note that values are trimmed internally to be minimal 0 m2/day by iMODFLOW. Parameters ---------- transmissivity : xr.DataArray Transmissivity, dims ``("layer", "y", "x")``. """ _pkg_id = "kdw" _variable_order = ["transmissivity"] def __init__(self, transmissivity=None): super().__init__() self.dataset["transmissivity"] = transmissivity def _pkgcheck(self, active_cells=None): vars_to_check = ["transmissivity"] self._check_if_nan_in_active_cells( active_cells=active_cells, vars_to_check=vars_to_check ) class VerticalResistance(Package): """ Vertical resistance [T] for aquitards (Between BOT and TOP). This variable is the inverse of the "VCONT" variable in MODFLOW 2005's "Block Centred Flow (BCF)" schematization. Note that values are trimmed internally for minimal 0.001 days by iMODFLOW. Also not that iMODFLOW's internal scaling cannot deal with value nonzero nodata values, therefore, for scaling, it is important to assign a 0 as the nodata value for VerticalResistance. Parameters ---------- Resistance : xr.DataArray Resistance, dims ``("layer", "y", "x")``. """ _pkg_id = "vcw" _variable_order = ["resistance"] def __init__(self, resistance=None): super().__init__() self.dataset["resistance"] = resistance