Package 'Raquifer'

Title: Estimate the Water Influx into Hydrocarbon Reservoirs
Description: Generate a table of cumulative water influx into hydrocarbon reservoirs over time using un-steady and pseudo-steady state models. Van Everdingen, A. F. and Hurst, W. (1949) <doi:10.2118/949305-G>. Fetkovich, M. J. (1971) <doi:10.2118/2603-PA>. Yildiz, T. and Khosravi, A. (2007) <doi:10.2118/103283-PA>.
Authors: Farshad Tabasinejad [aut, cre]
Maintainer: Farshad Tabasinejad <[email protected]>
License: GPL-3
Version: 0.1.0
Built: 2025-02-12 05:27:20 UTC
Source: https://github.com/cran/Raquifer

Help Index


A list object for aquifer prameters

Description

Create an object of class 'aquifer'

Usage

aquifer_param(
  input_unit = NULL,
  output_unit = NULL,
  model = NULL,
  flow_type = NULL,
  water_drive = NULL,
  phi = NULL,
  perm_h = NULL,
  perm_v = NULL,
  h_a = NULL,
  r_a = NULL,
  r_R = NULL,
  w_a = NULL,
  l_a = NULL,
  tetha = NULL,
  mu_water = NULL,
  c_water = NULL,
  c_rock = NULL,
  pressure = NULL
)

Arguments

input_unit

a unit system for parameters, a character string either 'SI' or 'Field'

output_unit

a unit system for properties, a character string either 'SI' or 'Field'

model

state of flow in the aquifer, a character string either 'uss' for the un-steady state flow or 'pss' for the pseudo-steady state flow

flow_type

a character string either 'radial' or 'linear'

water_drive

a character string either 'edge' or 'bottom'

phi

aquifer porosity, a numeric fraction

perm_h

aquifer horizontal permeability in 'md' in both 'SI' and 'Field' input unit systems. A NULL value must be used for the combination of 'uss', 'linear', and 'bottom' flow

perm_v

aquifer vertical permeability in 'md' in both 'SI' and 'Field' input unit systems. A NULL value must be used for the combination of 'uss', 'linear', 'edge' flow. A NULL value must be used for the combination of 'uss', 'radial', 'edge' flow. A NULL value must be used for the combination of 'pss', 'radial', 'edge' flow.

h_a

aquifer height in 'm' or 'ft' in 'SI' and 'Field' input unit systems, respectively.

r_a

aquifer radius in 'm' or 'ft' in 'SI' and 'Field' input unit systems, respectively. A NULL value must be used for the combination of 'uss', 'linear', 'edge' flow. A NULL value must be used for the combination of 'uss', 'linear', 'bottom' flow.

r_R

reservoir radius in 'm' or 'ft' in 'SI' and 'Field' input unit systems, respectively. A NULL value must be used for the combination of 'uss', 'linear', 'edge' flow. A NULL value must be used for the combination of 'uss', 'linear', 'bottom' flow.

w_a

aquifer width in 'm' or 'ft' in 'SI' and 'Field' input unit systems, respectively. A NULL value must be used for the combination of 'uss', 'radial', 'edge' flow. A NULL value must be used for the combination of 'uss', 'radial', 'bottom' flow. A NULL value must be used for the combination of 'pss', 'radial', 'edge' flow.

l_a

aquifer length in 'm' or 'ft' in 'SI' and 'Field' input unit systems, respectively. A NULL value must be used for the combination of 'uss', 'radial', 'edge' flow. A NULL value must be used for the combination of 'uss', 'radial', 'bottom' flow. A NULL value must be used for the combination of 'pss', 'radial', 'edge' flow.

tetha

fraction of reservoir encircled by the aquifer, reported in "degrees" in both 'SI' and 'Field' input unit systems. A NULL value must be used for the combination of 'uss', 'radial', 'bottom' flow. A NULL value must be used for the combination of 'uss', 'linear', 'edge' flow. A NULL value must be used for the combination of 'uss', 'linear', 'bottom' flow.

mu_water

water viscosity in 'mPa.s' or 'cp' in 'SI' and 'Field' input unit systems, respectively

c_water

water compressibility in '1/kPa' or '1/psi' in 'SI' and 'Field' input unit systems, respectively

c_rock

rock compressibility in '1/kPa' or '1/psi' in 'SI' and 'Field' input unit systems, respectively

pressure

