Skip to content

Black Oil Table Module

The data required for generating the black oil table is already provided in the fluid definition module, when a well is created:

  • Initial reservoir fluid composition (generated with any of the available methods)
  • Initial reservoir pressure
  • Reservoir temperature
  • Surface process associated to the well (used to generate the black oil table)

Black Oil Table Generation

whitson+ provides black oil tables consistently extrapolated to a critical pressure (if possible). More details on the procedure used for generating black oil tables can be found here.

Surface Conditions for Volume Calculations

Surface gas and oil volumes are reported at standard conditions: 1 atmosphere (14.7 psia) and 15.56 C (60 F)

Fluid Properties at Initial Reservoir Conditions

The table at the top of the black oil table modules provides the fluid properties at initial reservoir pressure and temperature.

fluid_init_table

Reservoir Type

The reservoir can be one of three types:

  • Initially, undersaturated oil reservoir (\(S_\mathrm{o} = 100 \%\) initially)
  • Initially, undersaturated gas reservoir (\(S_\mathrm{g} = 100 \%\) initially)
  • Initially, saturated two-phase reservoir (\(S_\mathrm{g} > 0\%\) and \(S_\mathrm{o} > 0 \%\) initially)

Total FVF

Total FVF is defined as:

\(B_\mathrm{t} = \frac{S_\mathrm{o}+S_\mathrm{g}}{\frac{S_\mathrm{o}}{B_\mathrm{o}}+\frac{S_\mathrm{g}}{B_\mathrm{gd}/r_\mathrm{s}}}\)

which for an undersaturated oil reservoir (\(S_\mathrm{g} = 0 \%\)) will simplify to \(B_\mathrm{t} = B_\mathrm{o}\) and for an undersaturated gas reservoir (\(S_\mathrm{o} = 0 \%\)) will simplify to \(B_\mathrm{t} = \frac{B_\mathrm{gd}}{r_\mathrm{s}}\). For a two-phase saturated case, the total FVF will represent a saturation weighted oil FVF.

Total Gas Formation Volume Factor

\(B_\mathrm{t} = \frac{S_\mathrm{o}+S_\mathrm{g}}{\frac{S_\mathrm{g}}{B_\mathrm{gd}}+\frac{S_\mathrm{o}}{B_\mathrm{o}/R_\mathrm{s}}}\)

which for an undersaturated oil reservoir (\(S_g=0%\)) will simplify to \(B_t = B_o/R_s\) and for an undersaturated gas reservoir (\(S_o=0%\)) will simplify to Bgd. For a two-phase saturated case, the total gas FVF will represent a saturation weighted gas FVF.

Total GOR

Total GOR is defined as:

\(R_\mathrm{t} = \frac{\frac{S_g}{B_{gd}}+\frac{S_o}{B_o/R_s}}{\frac{S_g}{B_{gd}/r_{s}}+ \frac{S_{o}}{B_{o}}}\)

which for an undersaturated oil reservoir (\(S_\mathrm{g} = 0 \%\)) will simplify to \(R_\mathrm{t} = R_\mathrm{s}\) and for an undersaturated gas reservoir (\(S_\mathrm{o} = 0 \%\)) will simplify to \(R_\mathrm{t} = \frac{1}{r_\mathrm{s}}\). For a two-phase saturated case, the total GOR will represent a saturation weighted GOR.

Info

Irrespective of reservoir type, total FVF (\(B_\mathrm{t}\)) and total GOR (\(R_\mathrm{t}\)) can be used directly to calculate original oil in place: \(N = \frac{HCPV}{FVF_\mathrm{tot}}\) and original gas in place: \(G = N \cdot R_\mathrm{t}\)

Saturation Pressures

The saturation pressure (bubblepoint or dewpoint) is always the saturation pressure of the fluid definition composition (\(z_{\mathrm{bo}i}\)).

Note

In the case of a saturated 2-phase reservoir, the initial reservoir pressure will be lower than the saturation pressure of \(z_{\mathrm{bo}i}\).

Reservoir Classification

  • Black Oil: \(R_\mathrm{s}\) <= 1000 scf/STB
  • Volatile Oil: \(R_\mathrm{s}\) > 1000 scf/STB and saturation pressure type is bubblepoint
  • Gas Condensate: saturation pressure is dewpoint
  • Wet Gas: no dewpoint at reservoir conditions, but produce liquids at surface
  • Dry Gas: no dewpoint at reservoir conditions and no liquid production at surface
  • Two-phase: \(S_\mathrm{g} > 0\%\) and \(S_\mathrm{o} > 0 \%\) initially

Reservoir Density

