Relative permeability and capillarity models#

Relative permeability#

Linear#

class toughio.relative_permeability.Linear(slmin, sgmin, slmax, sgmax)[source]#

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)).

property id#

Return relative permeability model ID in TOUGH.

property name#

Return relative permeability model name.

property parameters#

Return model parameters.

plot(n=100, ax=None, figsize=(10, 8), plt_kws=None)#

Plot relative permeability curve.

Parameters:
  • n (int, optional, default 100) – Number of saturation points.

  • ax (matplotlib.pyplot.Axes or None, optional, default None) – Matplotlib axes. If None, a new figure and axe is created.

  • figsize (array_like or None, optional, default None) – New figure size if ax is None.

  • plt_kws (dict or None, optional, default None) – Additional keywords passed to matplotlib.pyplot.plot().

Pickens#

class toughio.relative_permeability.Pickens(x)[source]#

Gas perfect mobile function.

Parameters:

x (scalar) – RP(1).

property id#

Return relative permeability model ID in TOUGH.

property name#

Return relative permeability model name.

property parameters#

Return model parameters.

plot(n=100, ax=None, figsize=(10, 8), plt_kws=None)#

Plot relative permeability curve.

Parameters:
  • n (int, optional, default 100) – Number of saturation points.

  • ax (matplotlib.pyplot.Axes or None, optional, default None) – Matplotlib axes. If None, a new figure and axe is created.

  • figsize (array_like or None, optional, default None) – New figure size if ax is None.

  • plt_kws (dict or None, optional, default None) – Additional keywords passed to matplotlib.pyplot.plot().

Corey#

class toughio.relative_permeability.Corey(slr, sgr)[source]#

Corey’s curve.

After Corey (1954).

Parameters:
  • slr (scalar) – Irreducible liquid saturation (RP(1)).

  • sgr (scalar) – Irreducible gas saturation (RP(2)).

property id#

Return relative permeability model ID in TOUGH.

property name#

Return relative permeability model name.

property parameters#

Return model parameters.

plot(n=100, ax=None, figsize=(10, 8), plt_kws=None)#

Plot relative permeability curve.

Parameters:
  • n (int, optional, default 100) – Number of saturation points.

  • ax (matplotlib.pyplot.Axes or None, optional, default None) – Matplotlib axes. If None, a new figure and axe is created.

  • figsize (array_like or None, optional, default None) – New figure size if ax is None.

  • plt_kws (dict or None, optional, default None) – Additional keywords passed to matplotlib.pyplot.plot().

Grant#

class toughio.relative_permeability.Grant(slr, sgr)[source]#

Grant’s curve.

After Grant (1977).

Parameters:
  • slr (scalar) – Irreducible liquid saturation (RP(1)).

  • sgr (scalar) – Irreducible gas saturation (RP(2)).

property id#

Return relative permeability model ID in TOUGH.

property name#

Return relative permeability model name.

property parameters#

Return model parameters.

plot(n=100, ax=None, figsize=(10, 8), plt_kws=None)#

Plot relative permeability curve.

Parameters:
  • n (int, optional, default 100) – Number of saturation points.

  • ax (matplotlib.pyplot.Axes or None, optional, default None) – Matplotlib axes. If None, a new figure and axe is created.

  • figsize (array_like or None, optional, default None) – New figure size if ax is None.

  • plt_kws (dict or None, optional, default None) – Additional keywords passed to matplotlib.pyplot.plot().

Fatt-Klikoff#

class toughio.relative_permeability.FattKlikoff(slr)[source]#

Fatt and Klikoff’s function.

After Fatt and Klikoff (1959).

Parameters:

slr (scalar) – Irreducible liquid saturation (RP(1)).

property id#

Return relative permeability model ID in TOUGH.

property name#

Return relative permeability model name.

property parameters#

Return model parameters.

plot(n=100, ax=None, figsize=(10, 8), plt_kws=None)#

Plot relative permeability curve.

Parameters:
  • n (int, optional, default 100) – Number of saturation points.

  • ax (matplotlib.pyplot.Axes or None, optional, default None) – Matplotlib axes. If None, a new figure and axe is created.

  • figsize (array_like or None, optional, default None) – New figure size if ax is None.

  • plt_kws (dict or None, optional, default None) – Additional keywords passed to matplotlib.pyplot.plot().

van Genuchten-Mualem#

class toughio.relative_permeability.vanGenuchtenMualem(m, slr, sls, sgr)[source]#

Van Genuchten-Mualem function.

After Mualem (1976) and van Genuchten (1980).

Parameters:
  • m (scalar) – Related to pore size distribution (RP(1)).

  • slr (scalar) – Irreducible liquid saturation (RP(2)).

  • sls (scalar) – Maximum liquid saturation (RP(3)).

  • sgr (scalar) – Irreducible gas saturation (RP(4)).

property id#

Return relative permeability model ID in TOUGH.

property name#

Return relative permeability model name.

property parameters#

Return model parameters.

plot(n=100, ax=None, figsize=(10, 8), plt_kws=None)#

Plot relative permeability curve.

Parameters:
  • n (int, optional, default 100) – Number of saturation points.

  • ax (matplotlib.pyplot.Axes or None, optional, default None) – Matplotlib axes. If None, a new figure and axe is created.

  • figsize (array_like or None, optional, default None) – New figure size if ax is None.

  • plt_kws (dict or None, optional, default None) – Additional keywords passed to matplotlib.pyplot.plot().

Verma#

class toughio.relative_permeability.Verma(slr=0.2, sls=0.895, a=1.259, b=-1.7615, c=0.5089)[source]#

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)).

property id#

Return relative permeability model ID in TOUGH.

property name#

Return relative permeability model name.

