# Black Oil Equilibration¶

FLOW_CONDITION can be used to set up a hydrostatic equilibration that defines a distribution for pressure, saturation and temperature versus depth. Such a condition can be applied to the entire reservoir to initialize a study when used within INITIAL_CONDITION. Below is an example of a hydrostatic equilibration for a black oil model, with variable Pb and temperature:

FLOW_CONDITION equilibration
TYPE
PRESSURE HYDROSTATIC
/
PRESSURE 330.0 Bar
DATUM_D 2480.0 m
OGC_D 2430.0 m
PCOG_OGC 0.5 Bar
OWC_D 2470.0 m
PCOW_OWC 0.5 Bar
BUBBLE_POINT_TABLE
D_UNITS m
PRESSURE_UNITS Bar
PBVD
2430.0 333.0
2470.0 335.0
/
END
TEMPERATURE_TABLE
D_UNITS m
TEMPERATURE_UNITS C
RTEMPVD
2300.0 126.0
2400.0 128.0
/
END
/


In this page we discuss the input sub-card supported in the equilibration for black oil models, as well as additional considaration on how the study is initialised:

## DATUM_D¶

Depth of the reference datum. Require units. Defaults to 0.

## PRESSURE¶

Reference pressure at datum. Must be entered or the code will return an error. Pressure units must be specified.

## OWC_D¶

Defines the depth of the oil-water phase contact. Requires units. If not set defaults to 0

## PCOW_OWC¶

Defines the capillary pressure between the water and the oil phases at the depth of the oil-water phase contact. It requires pressure units. If not set defaults to 0.

## OGC_D¶

Defines the depth of the oil-gas phase contact. It requires units. If not set defaults to 0.

## PCOG_OGC¶

Capillary pressure between the oil and the gas phases at the depth of the oil-gas phase contact. Requires pressure units. If not set default to 0.

## BUBBLE_POINT_TABLE¶

The BUBBLE_POINT_TABLE defines the bubble point pressure ($$P_b$$) versus depth for all grid blocks associated with the hydrostatic equilibration. See example:

BUBBLE_POINT_TABLE
D_UNITS m
PRESSURE_UNITS Bar
PBVD
2430.0 333.0
2470.0 335.0
/
END


Units must be defined using D_UNITS and PRESSURE_UNITS. The data depth vs bubble point pressure are entered within the PBVD block.

The entries must be ordered for monotonically growing depths, and at least two entries are required for the internal interpolation to work. In the hydrostatic equilibration calculation, if for a given depth a bubble point pressure is found to be larger than the oil hydrostatic pressure, its value is reset to the hydrostatic oil pressure value to ensure $$P_b \leq P_o$$.

To remove the PBVD table, the entire BUBBLE_POINT_TABLE block must be removed. If only the PBVD table is removed leaving the BUBBLE_POINT_TABLE block, the code returns an error as a PBVD is expected.

If the PBVD table is not defined, the datum and the oil-gas phase contact must have the same location ( DATUM_D = OGC_D), and the bubble point pressure below the OGC (i.e. undersaturated oil) is taken constant and equal to the pressure at datum. See example:

FLOW_CONDITION equilibration
TYPE
PRESSURE HYDROSTATIC
/
PRESSURE 327.0 Bar
RTEMP 50 C
DATUM_D 2430.0 m
OGC_D     2430.0 m
PCOG_OGC 0.5 Bar
OWC_D 2470.0 m
PCOW_OWC 0.5 Bar
/


## RTEMP¶

Constant temperature value to assign to the reservoir. Note that currently only degrees Celsius are accepted, for any other temperature unit the software returns an error. RTEMP is an alternative to TEMPERATURE_TABLE, either one or the other can be supplied.

## TEMPERATURE_TABLE¶

Define the temperature versus depth for all grid blocks associated with the hydrostatic equilibration. See example:

TEMPERATURE_TABLE
D_UNITS m
TEMPERATURE_UNITS C
RTEMPVD
2300.0 126.0
2400.0 128.0
/
END


Units must be defined using D_UNITS and TEMPERATURE_UNITS. The data depth vs temperature are entered within the RTEMPVD block. The entries must be ordered for monotonically growing depths, and at least two entries are required for the internal interpolation to work.

If the TEMPERATURE_TABLE is defined RTEMP cannot be supplied at the same time in the same flow condition, otherwise the code returns an error, as the temperature is ambiguously defined. To remove the RTEMPVD table, the entire TEMPERATURE_TABLE block must be removed. If only the RTEMPVD table is removed leaving the TEMPERATURE_TABLE block, the code returns an error as a RTEMPVD table is expected.

## NUM_EQUIL_NODES¶

Defines the number of nodes used in the internal hydrostatic equilibration calculation. Below is an example:

FLOW_CONDITION equilibration
TYPE
PRESSURE HYDROSTATIC
/
PRESSURE 327.0 Bar
RTEMP 50 C
DATUM_D 2430.0 m
OGC_D     2430.0 m
PCOG_OGC 0.5 Bar
OWC_D 2470.0 m
PCOW_OWC 0.5 Bar
NUM_EQUIL_NODES 2001
/


The reservoir vertical extension is divided into (NUM_EQUIL_NODES – 1) equispaced depth intervals, and the one-dimensional grid obtained is used to carry out the hydrostatic equilibration calculation. If not entered, NUM_EQUIL_NODES defaults to 501. In some cases it might be beneficial to test higher resolutions than the default one to get a more accurate initial state.

## Saturation Initialisation¶

Away from the transition zones, in the gas-saturated region, the gas maximum saturation is computed as $$S_{g,max}=1–S_{wco}$$, where $$S_{wco}$$ is the connate water, which is the smallest saturation value entered in the SWFN table, or explicitly entered when using analytical water saturation functions.

Away from the transition zones, in the water-saturated region, the maximum water saturation is computed as $$S_{w,max}=1–S_{gco}$$, where $$S_{gco}$$ is gas connate saturation, which is the smallest saturation value in the SGFN table or explicitly entered when using analytical gas saturation functions. Note that usually $$S_{gco}=0$$.

The minimum and maximum values entered in SWFN and SGFN table or in the analytical saturation functions should be consistent, i.e $$S_{g,max} =1 – S_{w,min}$$ and $$S_{w,max} =1 – S_{g,min}$$. If these maximum values are not respected, they are reset automatically by software.

In the oil region, the oil saturation is computed as $$S_o=1–S_w–S_g$$. In case of overlap the oil-water and oil-gas transition zones, a negative oil saturation may result calculation. In this region the software assumes no presence of oil, i.e. $$S_o=0$$ and $$S_w=1−S_g$$, and solves a non-linear pressure equilibration in Sw using the water and gas capillary pressure functions:

$P_{cow}(S_w)+P_{cog}(S_g=1−S_w)=P_g–P_w.$

The overall equilibration calculation assumes that the oil is lighter than the water, and the gas is lighter than the oil. If the user input do not reflects such assumption, an error will be thrown.