fmu.tools.properties package

Submodules

fmu.tools.properties.swfunction module

Sw J or BVW or Brooks-Corey general functions, by direct or integration.

Solve a system on form:

sw = a(m + x*h)^b

The “x” can e.g. be the J term in the Leverett equation, but without the height term.

In many cases m is zero.

Note: The public library xtgeo must be available.

class fmu.tools.properties.swfunction.SwFunction(grid, x=0.0, a=1.0, b=-1.0, ffl=999.0, m=0.0, swira=0.0, swmax=1.0, method='cell_center_above_ffl', gridname='', project=None, invert=False, hcenter=None, htop=None, hbot=None, debug=False, tag='')[source]

Bases: object

Generic Sw calc for formulation Sw = a * (m + x * h)^b.

Some theory for this is shown here: pdf.

Parameters:
  • grid (xtgeo.Grid) – The xtgeo grid object

  • x (float | xtgeo.GridProperty) – The x term in the generic saturation. For a simplified J function, this will be sqrt(perm/poro).

  • a (float | xtgeo.GridProperty) – The a term in the generic saturation.

  • b (float | xtgeo.GridProperty) – The b term in the generic saturation.

  • ffl (float | xtgeo.GridProperty) – The free fluid level, either as a number or a 3D xtgeo gridproperty object.

  • m (float | xtgeo.GridProperty) – The m term in the equation above, either as a number or a 3D xtgeo gridproperty object. Defaults to zero.

  • swira (float | xtgeo.GridProperty) – The absolute irreducable satuation applied as asymptote in the equation. Defaults to zero.

  • swmax (float | xtgeo.GridProperty) – The maximum applied as asymptote in the equation. Defaults to 1.

  • method (str) – How to look at cell geometry. There are three options: ‘cell_center’, ‘cell_center-above_ffl’ and ‘cell_corners_above_ffl’.

  • gridname (str) – Optional - only needed when debug keyword is True.

  • project (Any | None) – Optional. Must be included when working in RMS.

  • invert (bool) – Optional, will in case invert a and b in case the J function (or similar) is formulated as Sw = (J/A)^(1/B). This is the case in e.g. RMS

  • zdepth – Optional. May speed up computation if provided, in case the function is called several time for the same grid.

  • hcenter (xtgeo.GridProperty) – Optional. May speed up computation if provided, in case the function is called several time for the same grid, or hcenter is pre-computed in a special way. The hcenter will work with direct method only, not integration.

  • htop (xtgeo.GridProperty) – Optional. May speed up computation if provided, in case the function is called several time for the same grid.

  • hbot (xtgeo.GridProperty) – Optional. May speed up computation if provided, in case the function is called several time for the same grid.

  • debug (bool) – If True, several “check parameters” will we given, either as grid properties (if working in RMS) or as ROFF files (if working outside RMS).

  • tag (str) – Optional string to identify debug parameters.

grid: xtgeo.Grid
x: float | xtgeo.GridProperty = 0.0
a: float | xtgeo.GridProperty = 1.0
b: float | xtgeo.GridProperty = -1.0
ffl: float | xtgeo.GridProperty = 999.0
m: float | xtgeo.GridProperty = 0.0
swira: float | xtgeo.GridProperty = 0.0
swmax: float | xtgeo.GridProperty = 1.0
method: str = 'cell_center_above_ffl'
gridname: str = ''
project: Any | None = None
invert: bool = False
hcenter: xtgeo.GridProperty = None
htop: xtgeo.GridProperty = None
hbot: xtgeo.GridProperty = None
debug: bool = False
tag: str = ''
compute(compute_method='integrated')[source]

Common compute function for saturation, and returns the Sw property

Return type:

GridProperty

Module contents

class fmu.tools.properties.SwFunction(grid, x=0.0, a=1.0, b=-1.0, ffl=999.0, m=0.0, swira=0.0, swmax=1.0, method='cell_center_above_ffl', gridname='', project=None, invert=False, hcenter=None, htop=None, hbot=None, debug=False, tag='')[source]

Bases: object

Generic Sw calc for formulation Sw = a * (m + x * h)^b.

Some theory for this is shown here: pdf.

Parameters:
  • grid (xtgeo.Grid) – The xtgeo grid object

  • x (float | xtgeo.GridProperty) – The x term in the generic saturation. For a simplified J function, this will be sqrt(perm/poro).

  • a (float | xtgeo.GridProperty) – The a term in the generic saturation.

  • b (float | xtgeo.GridProperty) – The b term in the generic saturation.

  • ffl (float | xtgeo.GridProperty) – The free fluid level, either as a number or a 3D xtgeo gridproperty object.

  • m (float | xtgeo.GridProperty) – The m term in the equation above, either as a number or a 3D xtgeo gridproperty object. Defaults to zero.

  • swira (float | xtgeo.GridProperty) – The absolute irreducable satuation applied as asymptote in the equation. Defaults to zero.

  • swmax (float | xtgeo.GridProperty) – The maximum applied as asymptote in the equation. Defaults to 1.

  • method (str) – How to look at cell geometry. There are three options: ‘cell_center’, ‘cell_center-above_ffl’ and ‘cell_corners_above_ffl’.

  • gridname (str) – Optional - only needed when debug keyword is True.

  • project (Any | None) – Optional. Must be included when working in RMS.

  • invert (bool) – Optional, will in case invert a and b in case the J function (or similar) is formulated as Sw = (J/A)^(1/B). This is the case in e.g. RMS

  • zdepth – Optional. May speed up computation if provided, in case the function is called several time for the same grid.

  • hcenter (xtgeo.GridProperty) – Optional. May speed up computation if provided, in case the function is called several time for the same grid, or hcenter is pre-computed in a special way. The hcenter will work with direct method only, not integration.

  • htop (xtgeo.GridProperty) – Optional. May speed up computation if provided, in case the function is called several time for the same grid.

  • hbot (xtgeo.GridProperty) – Optional. May speed up computation if provided, in case the function is called several time for the same grid.

  • debug (bool) – If True, several “check parameters” will we given, either as grid properties (if working in RMS) or as ROFF files (if working outside RMS).

  • tag (str) – Optional string to identify debug parameters.

grid: xtgeo.Grid
x: float | xtgeo.GridProperty = 0.0
a: float | xtgeo.GridProperty = 1.0
b: float | xtgeo.GridProperty = -1.0
ffl: float | xtgeo.GridProperty = 999.0
m: float | xtgeo.GridProperty = 0.0
swira: float | xtgeo.GridProperty = 0.0
swmax: float | xtgeo.GridProperty = 1.0
method: str = 'cell_center_above_ffl'
gridname: str = ''
project: Any | None = None
invert: bool = False
hcenter: xtgeo.GridProperty = None
htop: xtgeo.GridProperty = None
hbot: xtgeo.GridProperty = None
debug: bool = False
tag: str = ''
compute(compute_method='integrated')[source]

Common compute function for saturation, and returns the Sw property

Return type:

GridProperty