property parameters#

Return model parameters.

plot(n=100, ax=None, figsize=(10, 8), plt_kws=None)#

Plot relative permeability curve.

Parameters:
  • n (int, optional, default 100) – Number of saturation points.

  • ax (matplotlib.pyplot.Axes or None, optional, default None) – Matplotlib axes. If None, a new figure and axe is created.

  • figsize (array_like or None, optional, default None) – New figure size if ax is None.

  • plt_kws (dict or None, optional, default None) – Additional keywords passed to matplotlib.pyplot.plot().

Capillarity#

Linear#

class toughio.capillarity.Linear(pmax, smin, smax)[source]#

Linear function.

Parameters:
  • pmax (scalar) – Maximum pressure (CP(1)).

  • smin (scalar) – Lower liquid saturation threshold (CP(2)).

  • smax (scalar) – Upper liquid saturation threshold (CP(3)).

property id#

Return capillarity model ID in TOUGH.

property name#

Return capillarity model name.

property parameters#

Return model parameters.

plot(n=100, ax=None, figsize=(10, 8), plt_kws=None)#

Plot capillary pressure curve.

Parameters:
  • n (int, optional, default 100) – Number of saturation points.

  • ax (matplotlib.pyplot.Axes or None, optional, default None) – Matplotlib axes. If None, a new figure and axe is created.

  • figsize (array_like or None, optional, default None) – New figure size if ax is None.

  • plt_kws (dict or None, optional, default None) – Additional keywords passed to matplotlib.pyplot.semilogy().

Pickens#

class toughio.capillarity.Pickens(p0, slr, sl0, x)[source]#

Pickens et al. function.

After Pickens et al. (1979).

Parameters:
  • p0 (scalar) – Capillary pressure strength (CP(1)).

  • slr (scalar) – Irreducible liquid saturation (CP(2)).

  • sl0 (scalar) – Initial liquid saturation (CP(3)).

  • x (scalar) – CP(4).

property id#

Return capillarity model ID in TOUGH.

property name#

Return capillarity model name.

property parameters#

Return model parameters.

plot(n=100, ax=None, figsize=(10, 8), plt_kws=None)#

Plot capillary pressure curve.

Parameters:
  • n (int, optional, default 100) – Number of saturation points.

  • ax (matplotlib.pyplot.Axes or None, optional, default None) – Matplotlib axes. If None, a new figure and axe is created.

  • figsize (array_like or None, optional, default None) – New figure size if ax is None.

  • plt_kws (dict or None, optional, default None) – Additional keywords passed to matplotlib.pyplot.semilogy().

TRUST#

class toughio.capillarity.TRUST(p0, slr, eta, pe, pmax)[source]#

TRUST capillary pressure.

After Narasimhan et al. (1978).

Parameters:
  • p0 (scalar) – Capillary pressure strength (CP(1)).

  • slr (scalar) – Irreducible liquid saturation (CP(2)).

  • eta (scalar) – CP(3).

  • pe (scalar) – Capillary entry pressure (CP(4)).

  • pmax (scalar) – Maximum pressure (CP(5)).

property id#

Return capillarity model ID in TOUGH.

property name#

Return capillarity model name.

property parameters#

Return model parameters.

plot(n=100, ax=None, figsize=(10, 8), plt_kws=None)#

Plot capillary pressure curve.

Parameters:
  • n (int, optional, default 100) – Number of saturation points.

  • ax (matplotlib.pyplot.Axes or None, optional, default None) – Matplotlib axes. If None, a new figure and axe is created.

  • figsize (array_like or None, optional, default None) – New figure size if ax is None.

  • plt_kws (dict or None, optional, default None) – Additional keywords passed to matplotlib.pyplot.semilogy().

Milly#

class toughio.capillarity.Milly(slr)[source]#

Milly’s function.

After Milly (1982).

Parameters:

slr (scalar) – Irreducible liquid saturation (CP(1)).

property id#

Return capillarity model ID in TOUGH.

property name#

Return capillarity model name.

property parameters#

Return model parameters.

plot(n=100, ax=None, figsize=(10, 8), plt_kws=None)#

Plot capillary pressure curve.

Parameters:
  • n (int, optional, default 100) – Number of saturation points.

  • ax (matplotlib.pyplot.Axes or None, optional, default None) – Matplotlib axes. If None, a new figure and axe is created.

  • figsize (array_like or None, optional, default None) – New figure size if ax is None.

  • plt_kws (dict or None, optional, default None) – Additional keywords passed to matplotlib.pyplot.semilogy().

van Genuchten#

class toughio.capillarity.vanGenuchten(m, slr, alpha, pmax, sls)[source]#

Van Genuchten function.

After van Genuchten (1980).

Parameters:
  • m (scalar) – Related to pore size distribution (CP(1)).

  • slr (scalar) – Irreducible liquid saturation (CP(2)).

  • alpha (scalar) – Inverse of capillary pressure strength 1/P0 (CP(3)).

  • pmax (scalar) – Maximum pressure (CP(4)).

  • sls (scalar) – Maximum liquid saturation (CP(5)).

property id#

Return capillarity model ID in TOUGH.

property name#

Return capillarity model name.

property parameters#

Return model parameters.

plot(n=100, ax=None, figsize=(10, 8), plt_kws=None)#

Plot capillary pressure curve.

Parameters:
  • n (int, optional, default 100) – Number of saturation points.

  • ax (matplotlib.pyplot.Axes or None, optional, default None) – Matplotlib axes. If None, a new figure and axe is created.

  • figsize (array_like or None, optional, default None) – New figure size if ax is None.

  • plt_kws (dict or None, optional, default None) – Additional keywords passed to matplotlib.pyplot.semilogy().