Source code for toughio.relative_permeability._grant
from ._base import BaseRelativePermeability
__all__ = [
"Grant",
]
[docs]class Grant(BaseRelativePermeability):
_id = 4
_name = "Grant"
def __init__(self, slr, sgr):
"""
Grant's curve.
After Grant (1977).
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):
"""Grant'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 - kl
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]