Two parallel noncomunicating zones in a reservoir

This one is only water flood (no low sal effect)

I'm injecting the seawater into a reservoir via a long horizontal well. The injectivity is better in some areas. I assign a larger injection rate to the 1D model for that zone, and a lower injection rate to the rest of the well, which is modelled again with a 1D model.


In [25]:
include("../FractionalFlow/FractionalFlow.jl")
using PyPlot, Dierckx, SetPyPlot
FF = FractionalFlow
setrcparam()


WARNING: replacing module FractionalFlow.

In [17]:
krw0_ww = 0.271636
krw0_ow = 0.226423
kro0_ww = 0.640774
kro0_ow = 0.53222
nw_ww = 3.74488
nw_ow= 3.81109
no_ww = 1.93454
no_ow= 2.0844
sor_ww=0.333829
sor_ow=0.40325
sor_mw=0.1
swc_ww=0.212
swc_ow=0.212

u_inj_fast = 0.3e-5
u_inj_slow = 1.0e-5 
pv_inj_fast = 2.0
pv_inj_slow = u_inj_slow/u_inj_fast*pv_inj_fast
A_fast = 0.2 # normalized to a total injection area of 1.0
A_slow = 1-A_fast # normalized to a total injection area of 1.0
eq_const = 0.3


Out[17]:
0.3

In [18]:
fluids_hs = FF.oil_water_fluids(mu_water=1.1e-3, mu_oil=2e-3)
fluids_ls = FF.oil_water_fluids(mu_water=1e-3, mu_oil=2e-3)
rel_perms_hs = FF.oil_water_rel_perms(krw0=krw0_ow, kro0=kro0_ow, 
        swc=swc_ow, sor=sor_ow, nw=nw_ow, no = no_ow)
rel_perms_ls = FF.oil_water_rel_perms(krw0=krw0_ww, kro0=kro0_ww, 
        swc=swc_ww, sor=sor_ww, nw=nw_ww, no = no_ww)
core_flood_fast = FF.core_flooding(u_inj=u_inj_fast, pv_inject=pv_inj_fast, p_back=1e5, sw_init=swc_ow, sw_inj=1.0, rel_perms=rel_perms_hs)
core_flood_slow = FF.core_flooding(u_inj=u_inj_slow, pv_inject=pv_inj_slow, p_back=1e5, sw_init=swc_ow, sw_inj=1.0, rel_perms=rel_perms_hs)

core_props = FF.core_properties()
ls_res_fast = FF.water_flood(core_props, fluids_ls, rel_perms_hs, core_flood_fast)
ls_res_slow = FF.water_flood(core_props, fluids_ls, rel_perms_hs, core_flood_slow)

FF.visualize(ls_res_fast)
FF.visualize(ls_res_slow)


