bluebonnet.fluids.oil ===================== .. py:module:: bluebonnet.fluids.oil .. autoapi-nested-parse:: Oil PVT properties. Functions --------- .. autoapisummary:: bluebonnet.fluids.oil.b_o_Standing bluebonnet.fluids.oil.pressure_bubblepoint_Standing bluebonnet.fluids.oil.b_o_bubblepoint_Standing bluebonnet.fluids.oil.db_o_dgor_Standing bluebonnet.fluids.oil.solution_gor_Standing bluebonnet.fluids.oil.dgor_dpressure_Standing bluebonnet.fluids.oil.oil_compressibility_undersat_Standing bluebonnet.fluids.oil.oil_compressibility_undersat_Spivey bluebonnet.fluids.oil.oil_compressibility_Standing bluebonnet.fluids.oil.density_Standing bluebonnet.fluids.oil.viscosity_beggs_robinson Module Contents --------------- .. py:function:: b_o_Standing(temperature: float, pressure: numpy.typing.NDArray | float, api_gravity: float, gas_specific_gravity: float, solution_gor_initial: float) -> numpy.typing.NDArray | float Calculate the oil formation volume factor (Bo) using Standing. :param temperature: reservoir temperature in Fahrenheit. :type temperature: float :param pressure: reservoir pressure (psia) :type pressure: float :param api_gravity: Oil gravity in degrees API. :type api_gravity: float :param gas_specific_gravity: Gas gravity relative to air. :type gas_specific_gravity: float :param solution_gor_initial: Initial gas:oil ratio in scf/bbl. :type solution_gor_initial: float :returns: Bo, the formation volume factor (V/V) :rtype: float .. rubric:: Examples >>> b_o_Standing(200, 3_000, 35, 0.8, 650) >>> b_o_Standing(200, 2_000, 35, 0.8, 650) 1.2820114682225974 .. py:function:: pressure_bubblepoint_Standing(temperature: float, api_gravity: float, gas_specific_gravity: float, solution_gor_initial: float) -> float Calculate the bubble point pressure using Standing. :param temperature: reservoir temperature in Fahrenheit. :type temperature: float :param api_gravity: Oil gravity in degrees API. :type api_gravity: float :param gas_specific_gravity: Gas gravity relative to air. :type gas_specific_gravity: float :param solution_gor_initial: Gas: oil ratio in scf/bbl. :type solution_gor_initial: float :returns: **p_b** -- Bubble point pressure in psia. :rtype: float .. rubric:: Examples >>> pressure_bubblepoint_Standing(200, 35, 0.8, 650) 2627.2017021875276 .. py:function:: b_o_bubblepoint_Standing(temperature: float, api_gravity: float, gas_specific_gravity: float, solution_gor_initial: numpy.typing.NDArray | float) -> numpy.typing.NDArray | float Calculate the oil formation volume factor (Bo) at the bubble point using Standing. :param temperature: reservoir temperature in Fahrenheit. :type temperature: float :param api_gravity: Oil gravity in degrees API. :type api_gravity: float :param gas_specific_gravity: Gas gravity relative to air. :type gas_specific_gravity: float :param solution_gor_initial: Initial gas:oil ratio in scf/bbl. :type solution_gor_initial: NDArray :returns: **b_o** -- Oil formation volume factor (rb/stb) :rtype: NDArray .. rubric:: Example >>> b_o_bubblepoint_Standing(200, 35, 0.8, 650) 1.3860514623492897 .. py:function:: db_o_dgor_Standing(temperature: float, api_gravity: float, gas_specific_gravity: float, solution_gor_initial: float) -> float Calculate the derivative of Bo per solution GOR at the bubble point. :param temperature: reservoir temperature in Fahrenheit. :type temperature: float :param api_gravity: Oil gravity in degrees API. :type api_gravity: float :param gas_specific_gravity: Gas gravity relative to air. :type gas_specific_gravity: float :param solution_gor_initial: Initial gas:oil ratio in scf/bbl. :type solution_gor_initial: NDArray :returns: **dbo_dgor** -- Change in Oil formation volume factor per unit GOR (rb/stb / (scf/bbl)) :rtype: NDArray .. rubric:: Example >>> db_o_dgor_Standing(200, 35, 0.8, 650) .. py:function:: solution_gor_Standing(temperature: float, pressure: numpy.typing.NDArray | float, api_gravity: float, gas_specific_gravity: float, solution_gor_initial: float) -> numpy.typing.NDArray | float Calculate the solution GOR partition using Standing. :param temperature: reservoir temperature in Fahrenheit. :type temperature: float :param pressure: reservoir pressure (psia) :type pressure: float or array :param api_gravity: Oil gravity in degrees API. :type api_gravity: float :param gas_specific_gravity: Gas gravity relative to air. :type gas_specific_gravity: float :param solution_gor_initial: Gas: oil ratio in scf/bbl. :type solution_gor_initial: float :returns: **gor** -- Solution GOR in scf/stb :rtype: float .. rubric:: Examples >>> solution_gor_Standing(200, 3_000, 35, 0.8, 650) 650 >>> solution_gor_Standing(200, 2_000, 35, 0.8, 650) 453.6099792270382 .. py:function:: dgor_dpressure_Standing(temperature: float, pressure: float, api_gravity: float, gas_specific_gravity: float, solution_gor_initial: float) -> float Calculate the instantaneous change in GOR with pressure using Standing. :param temperature: reservoir temperature in Fahrenheit. :type temperature: float :param pressure: reservoir pressure (psia) :type pressure: float :param api_gravity: Oil gravity in degrees API. :type api_gravity: float :param gas_specific_gravity: Gas gravity relative to air. :type gas_specific_gravity: float :param solution_gor_initial: Initial gas:oil ratio in scf/bbl. :type solution_gor_initial: float :returns: **dgor** -- Change in GOR per pressure ( scf / scf / psi). :math:`\partial R_s/\partial p` :rtype: float .. rubric:: Examples >>> dgor_dpressure_Standing(200, 3_000, 35, 0.8, 650) 0 >>> dgor_dpressure_Standing(200, 2_000, 35, 0.8, 650) 0.2824395998221715 .. py:function:: oil_compressibility_undersat_Standing(temperature: float, pressure: float, api_gravity: float, gas_specific_gravity: float, solution_gor_initial: float) -> float Calculate the oil compressibility (c_o) using Standing. :param temperature: reservoir temperature in Fahrenheit. :type temperature: float :param pressure: reservoir pressure (psia) :type pressure: float :param api_gravity: Oil gravity in degrees API. :type api_gravity: float :param gas_specific_gravity: Gas gravity relative to air. :type gas_specific_gravity: float :param solution_gor_initial: Initial gas:oil ratio in scf/bbl. :type solution_gor_initial: float :returns: **c_o** -- oil compressibility in 1/psi :rtype: float .. rubric:: Example >>> oil_compressibility_undersat_Standing(200, 3_000, 35, 0.8, 650) 1.478788544207282e-05 .. py:function:: oil_compressibility_undersat_Spivey(temperature: float, pressure: numpy.typing.NDArray | float, api_gravity: float, gas_specific_gravity: float, solution_gor_initial: float) -> numpy.typing.NDArray | float Calculate the oil compressibility (c_o) using Spivey. :param temperature: reservoir temperature in Fahrenheit. :type temperature: float :param pressure: reservoir pressure (psia) :type pressure: float or array :param api_gravity: Oil gravity in degrees API. :type api_gravity: float :param gas_specific_gravity: Gas gravity relative to air. :type gas_specific_gravity: float :param solution_gor_initial: Initial gas:oil ratio in scf/bbl. :type solution_gor_initial: float :returns: **c_o** -- oil compressibility in 1/psi :rtype: float .. rubric:: Examples >>> oil_compressibility_undersat_Spivey(200, 3_000, 35, 0.8, 650) 9.177554347361075e-06 .. py:function:: oil_compressibility_Standing(temperature: float, pressure: float, api_gravity: float, gas_specific_gravity: float, solution_gor_initial: float, temperature_pseudocritical: float, pressure_pseudocritical: float, temperature_standard: float = 60, pressure_standard: float = 14.7) -> float Calculate the oil formation volume factor (Bo) using Standing. :param temperature: reservoir temperature in Fahrenheit. :type temperature: float :param pressure: reservoir pressure (psia) :type pressure: float :param api_gravity: Oil gravity in degrees API. :type api_gravity: float :param gas_specific_gravity: Gas gravity relative to air. :type gas_specific_gravity: float :param solution_gor_initial: Initial gas:oil ratio in scf/bbl. :type solution_gor_initial: float :param pressure_pseudocritical: Gas pseudocritical pressure (use gas module) in psia :type pressure_pseudocritical: float :param temperature_pseudocritical: Gas pseudocritical temperature (use gas module) in F :type temperature_pseudocritical: float :param temperature_standard: standard temperature in F (default: 60) :type temperature_standard: float :param pressure_standard: standard pressure in psia (default: 14.70) :type pressure_standard: float :returns: **c_o** -- oil compressibility in 1/psi :rtype: float .. rubric:: Examples >>> oil_compressibility_Standing(200, 3000, 35, 0.8, 650, -72.2, 653) >>> oil_compressibility_Standing(200, 2000, 35, 0.8, 650, -72.2, 653) .. py:function:: density_Standing(temperature: float, pressure: float, api_gravity: float, gas_specific_gravity: float, solution_gor_initial: float) -> float Calculate the oil density using Standing. :param temperature: reservoir temperature in Fahrenheit. :type temperature: float :param pressure: reservoir pressure (psia) :type pressure: float :param api_gravity: Oil gravity in degrees API. :type api_gravity: float :param gas_specific_gravity: Gas gravity relative to air. :type gas_specific_gravity: float :param solution_gor_initial: Initial gas:oil ratio in scf/bbl. :type solution_gor_initial: float :returns: **rho_o** -- oil density (lb/ft^3) :rtype: float .. rubric:: Examples >>> density_Standing(200, 2000, 35, 0.8, 650) 44.989365953905136 .. py:function:: viscosity_beggs_robinson(temperature: float, pressure: float, api_gravity: float, gas_specific_gravity: float, solution_gor_initial: float) -> float Calculate the oil viscosity using Beggs-Robinson. :param temperature: reservoir temperature in Fahrenheit. :type temperature: float :param pressure: reservoir pressure (psia) :type pressure: float :param api_gravity: Oil gravity in degrees API. :type api_gravity: float :param gas_specific_gravity: Gas gravity relative to air. :type gas_specific_gravity: float :param solution_gor_initial: Initial gas:oil ratio in scf/bbl. :type solution_gor_initial: float :returns: **mu_o** -- :math:`\mu_o`, the oil viscosity :rtype: float