Skip to main content
Log in

Optimization-based Upscaling for Two-Phase Flow Through Porous Media: Structured Grid Generation

  • Published:
Transport in Porous Media Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19
Fig. 20

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)

    Google Scholar 

  • 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)

    Article  Google Scholar 

  • 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)

    Article  Google Scholar 

  • 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)

    Article  Google Scholar 

  • Chen, Y., Durlofsky, L.J.: Adaptive local-global upscaling for general flow scenarios in heterogeneous formations. Trans. porous Media 62(2), 157–185 (2006)

    Article  Google Scholar 

  • 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)

    Article  Google Scholar 

  • 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)

    Article  Google Scholar 

  • Clerc, M.: Particle swarm optimization, vol. 93. Wiley, New York (2010)

    Google Scholar 

  • 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)

    Article  Google Scholar 

  • 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)

    Article  Google Scholar 

  • Floudas, C.A., Gounaris, C.E.: A review of recent advances in global optimization. J. Glob. Optim. 45(1), 3–38 (2009)

    Article  Google Scholar 

  • Garcia, M., Journel, A., Aziz, K.: Automatic grid generation for modeling reservoir heterogeneities. SPE Res. Eng. 7(2), 278–284 (1992)

    Article  Google Scholar 

  • Hansen, E., Walster, G.W.: Global optimization using interval analysis: revised and expanded. CRC Press, Boca Raton (2003)

    Google Scholar 

  • 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)

    Article  Google Scholar 

  • 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)

    Article  Google Scholar 

  • 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)

    Article  Google Scholar 

  • 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)

    Article  Google Scholar 

  • Laarhoven, P.J.M., Aarts, E.H.L. (eds.): Simulated annealing: theory and applications. Kluwer Academic Publishers, Norwell, MA, USA (1987)

    Google Scholar 

  • 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)

    Article  Google Scholar 

  • 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)

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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)

    Article  Google Scholar 

  • 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)

    Google Scholar 

  • Muggeridge, A.H.: Generation of Pseudo Relative Permeabilities from Detailed Simulation of Flow in Heterogeneous Porous Media. Academic Press, Waltham (1991)

    Google Scholar 

  • Pardalos, P.M., Romeijn, H.E., Tuy, H.: Recent developments and trends in global optimization. J. Comput. Appl. Math. 124(1), 209–228 (2000)

    Article  Google Scholar 

  • Poli, R., Kennedy, J., Blackwell, T.: Particle swarm optimization. Swarm Intell. 1(1), 33–57 (2007)

    Article  Google Scholar 

  • Rangaiah, G.P.: Stochastic global optimization: techniques and applications in chemical engineering. World Scientific, Singapore (2010)

    Book  Google Scholar 

  • Reeves, C.R., Rowe, J.E.: Genetic algorithms: principles and perspectives: a guide to GA theory, vol. 20. Springer, Berlin (2003)

    Google Scholar 

  • Renard, P., De Marsily, G.: Calculating equivalent permeability: a review. Adv. Water Resour. 20(5–6), 253–278 (1997)

    Article  Google Scholar 

  • 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)

    Article  Google Scholar 

  • 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)

    Article  Google Scholar 

  • Sivanandam, S., Deepa, S.: Introduction to Genetic Algorithms. Springer, Berlin (2008)

    Google Scholar 

  • 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)

    Article  Google Scholar 

  • 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)

    Article  Google Scholar 

  • 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)

    Article  Google Scholar 

  • 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)

    Article  Google Scholar 

  • 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)

    Article  Google Scholar 

  • 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)

    Article  Google Scholar 

  • 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)

    Article  Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Bahar Firoozabadi.

Appendices

Appendix 1: Modified Objective Function Algorithm

  1. 1.

    Get the coarse grid geometry, i.e., \(\mathbf {x}=(dxc_1,\cdots ,dxc_{N_{xc}}, \, dyc_1,\cdots ,dyc_{N_{yc}})\).

  2. 2.

    Calculate the coarse-scale permeability field.

  3. 3.

    Solve the single-phase flow equation on the coarse scale to obtain the flux across each coarse grid block face.

  4. 4.

    Using the obtained coarse-scale fluxes, reconstruct the velocity field over the refined grid employing Eqs. (34)-(35).

  5. 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. 1.

    Set \(dxc_i^{old}=dxc_i, i=1,\cdots N_{xc}\).

  2. 2.

    Calculate constraint violation, i.e., \(g_x=\left| \sum _{i=1}^{N_{xc}}dxc_i^{old}-N_x\times dx\right| \).

  3. 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. 4.

    Calculate new values \(dxc_i^{new}=dxc_i^{old}-\frac{1}{N_{xc}}\times g_x\).

  5. 5.

    For each \(dxc_i^{new}\) that violates its corresponding bound constraints, set \(dxc_i^{new} = dxc_i^{old}\).

  6. 6.

    Set \(dxc_i^{old} = dxc_i^{new}\) and go to step 2.