a numeric vector of pressure data at the boundary of reservoir/aquifer. Must have the same length as the 'aquifer_time()' object

Value

a list of class 'aquifer' with all the required parameters for the aquifer_predict() S3 methods

Examples

aquifer_param_01 <- aquifer_param(input_unit = "Field", output_unit = "Field",
model = "uss", flow_type = "radial", water_drive = "edge", phi = 0.2, perm_h = 100,
h_a = 47, r_a = 2e4, r_R = 2e3, tetha = 360, mu_water = 0.34, c_water = 4e-6,
c_rock = 3e-6, pressure = c(3456, 3425, 3387, 3350, 3312))

aquifer_param_01

aquifer_param_02 <- aquifer_param(input_unit = "SI", output_unit = "SI",
model = "uss", flow_type = "radial", water_drive = "bottom", phi = 0.2, perm_h = 100,
perm_v = 25, h_a = 25, r_a = 6000, r_R = 600, mu_water = 0.34, c_water = 6e-7,
c_rock = 4.5e-7, pressure = c(3456, 3425, 3387, 3350, 3312) * 6.895)

aquifer_param_02

aquifer_param_03 <- aquifer_param(input_unit = "Field", output_unit = "Field",
model = "pss", flow_type = "radial", water_drive = "edge", phi = 0.2, perm_h = 100,
h_a = 47, r_a = 2e4, r_R = 2e3, tetha = 360, mu_water = 0.34, c_water = 4e-6,
c_rock = 3e-6, pressure = c(3456, 3425, 3387, 3350, 3312))

aquifer_param_03

aquifer_param_04 <- aquifer_param(input_unit = "Field", output_unit = "Field",
model = "uss", flow_type = "linear", water_drive = "edge", phi = 0.2, perm_h = 100,
h_a = 47, w_a = 30000, l_a = 10000, mu_water = 0.34, c_water = 4e-6,
c_rock = 3e-6, pressure = c(3456, 3425, 3387, 3350, 3312))

aquifer_param_04

aquifer_param_05 <- aquifer_param(input_unit = "Field", output_unit = "Field",
model = "uss", flow_type = "linear", water_drive = "bottom", phi = 0.2, perm_v = 10,
h_a = 47, w_a = 4000, l_a = 4000, mu_water = 0.34, c_water = 4e-6,
c_rock = 3e-6, pressure = c(3456, 3425, 3387, 3350, 3312))

aquifer_param_05

Generic function for cumulative water influx predictions

Description

Generate a data frame of cumulative water influx estimates according to the class of 'aquifer_lst' and 'time_lst' objects

Usage

aquifer_predict(aquifer_lst, time_lst)

Arguments

aquifer_lst

a list object of class 'aquifer'

time_lst

a list object of class 'time'

Value

a data frame of cumulative water influx estimates according to the class of 'aquifer_lst' and 'time_lst' objects

References

Yildiz T, Khosravi A (2007). “An Analytical Bottomwaterdrive Aquifer Model for Material-Balance Analysis.” SPE Reservoir Evaluation & Engineering, 10(06), 618–628. ISSN 1094-6470, doi:10.2118/103283-PA.

Nabor GW, Barham RH (1964). “Linear Aquifer Behavior.” Journal of Petroleum Technology, 16(05), 561–563. ISSN 0149-2136, doi:10.2118/791-PA.

Fetkovich MJ (1971). “A Simplified Approach to Water Influx Calculations-Finite Aquifer Systems.” Journal of Petroleum Technology, 23(07), 814–828. ISSN 0149-2136, doi:10.2118/2603-PA.

Van Everdingen AF, Hurst W (1949). “The Application of the Laplace Transformation to Flow Problems in Reservoirs.” Journal of Petroleum Technology, 1(12), 305–324. ISSN 0149-2136, doi:10.2118/949305-G.

Examples

aquifer_time_1 <- aquifer_time(c(0:4) * 365, unit = "day")
aquifer_param_01 <- aquifer_param(input_unit = "Field", output_unit = "Field",
model = "uss", flow_type = "radial", water_drive = "edge", phi = 0.2, perm_h = 100,
h_a = 47, r_a = 2e4, r_R = 2e3, tetha = 360, mu_water = 0.34, c_water = 4e-6,
c_rock = 3e-6, pressure = c(3456, 3425, 3387, 3350, 3312))
results_01 <- aquifer_predict(aquifer_param_01, aquifer_time_1)

