PVT properties
Most of the PVT property functions are passed as arguments to the core calculation functions, but are not used directly.
Exported functions
User-facing functions used for model construction.
Oil
StandingSolutionGOR
StandingBubblePoint
StandingOilVolumeFactor
BeggsAndRobinsonDeadOilViscosity
GlasoDeadOilViscosity
ChewAndConnallySaturatedOilViscosity
Gas
LeeGasViscosity
HankinsonWithWichertPseudoCriticalTemp
HankinsonWithWichertPseudoCriticalPressure
PapayZFactor
KareemEtAlZFactor
KareemEtAlZFactor_simplified
Water
Internal functions
PressureDrop.gasVolumeFactor
PressureDrop.gasDensity_insitu
PressureDrop.oilDensity_insitu
PressureDrop.waterDensity_stb
PressureDrop.waterDensity_insitu
PressureDrop.gas_oil_interfacialtension
PressureDrop.gas_water_interfacialtension
Functions
BeggsAndRobinsonDeadOilViscosity(APIoil, tempF)
Dead oil viscosity (μ_oD) in centipoise.
Takes oil gravity (°API), temp (°F).
Use with caution at 100-150° F: viscosity can be significantly overstated.
Beggs and Robinson method.
ChewAndConnallySaturatedOilViscosity(deadOilViscosity, solutionGOR)
Saturated oil viscosity (μₒ) in centipoise.
Takes dead oil viscosity (cp), solution GOR (scf/bbl).
Chew and Connally method to correct from dead to live oil viscosity.
PressureDrop.GlasoDeadOilViscosity
— Method.GlasoDeadOilViscosity(APIoil, tempF)
Dead oil viscosity (μ_oD) in centipoise.
Takes oil gravity (°API), temp (°F).
Glaso method.
PressureDrop.GouldWaterVolumeFactor
— Method.GouldWaterVolumeFactor(pressureAbs, tempF)
Water volume factor (B_w).
Takes absolute pressure (psia), temp (°F).
Gould method.
HankinsonWithWichertPseudoCriticalPressure(specificGravity, molFracCO2, molFracH2S)
Pseudo-critical pressure in psia.
Takes gas specific gravity, mol fraction of CO₂, mol fraction of H₂S.
Hankin-Thomas-Phillips method, with Wichert and Aziz correction for sour components.
HankinsonWithWichertPseudoCriticalTemp(specificGravity, molFracCO2, molFracH2S)
Pseudo-critical temperature, adjusted pseudo-critical temperature in °R, and Wichert correction factor
Takes gas specific gravity, mol fraction of CO₂, mol fraction of H₂S.
Hankin-Thomas-Phillips method, with Wichert and Aziz correction for sour components.
PressureDrop.KareemEtAlZFactor
— Method.KareemEtAlZFactor(pressurePseudoCritical, tempPseudoCriticalRankine, psiAbs, tempF)
Natural gas compressibility deviation factor (Z).
Take pseudocritical pressure (psia), pseudocritical temperature (°R), pressure (psia), temperature (°F).
Can use gauge pressures so long as unit basis matches.
Direct correlation continuous over 0.2 ≤ P_pr ≤ 15.
Kareem, Iwalewa, Al-Marhoun, 2016.
KareemEtAlZFactor_simplified(pressurePseudoCritical, tempPseudoCriticalRankine, psiAbs, tempF)
Natural gas compressibility deviation factor (Z).
Take pseudocritical pressure (psia), pseudocritical temperature (°R), pressure (psia), temperature (°F).
Linearized form from Kareem, Iwalewa, Al-Marhoun, 2016.
PressureDrop.LeeGasViscosity
— Method.LeeGasViscosity(specificGravity, psiAbs, tempF, Z)
Gas viscosity (μ_g) in centipoise.
Takes gas specific gravity, psia, °F, Z (deviation factor).
Lee et al 1966 method.
PressureDrop.PapayZFactor
— Method.PapayZFactor(pressurePseudoCritical, tempPseudoCriticalRankine, psiAbs, tempF)
Natural gas compressibility deviation factor (Z).
Take pseudocritical pressure (psia), pseudocritical temperature (°R), pressure (psia), temperature (°F).
Papay 1968 method.
PressureDrop.StandingBubblePoint
— Method.StandingBubblePoint(APIoil, sg_gas, R_b, tempF)
Bubble point pressure in psia.
Takes oil gravity (°API), gas specific gravity, total solution GOR at pressures above bubble point (R_b, scf/bbl), temp (°F).
PressureDrop.StandingOilVolumeFactor
— Method.StandingOilVolumeFactor(APIoil, specificGravityGas, solutionGOR, psiAbs, tempF)
Oil volume factor (Bₒ).
Takes oil gravity (°API), gas specific gravity, solution GOR (scf/bbl), absolute pressure (psia), temp (°F).
Standing method.
PressureDrop.StandingSolutionGOR
— Method.StandingSolutionGOR(APIoil, specificGravityGas, psiAbs, tempF)
Solution GOR (Rₛ) in scf/bbl.
Takes oil gravity (°API), gas specific gravity, pressure (psia), temp (°F), total solution GOR (R_b, scf/bbl), and bubblepoint function.
Standing method.
PressureDrop.StandingSolutionGOR
— Method.StandingSolutionGOR(APIoil, specificGravityGas, psiAbs, tempF)
Solution GOR (Rₛ) in scf/bbl.
Takes oil gravity (°API), gas specific gravity, pressure (psia), temp (°F), total solution GOR (R_b, scf/bbl), and bubblepoint value (psia).
Standing method.
PressureDrop.gasDensity_insitu
— Method.gasDensity_insitu(specificGravityGas, Z_factor, abspressure, tempF)
In-situ gas density in lb/ft³ (ρ_g).
Takes gas s.g., Z-factor, absolute pressure (psia), temperature (°F).
PressureDrop.gasVolumeFactor
— Method.gasVolumeFactor(pressureAbs, Z, tempF)
Corrected gas volume factor (B_g).
Takes absolute pressure (psia), Z-factor, temp (°F).
PressureDrop.gas_oil_interfacialtension
— Method.gas_oil_interfacialtension(APIoil, pressureAbsolute, tempF)
Gas-oil interfactial tension in dynes/cm.
Takes oil API, absolute pressure (psia), temp (°F).
Possibly Baker Swerdloff method; same method utilized by Fekete
gas_water_interfacialtension(pressureAbsolute, tempF)
Gas-water interfactial tension in dynes/cm.
Takes absolute pressure (psia), temp (°F).
Possibly Baker Swerdloff method; same method utilized by Fekete
PressureDrop.oilDensity_insitu
— Method.oilDensity_insitu(APIoil, specificGravityGas, solutionGOR, oilVolumeFactor)
Oil density (ρₒ) in mass-lbs per ft³.
Takes oil gravity (°API), gas specific gravity, solution GOR (R_s, scf/bbl), oil volume factor.
PressureDrop.waterDensity_insitu
— Method.waterDensity_insitu(waterGravity, B_w)
Water density in lb per ft³.
Takes specific gravity, B_w.
PressureDrop.waterDensity_stb
— Method.waterDensity_stb(waterGravity)
Water density in lb per ft³.
Takes water specific gravity.
PressureDrop.gasVolumeFactor
— Function.gasVolumeFactor(pressureAbs, Z, tempF)
Corrected gas volume factor (B_g).
Takes absolute pressure (psia), Z-factor, temp (°F).
PressureDrop.gasDensity_insitu
— Function.gasDensity_insitu(specificGravityGas, Z_factor, abspressure, tempF)
In-situ gas density in lb/ft³ (ρ_g).
Takes gas s.g., Z-factor, absolute pressure (psia), temperature (°F).
PressureDrop.oilDensity_insitu
— Function.oilDensity_insitu(APIoil, specificGravityGas, solutionGOR, oilVolumeFactor)
Oil density (ρₒ) in mass-lbs per ft³.
Takes oil gravity (°API), gas specific gravity, solution GOR (R_s, scf/bbl), oil volume factor.
PressureDrop.waterDensity_stb
— Function.waterDensity_stb(waterGravity)
Water density in lb per ft³.
Takes water specific gravity.
PressureDrop.waterDensity_insitu
— Function.waterDensity_insitu(waterGravity, B_w)
Water density in lb per ft³.
Takes specific gravity, B_w.
PressureDrop.gas_oil_interfacialtension
— Function.gas_oil_interfacialtension(APIoil, pressureAbsolute, tempF)
Gas-oil interfactial tension in dynes/cm.
Takes oil API, absolute pressure (psia), temp (°F).
Possibly Baker Swerdloff method; same method utilized by Fekete
PressureDrop.gas_water_interfacialtension
— Function.gas_water_interfacialtension(pressureAbsolute, tempF)
Gas-water interfactial tension in dynes/cm.
Takes absolute pressure (psia), temp (°F).
Possibly Baker Swerdloff method; same method utilized by Fekete