bluebonnet.fluids.gas¶
Gas pvt properties, using Dranchuk and Abou-Kassem’s correlations.
Functions¶
|
Create an array of the nonhydrocarbon molecules present. |
|
Calculate the z-factor for gas using Dranchuk and Abou-Kassem (1975). |
|
Get Z-factor for gas from Hall-Yarbrough's iterative approach. |
|
Calculate the b-factor for gas using Dranchuk and Abou-Kassem (1975). |
|
Calculate the density for gas using Dranchuk and Abou-Kassem (1975). |
|
Calculate the compressibility for gas using Dranchuk and Abou-Kassem (1975). |
|
Calculate the viscosity for gas using Sutton's Fudamental PVT Calculations (2007). |
|
Calculate the pseudocritical pressure and temperature from Sutton (2007). |
|
Calculate the pseudopressure for gas using Al Hussainy (1966). |
Module Contents¶
- bluebonnet.fluids.gas.make_nonhydrocarbon_properties(nitrogen: float, hydrogen_sulfide: float, co2: float, *others: dict[str, float]) numpy.typing.NDArray[source]¶
Create an array of the nonhydrocarbon molecules present.
- Parameters:
nitrogen (float) – compositional fraction of N2
hydrogen_sulfide (float) – compositional fraction of H2S
co2 (float) – compositional fraction of CO2
*others (list(tuple)) –
- list of tuples of (name, compositional fraction, molecular weight,
critical temperature (in R), critical pressure (psia))
for other non-hydrocarbon molecules
- Returns:
non_hydrocrabon_properties – structured array of non-hydrocarbon fluid properties
- Return type:
NDArray
Examples
>>> make_nonhydrocarbon_properties(0.03, 0.012, 0.018)
- bluebonnet.fluids.gas.z_factor_DAK(temperature: float, pressure: float, temperature_pseudocritical: float, pressure_pseudocritical: float) float[source]¶
Calculate the z-factor for gas using Dranchuk and Abou-Kassem (1975).
- Parameters:
temperature (float) – reservoir temperature in Fahrenheit.
pressure (float) – reservoir pressure in psia
temperature_pseudocritical (float) – pseudocritical temperature in Fahrenheit.
pressure_pseudocritical (float) – pseudocritical pressure in psia
- Returns:
z_fact – z_factor (dimensionless)
- Return type:
float
Examples
>>> z_factor_DAK(400, 100, -102, 649) 0.9969013621293381
- bluebonnet.fluids.gas.z_factor_hallyarbrough(pressure: float, temperature: float) float[source]¶
Get Z-factor for gas from Hall-Yarbrough’s iterative approach.
- Parameters:
p (float | NDArray[np.float64]) – pressure (psi)
t (float) – temperature (Rankine)
- Returns:
zfact – z-factor
- Return type:
float:
References
- bluebonnet.fluids.gas.b_factor_DAK(temperature: float, pressure: float, temperature_pseudocritical: float, pressure_pseudocritical: float, temperature_standard: float = 60, pressure_standard: float = 14.7) float[source]¶
Calculate the b-factor for gas using Dranchuk and Abou-Kassem (1975).
- Parameters:
temperature (float) – reservoir temperature in Fahrenheit.
pressure (float) – reservoir pressure in psia
temperature_pseudocritical (float) – pseudocritical temperature in Fahrenheit.
pressure_pseudocritical (float) – pseudocritical pressure in psia
- Returns:
b_g – b-factor (reservoir barrels / scf)
- Return type:
float
Examples
>>> b_factor_DAK(400, 100, -102, 649, 60, 14.7) 0.04317415921420302
- bluebonnet.fluids.gas.density_DAK(temperature: float, pressure: float, temperature_pseudocritical: float, pressure_pseudocritical: float, specific_gravity: float) float[source]¶
Calculate the density for gas using Dranchuk and Abou-Kassem (1975).
- Parameters:
temperature (float) – reservoir temperature in Fahrenheit.
pressure (float) – reservoir pressure in psia
temperature_pseudocritical (float) – pseudocritical temperature in Fahrenheit.
pressure_pseudocritical (float) – pseudocritical pressure in psia
specific_gravity (float) – specific gravity relative to air (molecular weight/ molecular weight)
- Returns:
rho_g – density_gas (lb / cubic ft)
- Return type:
float
Examples
>>> density_DAK(400, 100, -102, 649, 0.65) # returns 0.2143
- bluebonnet.fluids.gas.compressibility_DAK(temperature: float, pressure: float, temperature_pseudocritical: float, pressure_pseudocritical: float) float[source]¶
Calculate the compressibility for gas using Dranchuk and Abou-Kassem (1975).
- Parameters:
temperature (float) – reservoir temperature in Fahrenheit.
pressure (float) – reservoir pressure in psia
temperature_pseudocritical (float) – pseudocritical temperature in Fahrenheit.
pressure_pseudocritical (float) – pseudocritical pressure in psia
- Returns:
c_g – compressibility (1 / psi)
- Return type:
float
Examples
>>> compressibility_DAK(400, 104.7, -102, 649) 0.009576560643021937
- bluebonnet.fluids.gas.viscosity_Sutton(temperature: float, pressure: float, temperature_pseudocritical: float, pressure_pseudocritical: float, specific_gravity: float) float[source]¶
Calculate the viscosity for gas using Sutton’s Fudamental PVT Calculations (2007).
- Parameters:
temperature (float) – reservoir temperature in Fahrenheit.
pressure (float) – reservoir pressure in psia
temperature_pseudocritical (float) – pseudocritical temperature in Fahrenheit.
pressure_pseudocritical (float) – pseudocritical pressure in psia
specific_gravity (float) – specific gravity relative to air (density/density)
- Returns:
mu_g – viscosity_gas (centipoise)
- Return type:
float
Examples
>>> viscosity_Sutton(400, 100, -102, 649, 0.65) 0.01652719692109309
- bluebonnet.fluids.gas.pseudocritical_point_Sutton(specific_gravity: float, non_hydrocarbon_properties: numpy.typing.NDArray, fluid: str = 'wet gas') tuple[float, float][source]¶
Calculate the pseudocritical pressure and temperature from Sutton (2007).
- Parameters:
specific_gravity (float) – specific gravity relative to air (molecular weight / molecular weight)
non_hydrocarbon_properties (np.NDArray) – record array of non-hydrocarbon fluid properties MUST HAVE H2S as second row, CO2 as third row
fluid (string) – whether the gas is ‘dry gas’ or ‘wet gas’
- Returns:
pseudocritical_temp (float) – temperature_pseudocritical (F)
pseudocritical_p (float) – pressure_pseudocritical (psia)
Examples
>>> non_hydrocarbon_properties = make_nonhydrocarbon_properties(0.03, 0.012, 0.018) >>> points_pseudocritical_Sutton(0.65, non_hydrocarbon_properties, "dry gas") (-102.21827232417752, 648.510797253794) >>> non_hydrocarbon_properties = make_nonhydrocarbon_properties(0.05, 0.01, 0.04) >>> points_pseudocritical_Sutton(0.8, non_hydrocarbon_properties, "wet gas") (-72.20351526841193, 653.2582064200534)
- bluebonnet.fluids.gas.pseudopressure_Hussainy(temperature: float, pressure: float, temperature_pseudocritical: float, pressure_pseudocritical: float, specific_gravity: float, pressure_standard: float = 14.7) float[source]¶
Calculate the pseudopressure for gas using Al Hussainy (1966).
- Parameters:
temperature (float) – reservoir temperature in Fahrenheit.
pressure (float) – reservoir pressure in psia
temperature_pseudocritical (float) – pseudocritical temperature in Fahrenheit.
pressure_pseudocritical (float) – pseudocritical pressure in psia
specific_gravity (float) – specific gravity relative to air (density/density)
- Returns:
m – pseudopressure (psi^2 / centipoise)
- Return type:
float
Examples
>>> pseudopressure_Hussainy(400, 100, -102, 649, 0.65) 593363.7626437937