Abstract
The process of coarsening the detailed geological model of a reservoir to simulation models is known as upscaling. There are two fundamental steps in the procedure of upscaling, i.e., defining the coarse grid geometry and calculating the average properties for the generated coarse grid. In this paper, the focus will be on investigating the applicability of optimization in the context of coarse grid geometry definition. To do so, different objective function candidates will be defined, and their behavior in terms of predicting the two-phase flow accuracy of coarse grids will be analyzed to determine the proper objective function. A modified objective function employing the idea of analytical dual-mesh method will be defined to reduce the optimization process time. This objective function will be employed to generate the optimum Cartesian structured coarse grid geometry using global optimization techniques. The performance of the proposed grid generation technique will be investigated through various highly heterogeneous test cases under different boundary conditions, mobility ratios, upscaling levels, and permeability upscaling methods.
Similar content being viewed by others
References
Ashjari, M.A., Firoozabadi, B., Mahani, H.: Using vorticity as an indicator for the generation of optimal coarse grid distribution. Transp. Porous Media 75(2), 167–201 (2008)
Ashjari, M.A., Firoozabadi, B., Mahani, H., Khoozan, D.: Vorticity-based coarse grid generation for upscaling two-phase displacements in porous media. J. Pet. Sci. Eng. 59(3), 271–288 (2007)
Brunet, D., Vrscay, E.R., Wang, Z.: On the mathematical properties of the structural similarity index. IEEE Trans. Image Process. 21(4), 1488–1499 (2012)
Castellini, A.: Flow based grids for reservoir simulation. Master’s thesis, Stanford University (2001)
Chang, Y., Mohanty, K.: Scale-up of two-phase flow in heterogeneous porous media. J. Petrol. Sci. Eng. 18(1), 21–34 (1997)
Chen, Y., Durlofsky, L.J.: Adaptive local-global upscaling for general flow scenarios in heterogeneous formations. Trans. porous Media 62(2), 157–185 (2006)
Chen, Y., Mallison, B.T., Durlofsky, L.J.: Nonlinear two-point flux approximation for modeling full-tensor effects in subsurface flow simulations. Comput. Geosci. 12(3), 317–335 (2008)
Christie, M.A., Blunt, M.J.: Tenth spe comparative solution project: a comparison of upscaling techniques. SPE Reserv. Eval. Eng. 4(4), 308–317 (2001)
Clerc, M.: Particle swarm optimization, vol. 93. Wiley, New York (2010)
Durlofsky, L.J.: Upscaling of geocellular models for reservoir flow simulation: a review of recent progress. In: 7th international forum on reservoir simulation Bühl/Baden-Baden, Germany, pp. 23–27. Citeseer (2003)
Durlofsky, L.J., Jones, R.C., Milliken, W.J.: A nonuniform coarsening approach for the scale-up of displacement processes in heterogeneous porous media. Adv. Water Resour. 20(5), 335–347 (1997)
Dvorský, J., Snášel, V., Voženílek, V.: On maps comparison methods. In: International Conference on computer information systems and industrial management applications (CISIM), pp. 557–562. IEEE (2010)
Farmer, C.L.: Upscaling: a review. Int. J. Numer. Methods Fluids 40(1–2), 63–78 (2002)
Floudas, C.A., Gounaris, C.E.: A review of recent advances in global optimization. J. Glob. Optim. 45(1), 3–38 (2009)
Garcia, M., Journel, A., Aziz, K.: Automatic grid generation for modeling reservoir heterogeneities. SPE Res. Eng. 7(2), 278–284 (1992)
Hansen, E., Walster, G.W.: Global optimization using interval analysis: revised and expanded. CRC Press, Boca Raton (2003)
Hui, M., Durlofsky, L.J.: Accurate coarse modeling of well-driven, high-mobility-ratio displacements in heterogeneous reservoirs. J. Petrol. Sci. Eng. 49(1), 37–56 (2005)
Khoozan, D., Firoozabadi, B., Rashtchian, D., Ashjari, M.A.: Analytical dual mesh method for two-phase flow through highly heterogeneous porous media. J. Hydrol. 400(1–2), 195–205 (2011)
King, M., MacDonald, D., Todd, S., Leung, H.: Application of novel upscaling approaches to the Magnus and Andrew reservoirs. In: EUROPEC’98: European petroleum conference (1998)
Kirkpatrick, S., Gelatt, C.D., Vecchi, M.P., et al.: Optimization by simulated annealing. Science 220(4598), 671–680 (1983)
Kvasov, D.E., Sergeyev, Y.D.: Lipschitz gradients for global optimization in a one-point-based partitioning scheme. J. Comput. Appl. Math. 236(16), 4042–4054 (2012)
Laarhoven, P.J.M., Aarts, E.H.L. (eds.): Simulated annealing: theory and applications. Kluwer Academic Publishers, Norwell, MA, USA (1987)
Lewis, R.M., Shepherd, A., Torczon, V.: Implementing generating set search methods for linearly constrained minimization. SIAM J. on Sci. Comput. 29(6), 2507–2530 (2007)
Mahani, H.: Upscaling and optimal coarse grid generation for the numerical simulation of two-phase flow in porous media. Ph.D. thesis, Imperial College London (2005)
Mahani, H., Muggeridge, A.H., Ashjari, M.A.: Vorticity as a measure of heterogeneity for improving coarse grid generation. Pet. GeoSci. 15(1), 91–102 (2009)
Marshall, S.L.: A rapidly convergent modified Green’s function for Laplace’s equation in a rectangular region. Proc. R. Soc. Lon. A Math. Phys. Eng. Sci. 455(1985), 1739–1766 (1999). doi:10.1098/rspa.1999.0378
Martí, R.: Multi-start methods. In: Handbook of metaheuristics, pp. 355–368. Springer: Berlin (2003)
McKay, M.D., Beckman, R.J., Conover, W.J.: A comparison of three methods for selecting values of input variables in the analysis of output from a computer code. Technometrics 42(1), 55–61 (2000)
Motzkin, T.S., Raiffa, H., Thompson, G.L., Thrall, R.M.: The double description method. In: Kuhn, H.W., Tucker, A.W. (eds.) Contributions to the Theory of Games II, Ann. of Math. Stud., pp. 51–73. Princeton University Press, Princeton (1953)
Muggeridge, A.H.: Generation of Pseudo Relative Permeabilities from Detailed Simulation of Flow in Heterogeneous Porous Media. Academic Press, Waltham (1991)
Pardalos, P.M., Romeijn, H.E., Tuy, H.: Recent developments and trends in global optimization. J. Comput. Appl. Math. 124(1), 209–228 (2000)
Poli, R., Kennedy, J., Blackwell, T.: Particle swarm optimization. Swarm Intell. 1(1), 33–57 (2007)
Rangaiah, G.P.: Stochastic global optimization: techniques and applications in chemical engineering. World Scientific, Singapore (2010)
Reeves, C.R., Rowe, J.E.: Genetic algorithms: principles and perspectives: a guide to GA theory, vol. 20. Springer, Berlin (2003)
Renard, P., De Marsily, G.: Calculating equivalent permeability: a review. Adv. Water Resour. 20(5–6), 253–278 (1997)
Rios, L.M., Sahinidis, N.V.: Derivative-free optimization: a review of algorithms and comparison of software implementations. J. Global Optim. 56(3), 1247–1293 (2013)
Sanchez-Vila, X., Guadagnini, A., Carrera, J.: Representative hydraulic conductivities in saturated groundwater flow. Rev. Geophys. 44(3) (2006). doi:10.1029/2005RG000169
Sergeyev, Y.D., Kvasov, D.E.: Global search based on efficient diagonal partitions and a set of Lipschitz constants. SIAM J. Optim. 16(3), 910–937 (2006)
Sivanandam, S., Deepa, S.: Introduction to Genetic Algorithms. Springer, Berlin (2008)
Tran, T.T.: Stochastic simulation of permeability fields and their scale up for flow modeling. Ph.D. thesis, Stanford University (1995)
Wang, Z., Bovik, A.C.: A universal image quality index. IEEE Signal Process. Lett. 9(3), 81–84 (2002)
Wang, Z., Bovik, A.C.: Mean squared error: love it or leave it? A new look at signal fidelity measures. IEEE Signal Process. Mag. 26(1), 98–117 (2009)
Wang, Z., Bovik, A.C., Sheikh, H.R., Simoncelli, E.P.: Image quality assessment: from error visibility to structural similarity. IEEE Trans. Image Process. 13(4), 600–612 (2004)
Wen, X.H., Durlofsky, L.J., Chen, Y., et al.: Efficient 3D implementation of local-global upscaling for reservoir simulation. SPE J. 11(04), 443–453 (2006)
Wen, X.H., Durlofsky, L.J., Edwards, M.G.: Upscaling of channel systems in two dimensions using flow-based grids. Transp. Porous Media 51(3), 343–366 (2003)
Wen, X.H., Gómez-Hernández, J.J.: Upscaling hydraulic conductivities in heterogeneous media: An overview. J. Hydrol. 183(1–2), ix-xxxii (1996)
Wen, X.H., Gómez-Hernández, J.J.: Upscaling hydraulic conductivities in cross-bedded formations. Math. Geol. 30(2), 181–211 (1998)
Zhang, P., Pickup, G.E., Christie, M.A., et al.: A new practical method for upscaling in highly heterogeneous reservoir models. SPE J. 13(01), 68–76 (2008)
Acknowledgments
The authors would like to appreciate the anonymous reviewers for their insightful comments and suggestions to improve the quality of the paper.
Author information
Authors and Affiliations
Corresponding author
Appendices
Appendix 1: Modified Objective Function Algorithm
-
1.
Get the coarse grid geometry, i.e., \(\mathbf {x}=(dxc_1,\cdots ,dxc_{N_{xc}}, \, dyc_1,\cdots ,dyc_{N_{yc}})\).
-
2.
Calculate the coarse-scale permeability field.
-
3.
Solve the single-phase flow equation on the coarse scale to obtain the flux across each coarse grid block face.
-
4.
Using the obtained coarse-scale fluxes, reconstruct the velocity field over the refined grid employing Eqs. (34)-(35).
-
5.
Use Eq. (16) to calculate \( E\_\, SSIM \left( Vel \right) \), comparing the analytically reconstructed velocity field to the fine-scale velocity field.
Appendix 2: Mapping a Given Point to x-direction Equality Constraint Algorithm
-
1.
Set \(dxc_i^{old}=dxc_i, i=1,\cdots N_{xc}\).
-
2.
Calculate constraint violation, i.e., \(g_x=\left| \sum _{i=1}^{N_{xc}}dxc_i^{old}-N_x\times dx\right| \).
-
3.
If \(g_x < tol\) for a small value of \(tol\), e.g., \(10^{-6}\), then the mapping is completed. Set \(dxc_i=dxc_i^{old}\) and exit the algorithm.
-
4.
Calculate new values \(dxc_i^{new}=dxc_i^{old}-\frac{1}{N_{xc}}\times g_x\).
-
5.
For each \(dxc_i^{new}\) that violates its corresponding bound constraints, set \(dxc_i^{new} = dxc_i^{old}\).
-
6.
Set \(dxc_i^{old} = dxc_i^{new}\) and go to step 2.
Appendix 3: Multistart Generating Set Search Optimization Algorithm
-
1.
Generate \(N_{init}\) number of initial points, distributed in the domain defined by lower and upper bounds of the design parameters using Latin hypercube sampling technique.
-
2.
Map each initial point to the equality constraints as stated in Appendix 2.
-
3.
Calculate the objective function at the mapped points and select the \(N_{init,top}\) points with the lowest function values as the initial points for the multistart method, i.e., \(\mathbf {x}_{i}, i=1, \cdots , N_{init,top}\).
-
4.
Normalize each initial point to \([-\mathbf 1 ,\mathbf 1 ]\) interval using the lower and upper bounds of each variable to obtain \(\hat{\mathbf {x}}_i\).
-
5.
Set the initial step length \(\varDelta (1)=1\). Set the tolerance step length, \(\varDelta _{tol}\). Set the maximum number of function evaluation, \(N_{f,eval}^{max}\).
-
6.
Set the expansion and contraction factors, i.e., \(\rho _{exp}\) and \(\rho _{cnt}\).
-
7.
Set \(i=1\) and perform the following steps on the \(\textit{i}^{\mathrm{th}}\) normalized initial point, \(\hat{\mathbf {x}}_i\).
-
7.1.
Set \(\hat{\mathbf {x}}_{min}^{(i)} = \hat{\mathbf {x}}_i\).
-
7.2.
Set the iteration counter \(k_{gss}=1\).
-
7.3.
Set the number of function evaluation \(N_{f,eval}=0\).
-
7.4.
Given \(\hat{\mathbf {x}}_{min}^{(i)}\) and \(\varDelta (k_{gss})\), detect the active constraints (the constraints that might be violated in the spherical region defined by \(\hat{\mathbf {x}}_{min}^{(i)}\) as the center and \(\varDelta (k_{gss})\) as radius).
-
7.5.
Employ the double description method (Motzkin et al. 1953) to generate the normalized base vectors, i.e., \(\mathbf {d}_j\), of the region defined by active constraints. Using these vectors as search directions ensures the trial points to be in the problem domain.
-
7.6.
If no base vectors found, reduce step length \(\varDelta (k_{gss}+1)=\rho _{cnt} \, \varDelta (k_{gss})\). Set \(k_{gss} = k_{gss}+1\) and go to step 7.4.
-
7.7.
For each base vector \(\mathbf {d}_j\), calculate \(\hat{f}(\hat{\mathbf {x}}_{min}^{(i)}+\varDelta (k_{gss}) \, \mathbf {d}_j)\) and update the number of function evaluations, \(N_{f,eval}\). Determine the base vector that yields the minimum objective function value, i.e., \(\mathbf {d}_{min}\).
-
7.8.
If \(\hat{f}(\hat{\mathbf {x}}_{min}^{(i)}+\varDelta (k_{gss}) \, \mathbf {d}_{min}) < \hat{f}(\hat{\mathbf {x}}_{min}^{(i)}) - R(\varDelta (k_{gss}))\), then iteration is successful. Set \(\hat{\mathbf {x}}_{min}^{(i)} = \hat{\mathbf {x}}_{min}^{(i)} + \varDelta (k_{gss}) \, \mathbf {d}_{min}\). If \(N_{f,eval}>N_{f,eval}^{max}\), then the maximum number of function evaluations is reached. Set \(i=i+1\) and go to step 7 to perform the minimization algorithm for the next normalized initial point. Otherwise, increase the step size \(\varDelta (k_{gss}+1)=\rho _{exp} \, \varDelta (k_{gss})\), set \(k_{gss} = k_{gss}+1\) and go to step 7.4.
-
7.9.
Decrease the step length \(\varDelta (k_{gss}+1)=\rho _{cnt} \, \varDelta (k_{gss})\). If \(\varDelta (k_{gss}+1)<\varDelta _{tol}\), then the algorithm reached the minimum point. Set \(i=i+1\) and go to step 7 to perform the minimization algorithm for next initial point. Otherwise, increase the iteration counter \(k_{gss} = k_{gss}+1\) and go to step 7.4.
-
7.1.
-
8.
Set the global normalized minimum point as \(\hat{\mathbf {x}}_{min}^{global}=\hat{\mathbf {x}}_{min}^{(i)}: \hat{f}(\hat{\mathbf {x}}_{min}^{(i)})<\hat{f}(\hat{\mathbf {x}}_{min}^{(j)}),\) \( i,j=1, \cdots , N_{init,top}, \; i\ne j\).
-
9.
Inverse the normalization process on \(\hat{\mathbf {x}}_{min}^{global}\) to obtain the optimum grid geometry \(\mathbf {x}^{opt}\).
The algorithm parameters were set as \(N_{init}=2500 \times (N_{xc}+N_{yc})\), \(N_{init,top}=(N_{xc}+N_{yc}) / 2 - 1\), \(N_{f,eval}^{max}=500 \times (N_{xc}+N_{yc})\), \(\varDelta _{tol}=10^{-5}\), \(\rho _{exp}=1\) and \(\rho _{cnt}=0.8\). The condition stated in step 7.8 is employed to impose a sufficient decrease condition in which
where \(\hat{f}_{typ}\) is a typical value of the objective function, e.g., \(\hat{f}_{typ}=0.5\), and \(\alpha _{gss}\) is a small number, e.g., \(\alpha _{gss}=10^{-3}\). The function \(\hat{f}(\hat{\mathbf {x}})\) is a simple modification of \(f(\mathbf {x})\) that takes the normalized vector, \(\hat{\mathbf {x}}\), as its argument.
Appendix 4: Analytical Dual-Mesh Method Algorithm
-
1.
For each time step, perform the following steps until the maximum simulation time is reached.
-
1.1.
Calculate wetting-phase and non-wetting-phase relative permeabilities over the coarse scale using the saturation field of the previous time step.
-
1.2.
Solve Eq. (36) to obtain the pressure field over the coarse grid.
-
1.3.
Calculate the fluxes across coarse-scale block faces.
-
1.4.
Reconstruct the pressure and velocity fields over the fine scale.
-
1.5.
Calculate the wetting-phase and non-wetting-phase relative permeabilities over the fine scale using the saturation field of the previous time step.
-
1.6.
Solve Eq. (37) to obtain the fine-scale saturation field at the current time step.
-
1.7.
Calculate the current saturation field of the coarse scale by averaging the obtained fine-scale saturation field over coarse grid blocks.
-
1.1.
Appendix 5: Vorticity-based Grid Generation Algorithm
Moving window technique was employed to generate vorticity-based coarse grids. The algorithm employs two independent moving windows in the \(x\)- and \(y\)-directions. The size of the windows was set to 2. In other words, each window contains two fine cells. The employed vorticity-based algorithm is as follows:
-
1.
Get the desired coarse grid dimension, \(N_{xc,d}\) and \(N_{yc,d}\).
-
2.
Perform the single-phase flow simulation to obtain the fine-scale velocity distribution.
-
3.
Calculate the fine-scale vorticity distribution.
-
4.
Initialize the \(x\)-direction cutoff, \(CU_x=1\).
-
5.
Set \(N_{xc}=1\).
-
6.
Sweep the \(x\)-direction window along and across the fine grid model and calculate the vorticity variation across the window. If the calculated difference is greater than the threshold \(CU_x\), set the boundary between the two fine cells of the moving window as the coarse grid boundary and update \(N_{xc}\).
-
7.
If \(N_{xc} > N_{xc,d}\), increase \(CU_x\) and goto step 5.
-
8.
If \(N_{xc} < N_{xc,d}\), decrease \(CU_x\) and goto step 5.
-
9.
Set \(N_{yc}=1\).
-
10.
Sweep the \(y\)-direction window along and across the fine grid model and calculate the vorticity variation across the window. If the calculated difference is greater than the threshold \(CU_y\), set the boundary between the two fine cells of the moving window as the coarse grid boundary and update \(N_{yc}\).
-
11.
If \(N_{yc} > N_{yc,d}\), increase \(CU_y\) and goto step 9.
-
12.
If \(N_{yc} < N_{yc,d}\), decrease \(CU_y\) and goto step 9.
As can be concluded from the algorithm, the \(x\)- and \(y\)-direction cutoffs were not set manually as the algorithm tune them to yield the desired coarse grid dimension.
Appendix 6: Flow-based Grid Generation Algorithm
The flow-based grid generation algorithm is based on the idea that the volumetric flow rate through a coarse grid layer should not exceed a prescribed value. The employed flow-based algorithm is as follows:
-
1.
Get the desired coarse grid dimension, \(N_{xc,d}\) and \(N_{yc,d}\).
-
2.
Perform the single-phase flow simulation to obtain the fine-scale velocity distribution.
-
3.
Initialize the \(x\)-direction cutoff, \(CU_x=1\).
-
4.
Set \(N_{xc}=1\).
-
5.
Sweep across the vertical fine grid layers (columns) and place the coarse grid boundaries, such that the volumetric flow rate through each vertical coarse layer does not exceed \(CU_x\). Use \(y\)-direction velocity component to calculate the volumetric flow through the layers.
-
6.
Update \(N_{xc}\).
-
7.
If \(N_{xc} > N_{xc,d}\), increase \(CU_x\) and goto step 4.
-
8.
If \(N_{xc} < N_{xc,d}\), decrease \(CU_x\) and goto step 4.
-
9.
Set \(N_{yc}=1\).
-
10.
Sweep across the horizontal fine grid layers (rows) and place the coarse grid boundaries, such that the volumetric flow rate through each horizontal coarse layer does not exceed \(CU_y\). Use \(x\)-direction velocity component to calculate the volumetric flow through the layers.
-
11.
Update \(N_{yc}\).
-
12.
If \(N_{yc} > N_{yc,d}\), increase \(CU_y\) and goto step 9.
-
13.
If \(N_{yc} < N_{yc,d}\), decrease \(CU_y\) and goto step 9.
Rights and permissions
About this article
Cite this article
Khoozan, D., Firoozabadi, B. Optimization-based Upscaling for Two-Phase Flow Through Porous Media: Structured Grid Generation. Transp Porous Med 108, 617–648 (2015). https://doi.org/10.1007/s11242-015-0492-y
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11242-015-0492-y