3. Relative permeability and capillarity models

3.1. Relative permeability

3.1.1. Linear

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

Linear function.

Parameters:
  • slmin (scalar) – Lower liquid saturation threshold (CP(1)).
  • sgmin (scalar) – Lower gas saturation threshold (CP(2)).
  • slmax (scalar) – Upper liquid saturation threshold (CP(3)).
  • sgmax (scalar) – Upper gas saturation threshold (CP(4)).
id

Return relative permeability model ID in TOUGH.

name

Return relative permeability model name.

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

3.1.2. Pickens

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

Gas perfect mobile function.

Parameters:x (scalar) – RP(1).
id

Return relative permeability model ID in TOUGH.

name

Return relative permeability model name.

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

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

Return relative permeability model ID in TOUGH.

name

Return relative permeability model name.

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

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

Return relative permeability model ID in TOUGH.

name

Return relative permeability model name.

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

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

Return relative permeability model ID in TOUGH.

name

Return relative permeability model name.

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

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

Return relative permeability model ID in TOUGH.

name

Return relative permeability model name.

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

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

Return relative permeability model ID in TOUGH.

name

Return relative permeability model name.

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

3.2. Capillarity

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

Return capillarity model ID in TOUGH.

name

Return capillarity model name.

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

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

Return capillarity model ID in TOUGH.

name

Return capillarity model name.

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

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

Return capillarity model ID in TOUGH.

name

Return capillarity model name.

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

3.2.4. Milly

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

Milly’s function.

After Milly (1982).

Parameters:slr (scalar) – Irreducible liquid saturation (CP(1)).
id

Return capillarity model ID in TOUGH.

name

Return capillarity model name.

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

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

Return capillarity model ID in TOUGH.

name

Return capillarity model name.

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