mbal_optim_param_oil: A list object of class 'optimization_oil' for material...

Description Usage Arguments Value Examples

View source: R/mbal_oil_optim.R

Description

Create an object of class 'optimization_oil'

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
mbal_optim_param_oil(
  input_unit = "Field",
  output_unit = "Field",
  unknown_param = NULL,
  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,
  mult_len = NULL,
  lower = NULL,
  upper = NULL,
  control = NULL
)

Arguments

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

unknown_param

a character string showing the unknown parameter(s). One of the following options: 'N', 'm', 'We', or 'N_m'

aquifer_model

defaulted to NULL, otherwise must be a character string, one of the following eight options: 'uss_rad_edge', 'uss_rad_bottom', 'uss_lin_edge', 'uss_lin_bottom', 'pss_rad_edge', 'pss_lin_edge', 'pss_lin_bottom', 'pot'. For further information about each model, please see 'Raquifer' package reference manual (https://cran.r-project.org/web/packages/Raquifer/index.html)

N

original oil in place, STB. If unknown, a NULL value must be assigned

m

ratio of original gas cap volume to original oil leg volume, a numeric. If unknown, a NULL value must be assigned

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. If unknown, a NULL value must be assigned

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

mult_len

a numeric vector of initial estimates for the 'aquifer_model' parameters A vector of length one for the 'pot' aquifer model. It applies as a multiplier to the radius of the aquifer A vector of length two for the 'uss_rad_edge', and 'pss_rad_edge' aquifer models. The first parameter is applied as a multiplier to the aquifer radius, and the second parameter is applied as a multiplier to the aquifer horizontal permeability A vector of length two for the 'uss_lin_edge', and 'pss_lin_edge' aquifer models. The first parameter is applied as a multiplier to the aquifer length, and the second parameter is applied as a multiplier to the aquifer horizontal permeability A vector of length two for the 'uss_lin_bottom', and 'pss_lin_bottom' aquifer models. The first parameter is applied as a multiplier to the aquifer height, and the second parameter is applied as a multiplier to the aquifer vertical permeability A vector of length three for the 'uss_rad_bottom' aquifer model. The first parameter is applied as a multiplier to the aquifer radius, the second parameter is applied as a multiplier to the aquifer horizontal permeability, and the third parameter is applied as a multiplier to the aquifer vertical permeability

lower

an optional numeric vector of lower bounds for the 'aquifer_model' parameters. See 'minpack.lm' package for details

upper

an optional numeric vector of upper bounds for the 'aquifer_model' parameters. See 'minpack.lm' package for details

control

an optional list of control settings. See 'minpack.lm' package for details

Value

a list of class 'mbal_oil' with all the required parameters for the mbal_perform_oil() S3 methods

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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_optim_oil_lst <- mbal_optim_param_oil(input_unit = "Field",
output_unit = "Field", unknown_param = "N_m", aquifer_model = NULL,
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_optim_oil_lst)

Rmbal documentation built on July 8, 2020, 7:16 p.m.