Appendix 3: Multistart Generating Set Search Optimization Algorithm

  1. 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. 2.

    Map each initial point to the equality constraints as stated in Appendix 2.

  3. 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. 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. 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. 6.

    Set the expansion and contraction factors, i.e., \(\rho _{exp}\) and \(\rho _{cnt}\).

  7. 7.

    Set \(i=1\) and perform the following steps on the \(\textit{i}^{\mathrm{th}}\) normalized initial point, \(\hat{\mathbf {x}}_i\).

    1. 7.1.

      Set \(\hat{\mathbf {x}}_{min}^{(i)} = \hat{\mathbf {x}}_i\).

    2. 7.2.

      Set the iteration counter \(k_{gss}=1\).

    3. 7.3.

      Set the number of function evaluation \(N_{f,eval}=0\).

    4. 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).

    5. 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.

    6. 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.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}\).

    8. 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.

    9. 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.

  8. 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. 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

$$\begin{aligned} R(\varDelta (k_{gss}))= \alpha _{gss} \, \max (\hat{f}_{typ},\, \hat{f}(\hat{\mathbf {x}}_{min}^{(i)}))\, \varDelta ^2(k_{gss}) \end{aligned}$$
(42)

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. 1.

    For each time step, perform the following steps until the maximum simulation time is reached.

    1. 1.1.

      Calculate wetting-phase and non-wetting-phase relative permeabilities over the coarse scale using the saturation field of the previous time step.

    2. 1.2.

      Solve Eq. (36) to obtain the pressure field over the coarse grid.

    3. 1.3.

      Calculate the fluxes across coarse-scale block faces.

    4. 1.4.

      Reconstruct the pressure and velocity fields over the fine scale.

    5. 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.

    6. 1.6.

      Solve Eq. (37) to obtain the fine-scale saturation field at the current time step.

    7. 1.7.

      Calculate the current saturation field of the coarse scale by averaging the obtained fine-scale saturation field over coarse grid blocks.

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. 1.

    Get the desired coarse grid dimension, \(N_{xc,d}\) and \(N_{yc,d}\).

  2. 2.

    Perform the single-phase flow simulation to obtain the fine-scale velocity distribution.

  3. 3.

    Calculate the fine-scale vorticity distribution.

  4. 4.

    Initialize the \(x\)-direction cutoff, \(CU_x=1\).

  5. 5.

    Set \(N_{xc}=1\).

  6. 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. 7.

    If \(N_{xc} > N_{xc,d}\), increase \(CU_x\) and goto step 5.

  8. 8.

    If \(N_{xc} < N_{xc,d}\), decrease \(CU_x\) and goto step 5.

  9. 9.

    Set \(N_{yc}=1\).

  10. 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. 11.

    If \(N_{yc} > N_{yc,d}\), increase \(CU_y\) and goto step 9.

  12. 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. 1.

    Get the desired coarse grid dimension, \(N_{xc,d}\) and \(N_{yc,d}\).

  2. 2.

    Perform the single-phase flow simulation to obtain the fine-scale velocity distribution.

  3. 3.

    Initialize the \(x\)-direction cutoff, \(CU_x=1\).

  4. 4.

    Set \(N_{xc}=1\).

  5. 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. 6.

    Update \(N_{xc}\).

  7. 7.

    If \(N_{xc} > N_{xc,d}\), increase \(CU_x\) and goto step 4.

  8. 8.

    If \(N_{xc} < N_{xc,d}\), decrease \(CU_x\) and goto step 4.

  9. 9.

    Set \(N_{yc}=1\).

  10. 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. 11.

    Update \(N_{yc}\).

  12. 12.

    If \(N_{yc} > N_{yc,d}\), increase \(CU_y\) and goto step 9.

  13. 13.

    If \(N_{yc} < N_{yc,d}\), decrease \(CU_y\) and goto step 9.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11242-015-0492-y

Keywords

Navigation