Reservoir densities are calculated based on black-oil properties as

  • Reservoir oil density: \(\rho_\mathrm{o} = \frac{62.4 \gamma_o + 0.00136\gamma_g R_s}{B_o}\)
  • Reservoir gas density: \(\rho_\mathrm{g} = \frac{62.4 \gamma_o + 0.00136\gamma_g (1/r_s)}{B_{gd}/r_s}\)

with \(\rho_\mathrm{o}\) in lbm/ft³, \(B_o\) and \(B_{gd}/r_s\) in RB/STB and \(R_s\) and \(1/r_s\) in scf/STB.

Note

The reservoir densities are calculated with the black oil table properties (not from EOS model).

Modified Black Oil PVT Properties

The Modified Black Oil PVT properties (\(B_o\), \(R_s\), \(\mu_o\), \(B_gd\), \(r_s\), \(\mu_g\)) correspond to the fluid properties for the well at initial reservoir conditions and are extracted from the black oil table for \(p = p_\mathrm{res, init}\).

  • \(B_o\): Oil Formation Volume Factor
  • \(R_s\): Solution GOR
  • \(\mu_o\): Oil Viscosity
  • \(B_{gd}\): Dry gas formation volume factor
  • \(r_s\): Solution CGR
  • \(\mu_g\): Gas Viscosity

The black oil tables are "modified black oil tables", which means that the solution CGR (\(r_s\)) is always included in the table. The tables are also extrapolated to a critical point (when possible, see here for further details.). Read more about black oil PVT here.

Export Formats

whitson+ supports several export formats of black oil tables:

  • Eclipse
  • IMEX
  • ResFrac
  • IHS
  • Kappa
  • Excel

Note

If there is an export format you are missing, send an e-mail to support@whitson.com and we'll implement it for you.

Eclipse Export Format

The ECLIPSE BO table created by whitson+ is a modified BO table (it uses PVTG keyword to provide \(r_\mathrm{s}\) values).

Two sections need to be modified:

  • TABDIMS Keyword

Modify the TABDIMS section in RUNSPEC using the values for NPPVT and NRPVT provided in the exported BO table.

For example:

-- !-------------!
-- !             !
-- !   WARNING   !
-- !             !
-- !-------------!
-- TABDIMS should be modified in the RUNSPEC section of your file, to increase the maximum entries in the BO table.
-- Replace TABDIMS in your file by numbers larger or equal (>=) to the ones provided below.
-- XXXX should be kept as currently specified in your TABDIMS keyword.
-- TABDIMS
-- XXXX     XXXX    XXXX     117     XXXX   87  /
-- NTSFUN   NTPVT   NSSFUN   NPPVT   NTFIP   NRPVT


  • Water Properties

Modify the water properties in the BO table directly.

-- PVTW Section
-- Default water properties are provided here.
-- These should be changed to appropriate values for your fluid system.
-- Pref (psia)  Bw (rb/STB)  cw (1/psia)  Visco_w (cp)  water viscosibility (1/psia)
PVTW
 14.696   1  3.0E-6  0.5  0  /

Note

The ECLIPSE simulation model will run even if you don't change these values. Note that these values are default values and may not represent accurately the system being modeled.

Video here

ResFrac Export Format

The ResFrac BO table created by whitson+ is a modified BO table. (it uses the variable name usemodifiedblackoilmodel activate this).

There are two ways of importing a BOT in ResFrac

  • From frontend: use the "import black oil table from whitson+" option in the Fluid Model Options Tab
  • In simulation deck: copy paste text in the BOT file directly into the text file deck

Video here

IMEX Export Format

The IMEX BO table created by whitson+ is a modified BO table (it uses the MODEL VOLATILE_OIL as it is the most flexible option).

In the INITIAL (fluid initialization part of the IMEX file) it’s important to define both PB and PDEW with the associated initial saturation pressure. CON refers to constant compositions (while there are other alternatives that are described well in the IMEX manual).

*INITIAL
********************************************************************************
** Initial Conditions Section in CMG IMEX                                     **
********************************************************************************
*VERTICAL *BLOCK_CENTER *WATER_OIL_GAS ** Use vertical equilibrium calculation.
*PB *CON    3000          ** bubblepoint pressure
*PDEW *CON    3000          ** dewpoint pressure

*REFDEPTH   8400.           ** Give a reference depth  and
*REFPRES    4800.           ** associated pressure.
*DWOC       20000.           ** Depth to water-oil contact
*DGOC       20000.           ** Depth to gas-oil conttact
Video here

IHS Harmony Export Format

  • We provide an Excel file formatted for a frictionless import into IHS.
  • Follow the step by step guide below on how to import this table into Harmony.
  • For a mass import of black oil tables (30-40 wells) we recommend to set up a database connection and an associated scheduler.

