Source code for toughio.relative_permeability._verma
from ._base import BaseRelativePermeability
__all__ = [
"Verma",
]
[docs]class Verma(BaseRelativePermeability):
_id = 8
_name = "Verma"
def __init__(self, slr=0.2, sls=0.895, a=1.259, b=-1.7615, c=0.5089):
"""
Verma's function.
After Verma et al. (1985).
Parameters
----------
slr : scalar
Irreducible liquid saturation (RP(1)).
sls : scalar
Maximum liquid saturation (RP(2)).
a : scalar
A (RP(3)).
b : scalar
B (RP(4)).
c : scalar
C (RP(5)).
"""
self.parameters = [slr, sls, a, b, c]
def _eval(self, sl, *args):
"""Verma's function."""
slr, sls, a, b, c = args
Shat = (sl - slr) / (sls - slr)
Shat = max(Shat, 0.0)
Shat = min(Shat, 1.0)
kl = Shat**3
kg = a + b * Shat + c * Shat**2
kg = max(kg, 0.0)
kg = min(kg, 1.0)
return kl, kg
@property
def parameters(self):
"""Return model parameters."""
return [self._slr, self._sls, self._a, self._b, self._c]
@parameters.setter
def parameters(self, value):
if len(value) != 5:
raise ValueError()
self._slr = value[0]
self._sls = value[1]
self._a = value[2]
self._b = value[3]
self._c = value[4]