Pressure Volume Temperature PVT

Definition: PVT modeling describes the changes in hydrocarbon fluid properties (volume, density, and phase) as a function of pressure and temperature. It is essential for converting surface volumes (STB) to reservoir volumes (RB).

Key Properties & Symbols

  • \(B_o\): Oil Formation Volume Factor (RB/STB)

  • \(R_s\): Solution Gas-Oil Ratio (scf/STB)

  • \(\mu_o\): Oil Viscosity (cP)

  • \(\gamma_o, \gamma_g\): Specific gravities of oil and gas.

The Bubble Point Pressure (\(P_b\)) The pressure at which the first bubble of gas comes out of solution. Below this pressure, the fluid is “saturated.” A common correlation used is Standing’s method.

\[P_b = 18.2 \left[ \left( \frac{R_s}{\gamma_g} \right)^{0.83} \times 10^{(0.00091 T - 0.0125 API)} - 1.4 \right]\]

Numerical Example:

  • \(R_s = 500 \, \text{scf/STB}\)

  • \(\gamma_g = 0.65\)

  • \(T = 200 \, ^\circ\text{F}\):

  • \(\text{API} = 35\)

double Rs = 500, gamma_g = 0.65, T = 200,  API = 35, a = Pow(Rs / gamma_g, 0.83);
double b = Pow(10, (0.00091 * T - 0.0125 * API));
double Pb = 18.2 * (a * b - 1.4);
Console.WriteLine($"Bubble Point Pressure = {Pb:F2} psia");

Ouput

Bubble Point Pressure = 2486.40 psia
  1. Oil Formation Volume Factor(:math:B_o)Since oil shrinks as gas escapes, :math:B_o is almost always greater than 1.0.For pressures below the bubble point, we use the Standing correlation:

\[B_o = 0.9759 + 0.00012\left[R_s \left( \frac{\gamma_g}{\gamma_o} \right)^{0.5} + 1.25 T \right]^{1.2}\]

Numerical Example:

  • \(\gamma_o = 0.85\) (Typical for 35 API)

Using \(R_s\), - \(\gamma_g\), and - \(T\) from above:

double Rs = 500, gamma_g = 0.65, gamma_o = 0.85, T = 200;
double F = Rs * Pow(gamma_g / gamma_o, 0.5) + 1.25 * T;
double Bo = 0.9759 + 0.00012 * Pow(F, 1.2);
Console.WriteLine($"Bo at Bubble Point = {Bo:F3} RB/STB");

Ouput

Bo at Bubble Point = 1.280 RB/STB

3.Gas Compressibility Factor(\(z\)) For gas modeling, the Ideal Gas Law fails at high pressure. We use the \(Z\)-factor to correct it. The Hall-Yarborough or Dranchuk-Abu-Kassam methods are standard for coding this.

Linearization for Gas Density:

\[\rho_g = \frac{P \cdot MW_g}{ Z \cdot R \cdot T}\]

4. Gas Formation Volume Factor( \(B_g\)) is the ratio of the volume of gas at reservoir conditions to the volume of the same mass of gas at standard conditions. Because gas is highly compressible, \(B_g\) is always a very small number (typically \(< 0.01\)).

Mathematical Expression: Derived from the Real Gas Law (\(pV = nzRT\)):

\[B_g = 0.02827 \frac{Z T}{p} \quad [\text{rcf/scf}]\]

Or in field units (res bbl/scf):

\[B_g = 0.005035 \frac{Z T}{p} \quad [\text{rb/scf}]\]

Where:

  • \(p\) = Reservoir pressure (psia)

  • \(T\) = Reservoir temperature (\(^\circ R\))

  • \(Z\) = Gas deviation factor at \(p\) and \(T\)

5.Isothermal Oil Compressibility(\(c_o\)) Above the bubble point (undersaturated), the oil volume changes only slightly due to pressure.

\[c_o = \frac{-1}{ V} \left( \frac{\partial V}{\partial P} \right)_T\]

Code Implementation for Undersaturated \(B_o\). If \(P > P_b\), we adjust the \(B_{ ob}\) (at bubble point) using compressibility:

double Bob = 1.32; // Bo at bubble point
double co = 15e-6; // psi^-1
double P = 5000;   // Reservoir pressure
double Pb = 2500;  // Bubble point

// Bo = Bob * exp(-co * (P - Pb))
double Bo = Bob * Exp(-co * (P - Pb));
Console.WriteLine($"Undersaturated Bo at {P} psi = {Bo:F3} RB/STB");

Ouput

Undersaturated Bo at 5000 psi = 1.271 RB/STB

Practical Application: Material BalanceWe combine these PVT parameters to calculate the Original Oil In Place (OOIP):

\[N = \frac{N_p B_o + (G_p - N_p R_s) B_g}{ B_o - B_{ oi} }\]