results_01

S3 method for class 'aquifer_predict'

Description

Return a data frame of estimated cumulative water influx for the Fetkovich pseudo-steady state linear flow model, bottom-water-drive

Usage

## S3 method for class 'fetk_lin_bottom'
aquifer_predict(aquifer_lst, time_lst)

Arguments

aquifer_lst

a list object of class 'aquifer'

time_lst

a list object of class 'time'

Value

a data frame of cumulative water influx estimates using the Fetkovich pseudo-steady state linear flow model, bottom-water-drive


S3 method for class 'aquifer_predict'

Description

Return a data frame of estimated cumulative water influx for the Fetkovich pseudo-steady state linear flow model, edge-water-drive

Usage

## S3 method for class 'fetk_lin_edge'
aquifer_predict(aquifer_lst, time_lst)

Arguments

aquifer_lst

a list object of class 'aquifer'

time_lst

a list object of class 'time'

Value

a data frame of cumulative water influx estimates using the Fetkovich pseudo-steady state linear flow model, edge-water-drive


S3 method for class 'aquifer_predict'

Description

Return a data frame of estimated cumulative water influx for the Fetkovich pseudo-steady state radial flow model, edge-water-drive

Usage

## S3 method for class 'fetk_rad_edge'
aquifer_predict(aquifer_lst, time_lst)

Arguments

aquifer_lst

a list object of class 'aquifer'

time_lst

a list object of class 'time'

Value

a data frame of cumulative water influx estimates using the Fetkovich pseudo-steady state radial flow model, edge-water-drive


S3 method for class 'aquifer_predict'

Description

Return a data frame of estimated cumulative water influx for the Nabor-Barham un-steady state linear flow model, bottom-water-drive

Usage

## S3 method for class 'nb_lin_bottom'
aquifer_predict(aquifer_lst, time_lst)

Arguments

aquifer_lst

a list object of class 'aquifer'

time_lst

a list object of class 'time'

Value

a data frame of cumulative water influx estimates using the Nabor-Barham un-steady state linear flow model, bottom-water-drive


S3 method for class 'aquifer_predict'

Description

Return a data frame of estimated cumulative water influx for the Nabor-Barham un-steady state linear flow model, edge-water-drive

Usage

## S3 method for class 'nb_lin_edge'
aquifer_predict(aquifer_lst, time_lst)

Arguments

aquifer_lst

a list object of class 'aquifer'

time_lst

a list object of class 'time'

Value

a data frame of cumulative water influx estimates using the Nabor-Barham un-steady state linear flow model, edge-water-drive


S3 method for class 'aquifer_predict'

Description

Return a data frame of estimated cumulative water influx for the Van Everdingen-Hurst un-steady state radial flow model, edge-water-drive

Usage

## S3 method for class 'veh_rad_edge'
aquifer_predict(aquifer_lst, time_lst)

Arguments

aquifer_lst

a list object of class 'aquifer'

time_lst

a list object of class 'time'

Value

a data frame of cumulative water influx estimates using the Van Everdingen-Hurst un-steady state radial flow model, edge-water-drive


S3 method for class 'aquifer_predict'

Description

Return a data frame of estimated cumulative water influx for the Yildiz-Khosravi un-steady state radial flow model, bottom-water-drive

Usage

## S3 method for class 'ykh_rad_bottom'
aquifer_predict(aquifer_lst, time_lst)

Arguments

aquifer_lst

a list object of class 'aquifer'

time_lst

a list object of class 'time'

Value

a data frame of cumulative water influx estimates using the Yildiz-Khosravi un-steady state radial flow model, bottom-water-drive


A list object of class 'time' for aquifer models

Description

Create an object of class 'time'

Usage

aquifer_time(x, unit = "day")

Arguments

x

a vector of times or a daily sequence of dates

unit

time/date unit of vector x

Value

a list of class 'time' with all the required parameters for the aquifer_predict() S3 methods

Examples

aquifer_time_1 <- aquifer_time(c(0:4) * 365, unit = "day")

aquifer_time_1

aquifer_time_2 <- aquifer_time(c(0:4), unit = "month")

aquifer_time_2

aquifer_time_3 <- aquifer_time(c(0:4), unit = "year")

aquifer_time_3

aquifer_time_4 <- aquifer_time(seq(as.Date("2020/1/1"), by = "year",
length.out = 5), unit = "date")

aquifer_time_4