Gas Water 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. See example below:

FLOW_CONDITION equilibration
  TYPE
    PRESSURE HYDROSTATIC
  /
  DATUM_D 1000.0 m
  PRESSURE 105.0 Bar
  RTEMP 50 C
  GAS_IN_LIQUID_MOLE_FRACTION 1.D-4
  SALT_TABLE
    D_UNITS m
    CONCENTRATION_UNITS MOLAL
    SALTVD
     1000 0.95
     2500 3.0
    /
  END
/

The gas-water contact is not supported in the hydrostatic equilibration for the GAS_WATER module, therefore the model must be fully saturated with water.

The input cards supported for the Gas Water equilibration are:

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.

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 below:

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.

SALT_TABLE

Defines the brine salinity versus depth for all grid blocks associated with the hydrostatic equilibration. See example below:

SALT_TABLE
    D_UNITS m
    CONCENTRATION_UNITS MOLAL
    SALTVD
     1000 0.95
     2500 3.0
    /
END

Units must be defined using D_UNITS and CONCENTRATION_UNITS. CONCENTRATION_UNITS can take three different values, depending on which units the brine salinity values are entered:

  • MOLAL, for salt concentrations in molality (m).

  • MASS or MASS_FRACTION, for salt concentrations given as mass fractions (kg-salt/kg-brine).

  • MOLE or MOLE_FRACTION, for salt concentrations given as mole fractions, \(\frac{n_{NaCl}}{(n_{NaCl} + n_{H2O})}\)

In all three cases the values entered do not account for the dissolved CO2 in brine.

The data depth vs salinity are entered within the SALTVD block. The entries must be ordered for monotonically growing depths, and at least two entries are required for the internal interpolation to work.

If BRINE has already been used in the input deck to define a constant salinity, SALT_TABLE will overwrite it.

GAS_IN_LIQUID_MOLE_FRACTION

Define the initial mole fraction of gas in water, dimensionless. If not set, defaults to 0.

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
  /
  DATUM_D 1000.0 m
  PRESSURE 105.0 Bar
  RTEMP 50 C
  GAS_IN_LIQUID_MOLE_FRACTION 1.D-4
  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.