mbal_perform_param_oil.Rd
Create an object of class 'mbal_oil'
mbal_perform_param_oil( input_unit = "Field", output_unit = "Field", aquifer_model = NULL, N = NULL, m = NULL, phi = NULL, swi = NULL, Np = NULL, Rp = NULL, Wp = NULL, Gi = NULL, Wi = NULL, We = NULL, pb = NULL, p = NULL, pvt = NULL, cf = NULL, phi_a = NULL, perm_h_a = NULL, perm_v_a = NULL, h_a = NULL, r_a = NULL, r_R = NULL, w_a = NULL, l_a = NULL, tetha = NULL, muw_a = NULL, cw_a = NULL, cf_a = NULL, wf = NULL, sorg = NULL, sorw = NULL )
input_unit | a unit system for parameters, only the character string 'Field' is accepted |
---|---|
output_unit | a unit system for properties, only the character string 'Field' is accepted |
aquifer_model | defaulted to |
N | original oil in place, STB |
m | ratio of original gas cap volume to original oil leg volume, a numeric fraction |
phi | reservoir porosity, a numeric fraction |
swi | initial water saturation in the reservoir, a numeric fraction |
Np | cumulative oil production, STB |
Rp | ratio of cumulative produced gas to cumulative produced oil |
Wp | cumulative water production, STB |
Gi | cumulative gas injection, SCF |
Wi | cumulative water injection, STB |
We | cumulative aquifer water influx, BBL |
pb | bubble point pressure, a numeric value, psi |
p | reservoir pressure, a numeric vector, psi |
pvt | a data frame of PVT properties including pressure 'p' in 'psi', oil formation volume factor 'Bo' in 'bbl/stb', solution gas-oil ratio 'Rs' in 'scf/stb', oil viscosity 'muo' in 'cp', volatilized oil-gas ratio 'Rv' in 'stb/scf', gas formation volume factor 'Bg' in 'bbl/scf', gas viscosity 'mug' in 'cp', water formation volume factor 'Bw' in 'bbl/stb', and water viscosity 'muw' in 'cp' |
cf | formation compressibility, a numeric value or vector, 1/psi |
phi_a | aquifer porosity, a numeric fraction |
perm_h_a | aquifer horizontal permeability, md. Used in 'uss_rad_edge', 'uss_rad_bottom', 'uss_lin_edge', 'pss_rad_edge', 'pss_lin_edge' and 'pot' aquifer models |
perm_v_a | vertical permeability, md. Used in 'uss_rad_bottom', 'uss_lin_bottom', 'pss_rad_bottom', and 'pss_lin_bottom' aquifer models |
h_a | aquifer height, ft |
r_a | aquifer radius, ft. Used in 'uss_rad_edge', 'uss_rad_bottom', 'pss_rad_edge', and 'pot' aquifer models |
r_R | reservoir radius, ft. Used in 'uss_rad_edge', 'uss_rad_bottom', 'pss_rad_edge', and 'pot' aquifer models |
w_a | aquifer width, ft. Used in 'uss_lin_edge', 'uss_lin_bottom', 'pss_lin_edge', and 'pss_lin_bottom' aquifer models |
l_a | aquifer length, ft. Used in 'uss_lin_edge', 'uss_lin_bottom', 'pss_lin_edge', and 'pss_lin_bottom' aquifer models |
tetha | fraction of reservoir encircled by the aquifer, degrees. Used in 'uss_rad_edge', 'pss_rad_edge', and 'pot' aquifer models |
muw_a | aquifer water viscosity, cp |
cw_a | aquifer water compressibility, a numeric value, 1/psi |
cf_a | aquifer formation compressibility, a numeric value, 1/psi |
wf | weight factor, a numeric vector of zeros and ones. A zero value excludes the entire row of reservoir history data at a particular time from the material balance analysis |
sorg | residual oil saturation in gas invaded zone (gas cap expansion or gas injection), a numeric fraction |
sorw | residual oil saturation in water invaded zone (aquifer encroachment or water injection), a numeric fraction |
a list of class ’mbal_oil’ with all the required parameters for the mbal_perform_oil() S3 methods
p_pvt <- c(3330, 3150, 3000, 2850, 2700, 2550, 2400) Bo <- c(1.2511, 1.2353, 1.2222, 1.2122, 1.2022, 1.1922, 1.1822) Rs <- c(510, 477, 450, 425, 401, 375, 352) Bg <- c(0.00087, 0.00092, 0.00096, 0.00101, 0.00107, 0.00113, 0.00120) cw <- 2e-6 Bwi <- 1.0 Bw <- Bwi * exp(cw * (p_pvt[1] - p_pvt)) Rv <- rep(0, length(p_pvt)) muo <- rep(0.5, length(p_pvt)) muw <- rep(0.25, length(p_pvt)) mug <- rep(0.02, length(p_pvt)) pvt_table <- data.frame(p = p_pvt, Bo = Bo, Rs = Rs, Rv = Rv, Bg = Bg, Bw = Bw, muo = muo, mug = mug, muw = muw) p <- c(3330, 3150, 3000, 2850, 2700, 2550, 2400) We <- rep(0, length.out = length(p)) Np <- c(0, 3.295, 5.903, 8.852, 11.503, 14.513, 17.730) * 1e6 Rp <- c(0, 1050, 1060, 1160, 1235, 1265, 1300) Wp <- rep(0, length.out = length(p)) Wi <- rep(0, length.out = length(p)) Gi <- rep(0, length.out = length(p)) wf <- c(1, 1, 1, 0, 1, 0, 1) mbal_param_oil_lst <- mbal_perform_param_oil(input_unit = "Field", output_unit = "Field", aquifer_model = NULL, N = 1.37e8, m = 0.377, phi = 0.2, swi = 0.2, Np = Np, Rp = Rp, Wp = Wp, Gi = Gi, Wi = Wi, We = We, pb = 3330, p = p, pvt = pvt_table, cf = 0, wf = wf, sorg = 0.2, sorw = 0) dplyr::glimpse(mbal_param_oil_lst)#> List of 16 #> $ input_unit : chr "Field" #> $ output_unit: chr "Field" #> $ N : num 1.37e+08 #> $ m : num 0.377 #> $ phi : num 0.2 #> $ swi : num 0.2 #> $ pb : num 3330 #> $ p : num [1:7] 3330 3150 3000 2850 2700 2550 2400 #> $ cf : num [1:7] 0 0 0 0 0 0 0 #> $ pvt :'data.frame': 7 obs. of 9 variables: #> ..$ p : num [1:7] 3330 3150 3000 2850 2700 2550 2400 #> ..$ Bo : num [1:7] 1.25 1.24 1.22 1.21 1.2 ... #> ..$ Rs : num [1:7] 510 477 450 425 401 375 352 #> ..$ Rv : num [1:7] 0 0 0 0 0 0 0 #> ..$ Bg : num [1:7] 0.00087 0.00092 0.00096 0.00101 0.00107 0.00113 0.0012 #> ..$ Bw : num [1:7] 1 1 1 1 1 ... #> ..$ muo: num [1:7] 0.5 0.5 0.5 0.5 0.5 0.5 0.5 #> ..$ mug: num [1:7] 0.02 0.02 0.02 0.02 0.02 0.02 0.02 #> ..$ muw: num [1:7] 0.25 0.25 0.25 0.25 0.25 0.25 0.25 #> $ prod :'data.frame': 7 obs. of 3 variables: #> ..$ Np: num [1:7] 0 3295000 5903000 8852000 11503000 ... #> ..$ Rp: num [1:7] 510 1050 1060 1160 1235 ... #> ..$ Wp: num [1:7] 0 0 0 0 0 0 0 #> $ inj :'data.frame': 7 obs. of 2 variables: #> ..$ Gi: num [1:7] 0 0 0 0 0 0 0 #> ..$ Wi: num [1:7] 0 0 0 0 0 0 0 #> $ aquifer :List of 3 #> ..$ input_unit : chr "Field" #> ..$ output_unit: chr "Field" #> ..$ We : num [1:7] 0 0 0 0 0 0 0 #> ..- attr(*, "class")= chr [1:2] "We" "aquifer" #> $ wf : num [1:7] 1 1 1 0 1 0 1 #> $ sorw : num 0 #> $ sorg : num 0.2 #> - attr(*, "class")= chr [1:2] "combination_oil" "mbal_oil"