Correlations for Oil¶
In [15]:
Copied!
import numpy as np
import pandas as pd
import pvtpy.black_oil as bk
from pvtpy.units import Pressure, Temperature
import numpy as np
import pandas as pd
import pvtpy.black_oil as bk
from pvtpy.units import Pressure, Temperature
Bubble Point¶
In [3]:
Copied!
rs1 = 675
p1 = Pressure(value=100, unit="psi")
t1 = Temperature(value=180, unit="farenheit")
api1 = 31
sg = 0.95
bk.pb(
rs = rs1,
temperature = t1,
sg_gas = sg,
api = api1,
method = ["standing","laster",'glaso','vazquez_beggs'],
correction = True,
y_co2 = 0.2,
y_h2s = 0.1
)
rs1 = 675
p1 = Pressure(value=100, unit="psi")
t1 = Temperature(value=180, unit="farenheit")
api1 = 31
sg = 0.95
bk.pb(
rs = rs1,
temperature = t1,
sg_gas = sg,
api = api1,
method = ["standing","laster",'glaso','vazquez_beggs'],
correction = True,
y_co2 = 0.2,
y_h2s = 0.1
)
Out[3]:
pb_standing | pb_laster | pb_vazquez_beggs | pb_glaso | |
---|---|---|---|---|
temp | ||||
180.0 | 2174.376878 | 2189.382402 | 2457.616402 | 2535.616843 |
In [4]:
Copied!
bk.pb(
rs = rs1,
temperature = t1,
sg_gas = sg,
api = api1,
method = 'standing',
correction = True,
y_co2 = 0.2,
y_h2s = 0.1
)
bk.pb(
rs = rs1,
temperature = t1,
sg_gas = sg,
api = api1,
method = 'standing',
correction = True,
y_co2 = 0.2,
y_h2s = 0.1
)
Out[4]:
pb | |
---|---|
temp | |
180.0 | 2174.376878 |
Rs¶
In [5]:
Copied!
pb = Pressure(value=2500, unit="psi")
t2 = Temperature(value=180, unit="farenheit")
api2 = 31
sg = 0.95
pressure = Pressure(value=[4000,2000], unit="psi")
rsb = 673
bk.rs(
pressure = pressure,
pb = pb,
temperature = t2,
api = api2,
sg_gas = sg,
rsb = rsb,
method = 'standing'
)
pb = Pressure(value=2500, unit="psi")
t2 = Temperature(value=180, unit="farenheit")
api2 = 31
sg = 0.95
pressure = Pressure(value=[4000,2000], unit="psi")
rsb = 673
bk.rs(
pressure = pressure,
pb = pb,
temperature = t2,
api = api2,
sg_gas = sg,
rsb = rsb,
method = 'standing'
)
Out[5]:
rs | |
---|---|
pressure | |
4000.0 | 673.360022 |
2000.0 | 516.188402 |
In [6]:
Copied!
bk.rs(
pressure = pressure,
pb = pb,
temperature = t2,
api = api2,
sg_gas = sg,
rsb = rsb,
method = ['standing','vazquez_beggs','laster','glaso','valarde']
)
bk.rs(
pressure = pressure,
pb = pb,
temperature = t2,
api = api2,
sg_gas = sg,
rsb = rsb,
method = ['standing','vazquez_beggs','laster','glaso','valarde']
)
Out[6]:
rs_standing | rs_laster | rs_vazquez_begss | rs_glaso | rs_valarde | |
---|---|---|---|---|---|
pressure | |||||
4000.0 | 673.360022 | 664.351906 | 582.336413 | 559.536021 | 673.000000 |
2000.0 | 516.188402 | 472.933506 | 446.829422 | 432.632499 | 571.883767 |
co¶
In [7]:
Copied!
pressure4 = Pressure(value=4500, unit="psi")
pb4 = Pressure(value=2500, unit="psi")
temperature4 = Temperature(value=180, unit="farenheit")
api4 = 31
sg4 = 0.95
rs4 = 582
bk.co(
pressure = pressure4,
rs = rs4,
pb = pb4,
temperature=temperature4,
sg_gas = sg4,
api = api4
)
pressure4 = Pressure(value=4500, unit="psi")
pb4 = Pressure(value=2500, unit="psi")
temperature4 = Temperature(value=180, unit="farenheit")
api4 = 31
sg4 = 0.95
rs4 = 582
bk.co(
pressure = pressure4,
rs = rs4,
pb = pb4,
temperature=temperature4,
sg_gas = sg4,
api = api4
)
Out[7]:
co | |
---|---|
pressure | |
4500.0 | 0.000009 |
Bo¶
In [8]:
Copied!
pressure3 = Pressure(value=[2000,2500,3000,3500], unit="psi")
pb3 = Pressure(value=2500, unit="psi")
temperature3 = Temperature(value=180, unit="farenheit")
api3 = 31
sg3 = 0.95
co = 9.61e-6
rs3 = [516,673,673,673]
co = bk.co(
pressure = pressure3,
rs = rs3,
pb = pb3,
temperature=temperature3,
sg_gas = sg3,
api = api3
)
print(co)
bk.bo(
pressure = pressure3,
rs = rs3,
pb = pb3,
temperature = temperature3,
api = api3,
sg_gas = sg3,
co = co['co'].values,
method = 'standing'
).plot()
pressure3 = Pressure(value=[2000,2500,3000,3500], unit="psi")
pb3 = Pressure(value=2500, unit="psi")
temperature3 = Temperature(value=180, unit="farenheit")
api3 = 31
sg3 = 0.95
co = 9.61e-6
rs3 = [516,673,673,673]
co = bk.co(
pressure = pressure3,
rs = rs3,
pb = pb3,
temperature=temperature3,
sg_gas = sg3,
api = api3
)
print(co)
bk.bo(
pressure = pressure3,
rs = rs3,
pb = pb3,
temperature = temperature3,
api = api3,
sg_gas = sg3,
co = co['co'].values,
method = 'standing'
).plot()
co pressure 2000.0 0.000027 2500.0 0.000017 3000.0 0.000014 3500.0 0.000012
Out[8]:
<AxesSubplot:xlabel='pressure'>
In [9]:
Copied!
bk.bo(
pressure = pressure3,
rs = rs3,
pb = pb3,
temperature = temperature3,
api = api3,
sg_gas = sg3,
co = co['co'].values,
method = ['standing','vazquez_beggs','glaso']
)
bk.bo(
pressure = pressure3,
rs = rs3,
pb = pb3,
temperature = temperature3,
api = api3,
sg_gas = sg3,
co = co['co'].values,
method = ['standing','vazquez_beggs','glaso']
)
Out[9]:
bo_standing | bo_vazquez_beggs | bo_glaso | |
---|---|---|---|
pressure | |||
2000.0 | 1.321735 | 1.286747 | 1.298191 |
2500.0 | 1.412629 | 1.360888 | 1.390969 |
3000.0 | 1.402546 | 1.351175 | 1.381040 |
3500.0 | 1.395388 | 1.344279 | 1.373992 |
Muod¶
In [10]:
Copied!
temperature5 = Temperature(value=[180,250], unit="farenheit")
api5 = 31
bk.muod(
temperature = temperature5,
api = api5,
method = 'beal'
)
temperature5 = Temperature(value=[180,250], unit="farenheit")
api5 = 31
bk.muod(
temperature = temperature5,
api = api5,
method = 'beal'
)
Out[10]:
muod | |
---|---|
temp | |
180.0 | 2.654527 |
250.0 | 1.140414 |
In [11]:
Copied!
bk.muod(
temperature = temperature5,
api = api5,
method = ['beal','beggs','glaso']
)
bk.muod(
temperature = temperature5,
api = api5,
method = ['beal','beggs','glaso']
)
Out[11]:
muod_beal | muod_beggs | muod_glaso | |
---|---|---|---|
temp | |||
180.0 | 2.654527 | 3.035358 | 2.758240 |
250.0 | 1.140414 | 1.591139 | 1.602075 |
Muo¶
In [12]:
Copied!
pressure6 = Pressure(value=[4500,3000,2500,2000,1500], unit="psi")
rs6 = [673,673,673,516,415]
pb6 = Pressure(value=2500, unit="psi")
rsb6 = 673
temperature6 = Temperature(value=180, unit="farenheit")
api6 = 31
bk.muo(
pressure = pressure6,
rs = rs6,
pb = pb6,
rsb = rsb6,
temperature = temperature6,
api = api6
)
pressure6 = Pressure(value=[4500,3000,2500,2000,1500], unit="psi")
rs6 = [673,673,673,516,415]
pb6 = Pressure(value=2500, unit="psi")
rsb6 = 673
temperature6 = Temperature(value=180, unit="farenheit")
api6 = 31
bk.muo(
pressure = pressure6,
rs = rs6,
pb = pb6,
rsb = rsb6,
temperature = temperature6,
api = api6
)
Out[12]:
muo | |
---|---|
pressure | |
4500.0 | 0.753756 |
3000.0 | 0.634152 |
2500.0 | 0.604104 |
2000.0 | 0.707262 |
1500.0 | 0.802196 |
Rho¶
In [13]:
Copied!
pressure7 = Pressure(value=[4500,3000,2500,2000,1500], unit="psi")
rs7 = [673,673,673,516,415]
pb7 = Pressure(value=2500, unit="psi")
rsb7 = 673
bob = 1.3
temperature7 = Temperature(value=180, unit="farenheit")
api7 = 31
sg7 = 0.95
co = bk.co(
pressure = pressure7,
rs = rs7,
pb = pb7,
temperature=temperature7,
sg_gas = sg7,
api = api7
)
print(co)
bo = bk.bo(
pressure = pressure7,
rs = rs7,
pb = pb7,
temperature = temperature7,
api = api7,
sg_gas = sg7,
co = co['co'].values,
method = 'standing'
)
bk.rho_oil(
pressure = pressure7,
co = co['co'].values,
bo = bo['bo'].values,
bob = bo.loc[2500,'bo'],
rs = rs7,
rsb = 673,
api = api7,
pb = pb7
).plot()
pressure7 = Pressure(value=[4500,3000,2500,2000,1500], unit="psi")
rs7 = [673,673,673,516,415]
pb7 = Pressure(value=2500, unit="psi")
rsb7 = 673
bob = 1.3
temperature7 = Temperature(value=180, unit="farenheit")
api7 = 31
sg7 = 0.95
co = bk.co(
pressure = pressure7,
rs = rs7,
pb = pb7,
temperature=temperature7,
sg_gas = sg7,
api = api7
)
print(co)
bo = bk.bo(
pressure = pressure7,
rs = rs7,
pb = pb7,
temperature = temperature7,
api = api7,
sg_gas = sg7,
co = co['co'].values,
method = 'standing'
)
bk.rho_oil(
pressure = pressure7,
co = co['co'].values,
bo = bo['bo'].values,
bob = bo.loc[2500,'bo'],
rs = rs7,
rsb = 673,
api = api7,
pb = pb7
).plot()
co pressure 4500.0 0.000010 3000.0 0.000014 2500.0 0.000017 2000.0 0.000027 1500.0 0.000041
Out[13]:
<AxesSubplot:xlabel='pressure'>
In [ ]:
Copied!