┌ Info: difficulty finding the shock front saturation range!
└ @ Main.FractionalFlow /home/ali/projects/peteng/analytical/FractionalFlow/FractionalFlow.jl:401
┌ Info: difficulty finding the shock front saturation range!
└ @ Main.FractionalFlow /home/ali/projects/peteng/analytical/FractionalFlow/FractionalFlow.jl:401
[0.0, 7.43361e-8, 1.59378e-7, 2.50134e-7, 3.455e-7, 4.4497e-7, 5.48262e-7, 6.55207e-7, 7.657e-7, 8.79674e-7, 9.9709e-7, 1.11793e-6, 1.24217e-6, 1.36984e-6, 1.50093e-6, 1.63546e-6, 1.77346e-6, 1.91495e-6, 2.05996e-6, 2.20853e-6, 2.36068e-6, 2.51647e-6, 2.67592e-6, 2.83908e-6, 3.006e-6, 3.17671e-6, 3.35126e-6, 3.52971e-6, 3.71209e-6, 3.89846e-6, 4.08886e-6, 4.28335e-6, 4.48198e-6, 4.68479e-6, 4.89184e-6, 5.10319e-6, 5.31888e-6, 5.53897e-6, 5.76352e-6, 5.99256e-6, 6.22617e-6, 6.46439e-6, 6.70728e-6, 6.95489e-6, 7.20727e-6, 7.46449e-6, 7.72659e-6, 7.99362e-6, 8.26564e-6, 8.54271e-6, 8.82487e-6, 9.11217e-6, 9.40468e-6, 9.70243e-6, 1.00055e-5, 1.03139e-5, 1.06277e-5, 1.09469e-5, 1.12717e-5, 1.16019e-5, 1.19378e-5, 1.22793e-5, 1.26264e-5, 1.29793e-5, 1.33379e-5, 1.37023e-5, 1.40725e-5, 1.44486e-5, 1.48305e-5, 1.52184e-5, 1.56122e-5, 1.6012e-5, 1.64178e-5, 1.68296e-5, 1.72475e-5, 1.76714e-5, 1.81014e-5, 1.85375e-5, 1.89796e-5, 1.94279e-5, 1.98822e-5, 2.03427e-5, 2.08092e-5, 2.12818e-5, 2.17605e-5, 2.22453e-5, 2.27361e-5, 2.32329e-5, 2.37356e-5, 2.42444e-5, 2.47591e-5, 2.52796e-5, 2.5806e-5, 2.63381e-5, 2.6876e-5, 2.74195e-5, 2.79687e-5, 2.85234e-5, 2.90835e-5, 2.9649e-5, 5.9298e-5]
[0.59675, 0.595998, 0.595246, 0.594494, 0.593742, 0.592989, 0.592237, 0.591485, 0.590733, 0.589981, 0.589229, 0.588477, 0.587725, 0.586973, 0.586221, 0.585468, 0.584716, 0.583964, 0.583212, 0.58246, 0.581708, 0.580956, 0.580204, 0.579452, 0.578699, 0.577947, 0.577195, 0.576443, 0.575691, 0.574939, 0.574187, 0.573435, 0.572683, 0.571931, 0.571178, 0.570426, 0.569674, 0.568922, 0.56817, 0.567418, 0.566666, 0.565914, 0.565162, 0.56441, 0.563657, 0.562905, 0.562153, 0.561401, 0.560649, 0.559897, 0.559145, 0.558393, 0.557641, 0.556888, 0.556136, 0.555384, 0.554632, 0.55388, 0.553128, 0.552376, 0.551624, 0.550872, 0.55012, 0.549367, 0.548615, 0.547863, 0.547111, 0.546359, 0.545607, 0.544855, 0.544103, 0.543351, 0.542598, 0.541846, 0.541094, 0.540342, 0.53959, 0.538838, 0.538086, 0.537334, 0.536582, 0.53583, 0.535077, 0.534325, 0.533573, 0.532821, 0.532069, 0.531317, 0.530565, 0.529813, 0.529061, 0.528309, 0.527556, 0.526804, 0.526052, 0.5253, 0.524548, 0.523796, 0.523044, 0.522292, 0.212]
[0.0, 5.0e-6, 1.0e-5, 1.5e-5, 2.0e-5, 2.5e-5, 3.0e-5, 3.5e-5, 4.0e-5, 4.5e-5, 5.0e-5, 5.5e-5, 6.0e-5, 6.5e-5, 7.0e-5, 7.5e-5, 8.0e-5, 8.5e-5, 9.0e-5, 9.5e-5, 0.0001, 0.000105, 0.00011, 0.000115, 0.00012, 0.000125, 0.00013, 0.000135, 0.00014, 0.000145, 0.00015, 0.000155, 0.00016, 0.000165, 0.00017, 0.000175, 0.00018, 0.000185, 0.00019, 0.000195, 0.0002, 0.000205, 0.00021, 0.000215, 0.00022, 0.000225, 0.00023, 0.000235, 0.00024, 0.000245, 0.00025, 0.000255, 0.00026, 0.000265, 0.00027, 0.000275, 0.00028, 0.000285, 0.00029, 0.000295, 0.0003, 0.000305, 0.00031, 0.000315, 0.00032, 0.000325, 0.00033, 0.000335, 0.00034, 0.000345, 0.00035, 0.000355, 0.00036, 0.000365, 0.00037, 0.000375, 0.00038, 0.000385, 0.00039, 0.000395, 0.0004, 0.000405, 0.00041, 0.000415, 0.00042, 0.000425, 0.00043, 0.000435, 0.00044, 0.000445, 0.00045, 0.000455, 0.00046, 0.000465, 0.00047, 0.000475, 0.00048, 0.000485, 0.00049, 0.000495, 0.0005, 0.000505, 0.00051, 0.000515, 0.00052, 0.000525, 0.00053, 0.000535, 0.00054, 0.000545, 0.00055, 0.000555, 0.00056, 0.000565, 0.00057, 0.000575, 0.00058, 0.000585, 0.00059, 0.000595, 0.0006, 0.000605, 0.00061, 0.000615, 0.00062, 0.000625, 0.00063, 0.000635, 0.00064, 0.000645, 0.00065, 0.000655, 0.00066, 0.000665, 0.00067, 0.000675, 0.00068, 0.000685, 0.00069, 0.000695, 0.0007, 0.000705, 0.00071, 0.000715, 0.00072, 0.000725, 0.00073, 0.000735, 0.00074, 0.000745, 0.00075, 0.000755, 0.00076, 0.000765, 0.00077, 0.000775, 0.00078, 0.000785, 0.00079, 0.000795, 0.0008, 0.000805, 0.00081, 0.000815, 0.00082, 0.000825, 0.00083, 0.000835, 0.00084, 0.000845, 0.00085, 0.000855, 0.00086, 0.000865, 0.00087, 0.000875, 0.00088, 0.000885, 0.00089, 0.000895, 0.0009, 0.000905, 0.00091, 0.000915, 0.00092, 0.000925, 0.00093, 0.000935, 0.00094, 0.000945, 0.00095, 0.000955, 0.00096, 0.000965, 0.00097, 0.000975, 0.00098, 0.000985, 0.00099, 0.000995]
[0.59675, 0.570794, 0.55615, 0.545278, 0.536389, 0.528712, 0.518618, 0.466291, 0.413963, 0.361636, 0.309308, 0.256981, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212]
[0.0, 2.47787e-7, 5.31259e-7, 8.33779e-7, 1.15167e-6, 1.48323e-6, 1.82754e-6, 2.18402e-6, 2.55233e-6, 2.93225e-6, 3.32363e-6, 3.72642e-6, 4.14058e-6, 4.56613e-6, 5.00309e-6, 5.45153e-6, 5.91153e-6, 6.38316e-6, 6.86653e-6, 7.36175e-6, 7.86894e-6, 8.38822e-6, 8.91973e-6, 9.4636e-6, 1.002e-5, 1.0589e-5, 1.11709e-5, 1.17657e-5, 1.23736e-5, 1.29949e-5, 1.36295e-5, 1.42778e-5, 1.49399e-5, 1.5616e-5, 1.63061e-5, 1.70106e-5, 1.77296e-5, 1.84632e-5, 1.92117e-5, 1.99752e-5, 2.07539e-5, 2.1548e-5, 2.23576e-5, 2.3183e-5, 2.40242e-5, 2.48816e-5, 2.57553e-5, 2.66454e-5, 2.75521e-5, 2.84757e-5, 2.94162e-5, 3.03739e-5, 3.13489e-5, 3.23414e-5, 3.33516e-5, 3.43796e-5, 3.54256e-5, 3.64898e-5, 3.75722e-5, 3.86731e-5, 3.97926e-5, 4.09309e-5, 4.20881e-5, 4.32643e-5, 4.44596e-5, 4.56743e-5, 4.69083e-5, 4.81619e-5, 4.94351e-5, 5.0728e-5, 5.20407e-5, 5.33734e-5, 5.47261e-5, 5.60988e-5, 5.74916e-5, 5.89047e-5, 6.0338e-5, 6.17915e-5, 6.32654e-5, 6.47595e-5, 6.6274e-5, 6.78089e-5, 6.9364e-5, 7.09394e-5, 7.2535e-5, 7.41509e-5, 7.57868e-5, 7.74429e-5, 7.91188e-5, 8.08146e-5, 8.25302e-5, 8.42653e-5, 8.60199e-5, 8.77937e-5, 8.95867e-5, 9.13985e-5, 9.3229e-5, 9.50779e-5, 9.6945e-5, 9.883e-5, 0.00019766]
[0.59675, 0.595998, 0.595246, 0.594494, 0.593742, 0.592989, 0.592237, 0.591485, 0.590733, 0.589981, 0.589229, 0.588477, 0.587725, 0.586973, 0.586221, 0.585468, 0.584716, 0.583964, 0.583212, 0.58246, 0.581708, 0.580956, 0.580204, 0.579452, 0.578699, 0.577947, 0.577195, 0.576443, 0.575691, 0.574939, 0.574187, 0.573435, 0.572683, 0.571931, 0.571178, 0.570426, 0.569674, 0.568922, 0.56817, 0.567418, 0.566666, 0.565914, 0.565162, 0.56441, 0.563657, 0.562905, 0.562153, 0.561401, 0.560649, 0.559897, 0.559145, 0.558393, 0.557641, 0.556888, 0.556136, 0.555384, 0.554632, 0.55388, 0.553128, 0.552376, 0.551624, 0.550872, 0.55012, 0.549367, 0.548615, 0.547863, 0.547111, 0.546359, 0.545607, 0.544855, 0.544103, 0.543351, 0.542598, 0.541846, 0.541094, 0.540342, 0.53959, 0.538838, 0.538086, 0.537334, 0.536582, 0.53583, 0.535077, 0.534325, 0.533573, 0.532821, 0.532069, 0.531317, 0.530565, 0.529813, 0.529061, 0.528309, 0.527556, 0.526804, 0.526052, 0.5253, 0.524548, 0.523796, 0.523044, 0.522292, 0.212]
[0.0, 5.0e-6, 1.0e-5, 1.5e-5, 2.0e-5, 2.5e-5, 3.0e-5, 3.5e-5, 4.0e-5, 4.5e-5, 5.0e-5, 5.5e-5, 6.0e-5, 6.5e-5, 7.0e-5, 7.5e-5, 8.0e-5, 8.5e-5, 9.0e-5, 9.5e-5, 0.0001, 0.000105, 0.00011, 0.000115, 0.00012, 0.000125, 0.00013, 0.000135, 0.00014, 0.000145, 0.00015, 0.000155, 0.00016, 0.000165, 0.00017, 0.000175, 0.00018, 0.000185, 0.00019, 0.000195, 0.0002, 0.000205, 0.00021, 0.000215, 0.00022, 0.000225, 0.00023, 0.000235, 0.00024, 0.000245, 0.00025, 0.000255, 0.00026, 0.000265, 0.00027, 0.000275, 0.00028, 0.000285, 0.00029, 0.000295, 0.0003, 0.000305, 0.00031, 0.000315, 0.00032, 0.000325, 0.00033, 0.000335, 0.00034, 0.000345, 0.00035, 0.000355, 0.00036, 0.000365, 0.00037, 0.000375, 0.00038, 0.000385, 0.00039, 0.000395, 0.0004, 0.000405, 0.00041, 0.000415, 0.00042, 0.000425, 0.00043, 0.000435, 0.00044, 0.000445, 0.00045, 0.000455, 0.00046, 0.000465, 0.00047, 0.000475, 0.00048, 0.000485, 0.00049, 0.000495, 0.0005, 0.000505, 0.00051, 0.000515, 0.00052, 0.000525, 0.00053, 0.000535, 0.00054, 0.000545, 0.00055, 0.000555, 0.00056, 0.000565, 0.00057, 0.000575, 0.00058, 0.000585, 0.00059, 0.000595, 0.0006, 0.000605, 0.00061, 0.000615, 0.00062, 0.000625, 0.00063, 0.000635, 0.00064, 0.000645, 0.00065, 0.000655, 0.00066, 0.000665, 0.00067, 0.000675, 0.00068, 0.000685, 0.00069, 0.000695, 0.0007, 0.000705, 0.00071, 0.000715, 0.00072, 0.000725, 0.00073, 0.000735, 0.00074, 0.000745, 0.00075, 0.000755, 0.00076, 0.000765, 0.00077, 0.000775, 0.00078, 0.000785, 0.00079, 0.000795, 0.0008, 0.000805, 0.00081, 0.000815, 0.00082, 0.000825, 0.00083, 0.000835, 0.00084, 0.000845, 0.00085, 0.000855, 0.00086, 0.000865, 0.00087, 0.000875, 0.00088, 0.000885, 0.00089, 0.000895, 0.0009, 0.000905, 0.00091, 0.000915, 0.00092, 0.000925, 0.00093, 0.000935, 0.00094, 0.000945, 0.00095, 0.000955, 0.00096, 0.000965, 0.00097, 0.000975, 0.00098, 0.000985, 0.00099, 0.000995]
[0.59675, 0.586226, 0.578727, 0.572616, 0.567394, 0.562803, 0.558686, 0.554938, 0.551487, 0.548281, 0.545278, 0.542448, 0.539767, 0.537214, 0.534774, 0.532431, 0.530174, 0.527994, 0.525881, 0.523828, 0.518618, 0.50292, 0.487222, 0.471523, 0.455825, 0.440127, 0.424429, 0.40873, 0.393032, 0.377334, 0.361636, 0.345937, 0.330239, 0.314541, 0.298843, 0.283144, 0.267446, 0.251748, 0.23605, 0.220351, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212, 0.212]
┌ Info: difficulty finding the shock front saturation range!
└ @ Main.FractionalFlow /home/ali/projects/peteng/analytical/FractionalFlow/FractionalFlow.jl:401
┌ Info: difficulty finding the shock front saturation range!
└ @ Main.FractionalFlow /home/ali/projects/peteng/analytical/FractionalFlow/FractionalFlow.jl:401
Out[18]:
PyObject <matplotlib.legend.Legend object at 0x7f4606c669e8>

