Raquifer"

knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

Raquifer

Raquifer estimates the cumulative water influx into hydrocarbon reservoirs using un-steady and pseudo-steady state modeling approaches. It generates a data frame of cumulative water influx over time for edge-drive and bottom-drive aquifers. Van Everdingen and Hurst un-steady state model for the constant terminal pressure solution predicts the cumulative influx for edge-water drive aquifers with radial flow [@VanEverdingen1949]. For the bottom-water drive aquifers with linear/radial flow, the Yildiz-Khosravi un-steady state model for the constant terminal pressure solution is used [@Yildiz2007]. Nabor and Barham linear flow model for the constant terminal pressure solution is used for the edge-water and bottom-water drive aquifers modeling[@Nabor1964]. For the linear and radial pseudo-steady state flow modeling in aquifers, the Fetkovich method is used [@Fetkovich1971].

Cumulative water influx predictions are generated by three different functions: aquifer_param(), aquifer_time(), and aquifer_predict().

aquifer_param() arguments

aquifer_time() arguments

aquifer_predict() arguments

Installation

The Raquifer can be installed from CRAN with:

install.packages("Raquifer")

Examples

Example 1: Un-steady state radial flow, edge-water drive

library(Raquifer)
library(ggplot2)
library(magrittr)

aqu_time <- aquifer_time(x = c(0,0.368,2.439,4.957,7.732,11.926,18.126,30.044) * 365, unit = "day")

parameters <- aquifer_param(input_unit = "Field", output_unit = "Field", model = "uss", 
                            flow_type = "radial", water_drive = "edge", phi = 0.27, perm_h = 64.2, 
                            h_a = 20, r_a = 5 * 14892, r_R = 14892, tetha = 180,
                            mu_water = 0.485, c_water = 3.88e-6, c_rock = 2e-6, 
                            pressure = c(1640,1600,1400,1200,1000,800,600,400))

aqu_time

parameters

pred_veh <- aquifer_predict(aquifer_lst = parameters, time_lst = aqu_time)

head(pred_veh)

pred_veh %>% ggplot(aes(x = `Time (days)`, y = `We (MMbbl)`)) +
  geom_point(size = 3, color = "blue") +
  theme_bw()

Example 2: Un-steady state radial flow, bottom-water drive

library(Raquifer)
library(ggplot2)
library(magrittr)

aqu_time <- aquifer_time(x = c(0,0.368,2.439,4.957,7.732,11.926,18.126,30.044) * 365, unit = "day")

parameters <- aquifer_param(input_unit = "Field", output_unit = "Field", model = "uss", 
                            flow_type = "radial", water_drive = "bottom", phi = 0.27, perm_h = 64.2, 
                            perm_v = 64.2, h_a = 20, r_a = 5 * 14892, r_R = 14892, 
                            mu_water = 0.485, c_water = 3.88e-6, c_rock = 2e-6, 
                            pressure = c(1640,1600,1400,1200,1000,800,600,400))

pred_ykh <- aquifer_predict(aquifer_lst = parameters, time_lst = aqu_time)

head(pred_ykh)

pred_ykh %>% ggplot(aes(x = `Time (days)`, y = `We (MMbbl)`)) +
  geom_point(size = 3, color = "blue") +
  theme_bw()

Example 3: Pseudo-steady state radial flow, edge-water drive

library(Raquifer)
library(ggplot2)
library(magrittr)

aqu_time <- aquifer_time(x = c(0,0.368,2.439,4.957,7.732,11.926,18.126,30.044) * 365, unit = "day")

parameters <- aquifer_param(input_unit = "Field", output_unit = "Field", model = "pss", 
                            flow_type = "radial", water_drive = "edge", phi = 0.27, perm_h = 64.2, 
                            h_a = 20, r_a = 5 * 14892, r_R = 14892, tetha = 180,
                            mu_water = 0.485, c_water = 3.88e-6, c_rock = 2e-6, 
                            pressure = c(1640,1600,1400,1200,1000,800,600,400))

pred_fetk <- aquifer_predict(aquifer_lst = parameters, time_lst = aqu_time)

head(pred_fetk)

pred_fetk %>% ggplot(aes(x = `Time (days)`, y = `We (MMbbl)`)) +
  geom_point(size = 3, color = "blue") +
  theme_bw()

Example 4: Un-steady state linear flow, edge-water drive

library(Raquifer)
library(ggplot2)
library(magrittr)

aqu_time <- aquifer_time(x = c(0,0.368,2.439,4.957,7.732,11.926,18.126,30.044) * 365, unit = "day")

parameters <- aquifer_param(input_unit = "Field", output_unit = "Field", model = "uss", 
                            flow_type = "linear", water_drive = "edge", phi = 0.27, perm_h = 64.2, 
                            h_a = 20, w_a = 29784, l_a = 161145, mu_water = 0.485, c_water = 3.88e-6, 
                            c_rock = 2e-6, pressure = c(1640,1600,1400,1200,1000,800,600,400))

pred_nb_01 <- aquifer_predict(aquifer_lst = parameters, time_lst = aqu_time)

head(pred_nb_01)