Kappa Export Format

Kappa can import Eclipse BO tables. Choose the "import from ECLIPSE" option in Kappa and import the BO table.

Saphir (Pressure Transient Analysis) & Topaze (Rate Transient Analysis)

Step-by-Step: Import black oil table into Topaze(RTA) and Saphir (PTA)

To input the BO tables from whitson+ into Topaze and Saphir, follow these steps:

  1. Choose the multiphase option
  2. Pick your reference fluid, either gas or oil
  3. Check the option to "Define advanced PVT"
  4. Click on the "Lab Flask" icon to input the black oil table
  5. From the import options, pick Eclipse and select the file exported from whitson+
  6. Pick "set the value of GOR / CGR in order to select the closest corresponding under-saturated set of data"
  7. Input the GOR or CGR (for oil or gas respectively) that you see in the fluid initialization section
  8. Press OK to close the PVT input window, and then next
  9. The analytical parameters (formation volume factor and viscosity) are taken from the BO table, and should not be changed. As a QC, you can check that these values are the same as what you get in the fluid initialization section. Go to the next screen.
  10. Under numerical parameters > Non-linear diffusion > Common functionalities > select "Use real PVT" to ensure that the input black oil table is used in your numerical model (non-linear)

Rubis (Multi Purpose Full Field Numerical Model)

Step-by-Step: Import black oil table into Rubis

To input the BO tables from whitson+ into Rubis, follow these steps:

  1. Click on the "Lab Flask" icon to input the black oil table
  2. From the import options, pick Eclipse and select the file exported from whitson+
  3. When prompted that the "Loaded file contains MBO model" Pick the PVT model that corresponds to the fluid you are importing, either "condensate gas" or "volatile oil". Even if your fluid is not a "volatile oil" or a "condensate gas", you should choose one of these options to ensure that Kappa software takes in the complete modified black oil tables for your analysis
  4. Pick "set the value of GOR / CGR in order to select the closest corresponding under-saturated set of data"
  5. Input the GOR or CGR (for oil or gas respectively) that you see in the fluid initialization section
  6. Under "Reference Parameters" input your initial reservoir pressure and reservoir temperature, the GOR should be the same as you input in step 5
  7. Press OK to close the PVT input window, and then "Finish"
  8. Now the PVT model is input and you can proceed to initialize your reservoir model, under "Properties"> "Initial State".
    1. Pick "variable type" = composition
    2. Input the GOR of your fluid, from the fluid initialization section

SENSOR Export Format

The SENSOR BO table created by whitson+ is a modified BO table. It uses the variable name PVTBO and provides the saturated and the undersaturated table.

POWERS Export Format

The POWERS BO table by whitson+ is a modified BO table extrapolated to the critical point if found. It provides the saturated table for both oil and gas. For each saturated pressure in the oil table, the compressibility and viscosibility is calculated. This is used internally in GigaPOWERS and TeraPOWERS to calculate the PVT properties in the undersaturated region.

Compressibility (\(c_{o}\)) is calculated for each saturated point using the undersaturated data predicted by EOS, using the following equation

\(c_{o} = -\frac{log(\frac{B_{sat}}{B_{ref}})}{p_{sat}-p_{ref}}\)

  • \(p_{sat}\): saturation pressure
  • \(p_{ref}\): pressure closest to reservoir pressure if pres > psat, else first undersaturated pressure
  • \(B_{sat}\): Bo at saturation pressure
  • \(B_{ref}\): Bo closest to reservoir pressure if pres > psat, else first undersaturated Bo

Viscosibility (\(\mu_{o}\)) is calculated for each saturated point using the undersaturated data predicted by EOS, using the following equation

\(\mu_{o} = -\frac{log(\frac{\mu_{sat}}{\mu_{ref}})}{p_{sat}-p_{ref}}\)

  • \(p_{sat}\): saturation pressure
  • \(p_{ref}\): pressure closest to reservoir pressure if pres > psat, else first undersaturated pressure
  • \(\mu_{sat}\): Viscosity at saturation pressure
  • \(\mu_{ref}\): Viscosity closest to reservoir pressure if pres > psat, else first undersaturated viscosity

Excel

The Excel export format contains:

  • All saturated data (original sample depletion and extrapolation)
  • All under-saturated data
  • Fluid initialization data (BO properties at initial reservoir pressure)
  • Standards BO plots (BO properties for the initial in-situ reservoir fluid)
  • Advanced BO plots (those plots are hidden by default in the exported Excel file)

Note

Advanced quality check plots are by default hidden in the excel file, but can be accessed by clicking "Unhide" and picking the relevant plots.