In [19]:
plot(ls_res_fast.water_cut_time[:,1], ls_res_fast.water_cut_time[:,2], 
    ls_res_slow.water_cut_time[:,1], ls_res_slow.water_cut_time[:,2])
legend(["Fast", "Slow"])


Out[19]:
PyObject <matplotlib.legend.Legend object at 0x7f4606469828>

The above figure shows the water cut in each zone. I need to add them together based on the total flow rate in each zone and plot the final value versus time. I need to know the total injection rate, the total surface area of each zone, and the water cut versus time. Then I calculate the new water cut versus time by calculating the total flow of oil and normalizing it.


In [20]:
t_fast = ls_res_fast.water_cut_time[:,1]
WC_fast = ls_res_fast.water_cut_time[:,2]
t_slow = ls_res_slow.water_cut_time[:,1]
WC_slow = ls_res_slow.water_cut_time[:,2]
WC_f =  Spline1D(t_fast, WC_fast, k=1, bc="nearest")
WC_s =  Spline1D(t_slow, WC_slow, k=1, bc="nearest")


Out[20]:
Spline1D(knots=[0.0,150.754 … 29849.2,30000.0] (200 elements), k=1, extrapolation="nearest", residual=0.0)

In [21]:
t = range(0, 20000, length=20000)
WC = (u_inj_fast*A_fast.*WC_f(t)+u_inj_slow*A_slow.*WC_s(t))./(u_inj_fast*A_fast+u_inj_slow*A_slow)


Out[21]:
20000-element Array{Float64,1}:
 0.0               
 0.0               
 0.0               
 0.0               
 0.0               
 0.0               
 0.0               
 0.0               
 0.0               
 0.0               
 0.0               
 0.0               
 0.0               
 ⋮                 
 0.9979062699838331
 0.9979064433247332
 0.9979066166656337
 0.9979067900065342
 0.9979069633474345
 0.997907136688335 
 0.9979073100292353
 0.9979074833701358
 0.9979076567110363
 0.9979078300519367
 0.997908003392837 
 0.9979081767337372

In [29]:
total_pv = pv_inj_fast*A_fast+pv_inj_slow*(1-A_fast)



plot(ls_res_fast.water_cut_time[:,1]./t_fast[end].*total_pv, ls_res_fast.water_cut_time[:,2], 
    ls_res_slow.water_cut_time[:,1]./t_fast[end].*total_pv, ls_res_slow.water_cut_time[:,2])

plot(t./t_fast[end].*total_pv, WC, linewidth = 3, "--")

legend(["Late breakthrough", "Early breakthrough", "Overall"])

xlabel("Injected PV [-]")
ylabel("Water cut [-]")

savefig("results/water_cut_WF_zones.png")