Source code for toughio.relative_permeability._linear

from ._base import BaseRelativePermeability

__all__ = [
    "Linear",
]


[docs] class Linear(BaseRelativePermeability): _id = 1 _name = "Linear" def __init__(self, slmin, sgmin, slmax, sgmax): """ Linear function. Parameters ---------- slmin : scalar Lower liquid saturation threshold (RP(1)). sgmin : scalar Lower gas saturation threshold (RP(2)). slmax : scalar Upper liquid saturation threshold (RP(3)). sgmax : scalar Upper gas saturation threshold (RP(4)). """ if slmin >= slmax: raise ValueError() if sgmin >= sgmax: raise ValueError() self.parameters = [slmin, sgmin, slmax, sgmax] def _eval(self, sl, *args): """Linear function.""" slmin, sgmin, slmax, sgmax = args kl = ( 1.0 if sl >= slmax else 0.0 if sl <= slmin else (sl - slmin) / (slmax - slmin) ) sg = 1.0 - sl kg = ( 1.0 if sg >= sgmax else 0.0 if sg <= sgmin else (sg - sgmin) / (sgmax - sgmin) ) return kl, kg @property def parameters(self): """Return model parameters.""" return [self._slmin, self._sgmin, self._slmax, self._sgmax] @parameters.setter def parameters(self, value): if len(value) != 4: raise ValueError() self._slmin = value[0] self._sgmin = value[1] self._slmax = value[2] self._sgmax = value[3]