pred_nb_01 %>% ggplot(aes(x = `Time (days)`, y = `We (MMbbl)`)) +
  geom_point(size = 3, color = "blue") +
  theme_bw()

Example 5: Un-steady state linear flow, bottom-water drive

library(Raquifer)
library(ggplot2)
library(magrittr)

aqu_time <- aquifer_time(x = c(0,0.368,2.439,4.957,7.732,11.926,18.126,30.044) * 365, unit = "day")

parameters <- aquifer_param(input_unit = "Field", output_unit = "Field", model = "uss", 
                            flow_type = "linear", water_drive = "bottom", phi = 0.27, perm_v = 64.2, 
                            h_a = 20, w_a = 29784, l_a = 161145, mu_water = 0.485, c_water = 3.88e-6, 
                            c_rock = 2e-6, pressure = c(1640,1600,1400,1200,1000,800,600,400))

pred_nb_02 <- aquifer_predict(aquifer_lst = parameters, time_lst = aqu_time)

head(pred_nb_02)

pred_nb_02 %>% ggplot(aes(x = `Time (days)`, y = `We (MMbbl)`)) +
  geom_point(size = 3, color = "blue") +
  theme_bw()

Example 6: Pseudo-steady state linear flow, edge-water drive

library(Raquifer)
library(ggplot2)
library(magrittr)

aqu_time <- aquifer_time(x = c(0,0.368,2.439,4.957,7.732,11.926,18.126,30.044) * 365, unit = "day")

parameters <- aquifer_param(input_unit = "Field", output_unit = "Field", model = "pss", 
                            flow_type = "linear", water_drive = "edge", phi = 0.27, perm_h = 64.2, 
                            h_a = 20, w_a = 29784, l_a = 161145, mu_water = 0.485, c_water = 3.88e-6, 
                            c_rock = 2e-6, pressure = c(1640,1600,1400,1200,1000,800,600,400))

parameters

pred_fetk_02 <- aquifer_predict(aquifer_lst = parameters, time_lst = aqu_time)

head(pred_fetk_02)

pred_fetk_02 %>% ggplot(aes(x = `Time (days)`, y = `We (MMbbl)`)) +
  geom_point(size = 3, color = "blue") +
  theme_bw()

Example 7: Pseudo-steady state linear flow, bottom-water drive

library(Raquifer)
library(ggplot2)
library(magrittr)

aqu_time <- aquifer_time(x = c(0,0.368,2.439,4.957,7.732,11.926,18.126,30.044) * 365, unit = "day")

parameters <- aquifer_param(input_unit = "Field", output_unit = "Field", model = "pss", 
                            flow_type = "linear", water_drive = "bottom", phi = 0.27, perm_v = 64.2, 
                            h_a = 20, w_a = 29784, l_a = 161145, mu_water = 0.485, c_water = 3.88e-6, 
                            c_rock = 2e-6, pressure = c(1640,1600,1400,1200,1000,800,600,400))

pred_fetk_03 <- aquifer_predict(aquifer_lst = parameters, time_lst = aqu_time)

head(pred_fetk_03)

pred_fetk_03 %>% ggplot(aes(x = `Time (days)`, y = `We (MMbbl)`)) +
  geom_point(size = 3, color = "blue") +
  theme_bw()

Example 8: Un-steady state radial flow, edge-water drive

library(Raquifer)
library(ggplot2)
library(magrittr)

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

parameters <- aquifer_param(input_unit = "Field", output_unit = "SI", model = "uss", 
                            flow_type = "radial", water_drive = "edge", phi = 0.27, perm_h = 64.2, 
                            h_a = 20, r_a = 5 * 14892, r_R = 14892, tetha = 180,
                            mu_water = 0.485, c_water = 3.88e-6, c_rock = 2e-6, 
                            pressure = c(1640,1600,1400,1200,1000,800,600,400))

aqu_time

parameters

pred_veh <- aquifer_predict(aquifer_lst = parameters, time_lst = aqu_time)

head(pred_veh)

pred_veh %>% ggplot(aes(x = `Time (days)`, y = `We (m3)`)) +
  geom_point(size = 3, color = "blue") +
  theme_bw()

Example 8: Un-steady state radial flow, edge-water drive

library(Raquifer)
library(ggplot2)
library(magrittr)

aqu_time <- aquifer_time(x = 1:8, unit = "month")

parameters <- aquifer_param(input_unit = "Field", output_unit = "SI", model = "uss", 
                            flow_type = "radial", water_drive = "edge", phi = 0.27, perm_h = 64.2, 
                            h_a = 20, r_a = 5 * 14892, r_R = 14892, tetha = 180,
                            mu_water = 0.485, c_water = 3.88e-6, c_rock = 2e-6, 
                            pressure = c(1640,1600,1400,1200,1000,800,600,400))

aqu_time

parameters

pred_veh <- aquifer_predict(aquifer_lst = parameters, time_lst = aqu_time)

head(pred_veh)

pred_veh %>% ggplot(aes(x = `Time (months)`, y = `We (m3)`)) +
  geom_point(size = 3, color = "blue") +
  theme_bw()

References



Try the Raquifer package in your browser

Any scripts or data that you put into this service are public.

Raquifer documentation built on July 2, 2020, 4:06 a.m.