pyscal.wateroilgas

Container object for one WaterOil and one GasOil object

class pyscal.wateroilgas.WaterOilGas(swirr=0.0, swl=0.0, swcr=0.0, sorw=0.0, sorg=0.0, sgcr=0.0, h=None, tag='', fast=False)[source]

A representation of three-phase properties for oil-water-gas

Use one object for each satnum.

One WaterOil and one GasOil object will be created, with compatible saturation ranges. Access the class members ‘wateroil’ and ‘gasoil’ directly to add curves.

All arguments to the initializer can be defaulted, and all are zero except h.

Either the gasoil or the wateroil member is allowed to be None in case of only two phases present. It is allowed for functions to set these members to None after initialization, as done in SCALrecommendation.interpolate()

Parameters:
  • swirr (float) – Irreducible water saturation for capillary pressure

  • swl (float) – First water saturation point in outputted tables.

  • swcr (float) – Critical water saturation, water is immobile below this

  • sorw (float) – Residual oil saturation

  • sgcr (float) – Critical gas saturation, gas is immobile below this

  • h (Optional[float]) – Saturation intervals in generated tables.

  • tag (str) – Optional text that will be included as comments.

  • fast (bool) – Set to True if you prefer speed over robustness. Not recommended, pyscal will not guarantee valid output in this mode.

SGFN(header=True, dataincommentrow=True)[source]

Return a SGFN string. Delegated to the gasoil object.

Return type:

str

SGOF(header=True, dataincommentrow=True)[source]

Return a SGOF string. Delegated to the gasoil object.

Return type:

str

SLGOF(header=True, dataincommentrow=True)[source]

Return a SLGOF string. Delegated to the gasoil object.

Return type:

str

SOF3(header=True, dataincommentrow=True)[source]

Return a SOF3 string, combining data from the wateroil and gasoil objects.

So - the oil saturation ranges from 0 to 1-swl. The saturation points from the WaterOil object is used to generate these

Return type:

str

SWFN(header=True, dataincommentrow=True)[source]

Return a SWFN string. Delegated to the wateroil object.

Return type:

str

SWOF(header=True, dataincommentrow=True)[source]

Return a SWOF string. Delegated to the wateroil object

Return type:

str

selfcheck()[source]

Run selfcheck on both wateroil and gasoil.

Returns true only if both passes if both are present.

If only wateroil or gasoil is present (the other being None, only the relevant is checked.

Return type:

bool

property sorg: float

Get the sorg used in the GasOil object

property sorw: float

Get the sorw used for the WaterOil object

property swirr: float

Get the swirr used for the WaterOil object

property swl: float

Get the swl used for the WaterOil object

property tag: str

Get the tag, a combination of the tags in WaterOil and GasOil only if they are different

threephaseconsistency()[source]

Perform consistency checks on produced curves, similar to what Eclipse does at startup.

If any (likely) errors are found, these are printed as warnings and this function returns False.

“Errors” from this function should be treated as warnings, as false positives from this function should not have breaking consequences.

Return type:

bool