Source code for toughio.relative_permeability._corey

from ._base import BaseRelativePermeability

__all__ = [
    "Corey",
]


[docs] class Corey(BaseRelativePermeability): _id = 3 _name = "Corey" def __init__(self, slr, sgr): """ Corey's curve. After Corey (1954). Parameters ---------- slr : scalar Irreducible liquid saturation (RP(1)). sgr : scalar Irreducible gas saturation (RP(2)). """ if slr + sgr >= 1.0: raise ValueError() self.parameters = [slr, sgr] def _eval(self, sl, *args): """Corey's curve.""" slr, sgr = args sg = 1.0 - sl if sg < sgr: kl = 1.0 kg = 0.0 elif sg >= 1.0 - slr: kl = 0.0 kg = 1.0 else: Shat = (sl - slr) / (1.0 - slr - sgr) kl = Shat**4 kg = (1.0 - Shat**2) * (1.0 - Shat) ** 2 return kl, kg @property def parameters(self): """Return model parameters.""" return [self._slr, self._sgr] @parameters.setter def parameters(self, value): if len(value) != 2: raise ValueError() self._slr = value[0] self._sgr = value[1]