1 Introduction

Polymer flooding has become one of the most widely used enhanced oil recovery (EOR) methods because of its adaptability to a wide range of oil viscosity (Wassmuth et al. 2007), relative simplicity for operations (Mohammadi and Jerauld 2012), and offshore applicability (Morel et al. 2012). For polymer flooding as well as most other chemical flooding processes such as surfactant-polymer flood, alkaline-surfactant-polymer flood, and alkaline-cosolvent-polymer flood, the polymer injectivity is a key index for reservoir management, e.g., deciding the upper limit of the polymer injection rate to optimize the project economics (Seright et al. 2009). Factors affecting polymer injectivity include polymer degradation (Seright et al. 2009; Zaitoun et al. 2012), induced fractures near the injector (Seright et al. 2009; van den Hoek et al. 2012), polymer crosslinking to form gel (Bekbauov et al. 2013; Goudarzi et al. 2013b), and especially polymer rheology (Delshad et al. 2008; Sharma et al. 2011; Kulawardana et al. 2012). A polymer solution is a non-Newtonian fluid whose viscosity is non-linearly related to the flow rate or the in situ shear rate. For example, hydrolyzed polyacrylamide (HPAM) solutions exhibit pseudoplastic behavior at low shear rates and dilatant behavior at high shear rates when flowing through porous media as shown in Fig. 1 (Delshad et al. 2008). In addition, polymer rheology exhibits Newtonian behavior when the flow is at very low or high rates (Stahl and Schulz 1988; Sorbie 1991). This behavior leads to a complex relationship between the pressure drop and the local velocity. Consequently, the polymer injectivity is often erroneously calculated from numerical simulations using a gridblock size practical for full field simulations where the flow rate decreases drastically from the wellbore (Sharma et al. 2011; Li and Delshad 2014). It is crucial for a numerical simulator to capture near-wellbore polymer rheology more accurately to improve the estimation of injection rate, shorten the project life, enhance the economics, and prevent or carefully design the injection induced fractures depending on the operators’ decisions (Gadde and Sharma 2001; Lee et al. 2011).

Fig. 1
figure 1

Rheological relation between viscosity and shear rate for polymer solutions

The inaccuracy in calculated polymer injectivity mainly results as the flow rate is smeared within a coarse well gridblock. This is especially severe for common reservoir simulations in which the gridblock size is used up to several dozens of feet while the wellbore radius is only about 0.5 ft. In situ shear rates reach as high as 104 s−1 near the wellbore and decrease sharply to about 1–10 s−1 within a well gridblock. To eliminate the grid effects, several empirical or analytical models were proposed based on effective properties of the well blocks. For instance, Sharma et al. (2011) proposed to use an effective well radius to calculate the shear rate and match the polymer injectivity from very fine-grid simulation results; Li and Delshad (2014) proposed an effective viscosity using mathematical integration of in situ viscosity by assuming a radial velocity distribution within the well block. However, these approaches are not rigorous for other near-well effects apart from polymer rheology, e.g., non-zero skin factor, polymer permeability reduction, and injection induced fractures near the wellbore, which are often encountered during injection of polymer solutions. Therefore, in order to have a more accurate polymer injectivity adaptive to most reservoir conditions, it is necessary to refine simulation grids. However, grid refinement for the whole reservoir model leads to excessive computational costs. It is thus important to develop a local grid refinement (LGR) technique (or similar unstructured gridding approaches), such as shown in Fig. 2, so that the grid refinement is only applied to the regions where it is needed.

Fig. 2
figure 2

Schematic of multilevel local grid refinement

LGR and similar unstructured gridding approaches have continuously played an important role in reservoir simulations. Successful applications can be found in water flood (Oliveira and Reynolds 2014), miscible gas flood (Suicmez et al. 2011), steam flood (Christensen et al. 2004; Nilsson et al. 2005), etc. LGR methods are classified into cell-based and patch-based approaches (Berger and Oliger 1984), while the former is more frequently used in simulations of flow in porous media. Therefore, in the scope of this paper, we only discuss the cell-based LGR approach. Forsyth and Sammon (1986) developed an LGR algorithm with a rigorous analysis of discretization of flow equations upon the composite grid geometry. However, the accuracy of their numerical scheme is reported to be low because a direct subtraction of pressures of two adjacent blocks is used to calculate the Darcy velocity across the block interface (Rasaei and Sahimi 2009). Nacul et al. (1990) proposed an LGR technique using a domain decomposition method, in which overlapping boundaries are used for the subdomains. Karimi-Fard and Durlofsky (2012) presented an unstructured LGR method, and the well block is fully refined and solved at a fine scale to determine the effective properties that can be used for coarse-grid simulations over the reservoir domain.

In this paper, we propose an LGR method applied to chemical EOR simulations, especially more accurate calculation of polymer rheological viscosity (polymer injectivity) under different reservoir conditions. Meanwhile, for a necessary complement to the scope of LGR approaches, this paper presents details on the numerical schemes to couple the mass conservation equations on the multilevel grid, as well as the indexing to the gridblocks and interfaces. In short, the proposed method includes the following features:

  1. (a)

    An efficient numerical scheme developed to calculate the velocity and the mass flux across the block interface between different grid levels of the composite grid, which is also applied in the heterogeneous cases.

  2. (b)

    An algorithm on how to index the gridblock list and gridblock connections under the LGR composite grid presented in detail. The numerical computations under the LGR grid structure can benefit from this data management, which may also be extended to the classical unstructured grid and provide a good basis for the successive simulator development.

This paper is organized as follows: In the next two sections, we will give the mass balance equations and the chemical flood simulation models. The subsequent section presents the details of the proposed efficient LGR algorithm. We will then test several examples simulated with different levels of refinement to demonstrate the improvement in numerical results. The LGR simulations are also compared to those using the analytical injectivity model proposed by Li and Delshad (2014).

2 Mathematical model

In this section, we briefly present the mathematical framework of the University of Texas Chemical Flooding Simulator, UTCHEM (Delshad et al. 1996) and formulations for modeling polymer rheology and injectivity. UTCHEM is a three-dimensional multi-phase multi-component compositional simulator with the capability of modeling geochemical reactions, complex phase behavior, etc. The governing balance equations include (1) the mass conservation equation for each species; (2) the pressure equation obtained by summing up all mass conservation equations for all volume-occupying species; and (3) the energy conservation equation which will not be discussed here.

2.1 Mass conservation equations

We write the mass conservation equation for each component κ,

$$\frac{\partial }{\partial t}(\phi \tilde{C}_{\kappa } \rho_{\kappa } ) + \nabla \cdot \left[ { \sum \limits_{l = 1}^{{n_{\text{p}}}} \rho_{\kappa } (C_{\kappa l} \varvec{u}_{l} - \tilde{\varvec{D}}_{\kappa l} )} \right] = R_{\kappa},$$
(1)

where \(\phi\) is the porosity, ρ κ is the density of component κ, C κl is the concentration of component κ in phase l, n p is the phase number, and u l is the Darcy flux of phase l which is calculated using Darcy’s law:

$$\varvec{u}_{l} = - \frac{{k_{{\rm {r}}l} \varvec{k}}}{{\mu_{l}}} \cdot (\nabla P_{l} - \gamma_{l} \nabla h),$$
(2)

where k is the intrinsic permeability tensor, k rl is the relative permeability, μ l is the viscosity, γ l is the specific weight of phase l, and h represents the vertical depth.

\(\tilde{C}_{\kappa }\) is the overall concentration of component κ in the mobile and stationary phases expressed as

$$\tilde{C}_{\kappa } = \left( {1 - \sum \limits_{\kappa = 1}^{{n_{\text{cv}}}} \hat{C}_{\kappa } } \right) \sum \limits_{l = 1}^{{n_{\text{p}}}} S_{l} C_{\kappa l} + \hat{C}_{\kappa } \quad {\text{for}}\;\kappa = 1, \ldots ,n_{\text{c}},$$
(3)

where S l is the saturation of phase l, n cv is the total number of volume-occupying components, and \(\hat{C}_{\kappa }\) is the adsorbed concentration of component κ. In UTCHEM, the liquid phase l includes aqueous (l = 1), oleic (l = 2), and microemulsion (l = 3).

\(\tilde{\varvec{D}}_{\kappa l}\) is the dispersive flux which is assumed to have a Fickian form:

$$\tilde{\varvec{D}}_{\kappa l} = \phi S_{l} \varvec{K}_{\kappa l} \cdot \nabla C_{\kappa l},$$
(4)

where the dispersion tensor K κl is calculated as

$$\varvec{K}_{\kappa lij} = \frac{{D_{\kappa l}}}{\tau }\delta_{ij} + \frac{{\alpha_{{{\text{T}}l}}}}{{\phi S_{l}}}\left| {\varvec{u}_{l} } \right|\delta_{ij} + \frac{{\left( {\alpha_{{{\text{L}}l}} - \alpha_{{{\text{T}}l}} } \right)}}{{\phi S_{ l}}}\frac{{u_{li} u_{lj}}}{{\left| {\varvec{u}_{l} } \right|}},$$
(5)

where D κl is the molecular diffusion, τ is the tortuosity factor of the porous media, α Ll and α Tl are phase l longitudinal and transverse dispersivities, and δ ij is the Kronecker delta function.

R κ is the source term which is a combination of all rate terms for a particular component κ. It may be expressed as

$$R_{\kappa } = \phi \sum \limits_{l = 1}^{{n_{\text{p}}}} S_{ l} r_{\kappa l} + (1 - \phi )r_{\kappa s} + Q_{\kappa },$$
(6)

where r κl and r κs are the reaction rates for component κ in phase l and solid phase s, respectively, and Q κ is the injection/production rate for component κ per bulk volume.

2.2 Pressure equation

Summing the mass balance equations from Eq. (1) over all the volume-occupying components, substituting Eq. (2) and using aqueous phase pressure as a reference pressure, we obtain the pressure equation:

(7)

where P cl1 is the capillary pressure between phase l and phase 1 (the aqueous phase), and λ rlc is the relative mobility expressed as

$$\lambda_{{{\text{r}}lc}} = \frac{{k_{{\text{r}}{l}}} }{{\mu_{l} }} \sum \limits_{l = 1}^{{n_{\text{cv}} }} \rho_{\kappa } C_{\kappa l} ,$$
(8)

and C t represents the total compressibility which is the volume-weighted sum of the rock matrix (C r) and component compressibilities (C 0 κ ):

$$C_{\text{t}} = C_{\text{r}} + \sum \limits_{l = 1}^{{n_{\text{cv}} }} C_{\kappa }^{0} \tilde{C}_{\kappa },$$
(9)

where \(\phi = \phi_{\rm R} \left[ {1 + C{\rm r} \left( {P_{\text{R}} - P_{{{\text{R}}0}} } \right)} \right],\) P R and P R0 are rock and reference rock pressures.

2.3 Rheological viscosity of the polymer solution

Non-Newtonian polymer rheology (shear-thinning behavior) is modeled using Meter’s equation (Meter and Bird 1964):

$$\mu_{\text{app}} = \mu_{\infty } + \frac{{\mu_{\text{p}}^{0} - \mu_{\infty } }}{{1 + \left( {\frac{{\dot{\gamma }_{\text{eff}} }}{{\dot{\gamma }_{1/2} }}} \right)^{{P_{\alpha } - 1}} }} ,$$
(10)

where μ app is the apparent viscosity of the polymer solution; \(\mu_{\infty }\) is the polymer solution viscosity at infinite shear rate which is assumed to be brine viscosity; \(\dot{\gamma }_{1/2}\) is the shear rate at which the apparent viscosity is the average of \(\mu_{\infty }\) and \(\mu_{\text{p}}^{0}\); \(P_{\alpha }\) is a fitting parameter. For the synthetic polymer, e.g., HPAM, polymer solutions show shear-thinning behavior at intermediate shear rates and shear-thickening (dilatant) behavior at high rates. To remediate the deficiency of Meter’s equation, Delshad et al. (2008) developed a comprehensive polymer viscosity model which covers the whole shear-rate regime. The apparent viscosity consists of two parts:

$$\mu_{\text{app}} = \mu_{\text{sh}} + \mu_{\text{el}},$$
(11)

where the shear-thinning model uses the Carreau model (Carreau 1968):

$$\mu_{\text{sh}} = \mu_{\infty } + \left( {\mu_{\text{p}}^{0} - \mu_{\infty } } \right)\left[ {1 + \left( {\lambda_{1} \dot{\gamma }_{\text{eff}} } \right)^{2} } \right]^{{\left( {n_{1} - 1} \right)/2}},$$
(12)

and the shear-thickening model is

$$\mu_{\text{el}} = \mu_{ \hbox{max} } \left\{ {1 - { \exp }\left[ { - \left( {\lambda_{2} \tau \dot{\gamma }_{\text{eff}} } \right)^{{n_{2} - 1}} } \right]} \right\},$$
(13)

where a 1, a 2, and τ are all fitting model parameters obtained by matching experimental data; μ max is given as

$$\mu_{ \hbox{max} } = \mu_{\text{b}} \left( {AP_{11} + AP_{22} { \ln }C_{\text{p}} } \right)C_{\text{SEP}}^{{S_{\text{p}} }},$$
(14)

where \(C_{\text{SEP}}^{{S_{\text{p}} }}\) is the polymer viscosity dependence on salinity and hardness; AP 11 and AP 22 are fitting parameters. When AP 11 and AP 22 are zero, the comprehensive polymer viscosity model reduces to the Carreau model.

The effective shear rate (\(\dot{\gamma }_{\text{eff}}\)) correlates viscosity measured in a viscometer to an apparent in situ viscosity in porous media and is defined using a capillary bundle model (Cannella et al. 1998) as

$$\dot{\gamma }_{\text{eff}} = C\left( {\frac{3n + 1}{4n}} \right)^{{\frac{n}{n - 1}}} \frac{{4\left| {\varvec{u}_{\text{w}} } \right|}}{{\sqrt {8\bar{k}k_{\text{rw}} \phi S_{\text{w}} } }},$$
(15)

where n is the slope of the linear portion of bulk polymer viscosity vs. shear rate plotted on a log–log scale (bulk power-law index); u w is the Darcy flux of the aqueous polymer solution; \(\bar{k}\) is the average permeability; k rw is the aqueous phase relative permeability; S w is the aqueous phase saturation; \(\phi\) is the porosity; C is a shear correction factor used to explain the deviation of the porous medium from an ideal capillary bundle model (Wreath et al. 1990; Sorbie 1991) and should be a function of permeability, porosity, and polymer molecule properties.

2.4 Analytical polymer injectivity model

According to Peaceman’s well model (Peaceman 1983), the relationship between the injection rate Q inj and the pressure difference between injector and well block (P inj − P wb) can be expressed by

$$Q_{\text{inj}} = I\left( {P_{\text{inj}} - P_{\text{wb}} } \right),$$
(16)

where I is the well injectivity:

$$I = \frac{{2\pi h\sqrt {k_{x} k_{y} } }}{{{ \ln }\left( {\frac{{r_{\text{o}} }}{{r_{\text{w}} }}} \right) + s}} \sum \limits_{l = 1}^{{n_{\text{p}} }} \frac{{k_{{{\text{r}}l,{\text{wb}}}} }}{{\mu_{{l,{\text{wb}}}} }},$$
(17)

where h represents the thickness of the well block; r o represents the Peaceman equivalent radius; r w is the well radius; s is the skin factor; and k rl,wb and μ rl,wb are the relative permeability and viscosity of phase l of well block, respectively.

In traditional simulation models, the polymer solution viscosity (μ w,wb) of the well block is directly calculated from Eqs. (10) or (11), using the averaged shear rate of the block. Thus, the shear rate is smeared and consequently gives significant error in well injectivity depending on the flow rate and the size of the gridblocks.

To overcome this limitation, Li and Delshad (2014) proposed a rigorous analytical injectivity model to calculate the equivalent apparent viscosity of polymer solution based on the assumption that after conversion of coordinates to account for the effects of non-square grids and anisotropic permeability, radial flow dominates the near-wellbore region, i.e.,

$$u\left( {\bar{r}} \right) = \frac{{Q_{\text{inj}} }}{{2\pi h\bar{r}}},$$
(18)

where \(\bar{r}\) is the distance from the wellbore after conversion of coordinates.

It can then be derived that the equivalent apparent viscosity of the polymer solution has the following expression:

$$\bar{\mu }_{{{\text{w}},{\text{wb}}}} = \frac{{ \int_{{r_{\text{w}} }}^{{\bar{r}_{\text{o}} }} \mu_{\text{app}} \left( r \right)\frac{{{\text{d}}r}}{r}}}{{{ \ln }\left( {\frac{{\bar{r}_{\text{o}} }}{{r_{\text{w}} }}} \right)}},$$
(19)

in which μ app(r) adopts the form of Eqs. (10) or (11) using the shear rate calculated from the local velocity expressed by Eq. (18). For the detailed derivation, one can refer to Li and Delshad (2014).

3 UTCHEM flowchart

UTCHEM uses the finite volume method (FVM) and the implicit pressure explicit concentration (IMPEC) approach. The flowchart of the simulator is shown in Fig. 3.

Fig. 3
figure 3

Flowchart of UTCHEM

In each time step, the simulator first solves the pressure equation (Eq. 7) implicitly and then solves concentration equations for each component (Eq. 1) explicitly using a third-order scheme with a flux limiter. After that, phase behavior calculations will be performed if a surfactant is present. In the last step, properties are updated by taking into account water reactions and polymer adsorption, as well as other chemical and physical changes. All the newly updated variables and properties will be provided for the initial values of the next time step. This continues until it reaches the final time.

4 Local grid refinement algorithm

The current form of the UTCHEM simulator is developed based on a structured grid, and the use of LGR will transform the grid from structured to unstructured as the connections between blocks are no longer regular. This makes it necessary to change the original data structure and computational model for solving the pressure equation and concentration equations.

To adapt the original computational structure to LGR and to maintain a good memory management, we designed a new flowchart for UTCHEM in Fig. 4. Compared to the original flowchart shown in Fig. 3, this new algorithm automatically generates the block list and connections according to the well location and refinement levels after the initialization step. An LGR module is also used to replace the original modules for solving the pressure equation and concentration equations. The other parts remain unchanged because those calculations are block based and not relevant to the grid structure. Features of the LGR algorithm will be presented in the following two subsections.

Fig. 4
figure 4

Flowchart of UTCHEM using the LGR module

4.1 Block list and connections

Computations with an unstructured grid and LGR are normally based on a block list which gives the indices of gridblocks or cell numbering and connections which give the indices of block interfaces linking to a pair of adjacent blocks. Considering LGR has a special grid topology composed of rectangular blocks at different levels, we developed a fast algorithm to generate the block list and connections as illustrated in Fig. 5 with a 2D example case. The domain is originally covered by two coarse blocks, and then it is refined to 8 blocks. The numbering of the block list is advanced by each coarse block. For each coarse block, the numbering starts first along the x-direction and then the y-direction.

Fig. 5
figure 5

An example of a block list and connections

Different from the common unstructured grid, the connections in our LGR algorithm are divided into two types: x-direction connections (marked in red in Fig. 5) and y-direction connections (marked in blue in Fig. 5). A summary of the block list and connections is given in Table 1.

Table 1 Mutual indexing of block list and connections

The indexing of a block list and connections facilitates the search for neighboring blocks and the assignment of properties evaluated at the block interfaces, such as transmissibility, velocity, and mass flux using the list of connections.

4.2 Coupling of governing equations

As the IMPEC scheme is used, the pressure equation and concentration equations are solved separately during computations.

4.2.1 Coupling of the pressure equation

The pressure equation needs to be solved implicitly and the calculation of velocities across the block interfaces of the composite grid is a common issue. Let us take the block connection in Fig. 6 as an example. The lengths of the coarse block are Δx and Δy and the lengths of the fine blocks are half. For the sake of simplicity to describe our approach, we assume in Fig. 6 isotropic permeabilities without a gravity effect and define λ as the total fluid mobility, i.e., \(\lambda = k_{\text{abs}} \sum_{l = 1}^{{n_{\text{p}} }} \frac{{k_{{\text{r}}l}^{\text{ups}} }}{{\mu_{l} }},\) where \(k_{{{\text{r}}l}}^{\text{ups}}\) is the relative permeability of phase l defined on the block interface with an upstream scheme. The upstream scheme to obtain \(k_{{{\text{r}}l}}^{\text{ups}}\) is the same as that to obtain the upstream concentration, \(C_{\kappa }^{\text{ups}} ,\) which we will explain in the next subsection.

Fig. 6
figure 6

Schematic block connection and the position of pressure and velocity

To calculate the fluxes across the block interfaces, such as \(u_{(m)}\) and \(u_{(n)}\), an early approach (Forsyth and Sammon 1986) used the pressures at the block centers to obtain the pressure difference in Darcy’s law. However, it was pointed out that it generated high truncations (Rasaei and Sahimi 2009). Gerritsen and Lambers (2008) proposed in their anisotropic grid adaptivity method to use bilinear interpolation to obtain pressures of the auxiliary points (such as \(P_{{\left( {i1} \right)}}\) and \(P_{{\left( {i2} \right)}}\) in Fig. 6) for calculating the interfacial velocity using Darcy’s law. This method proves to be second-order accurate when solving the pressure equation for homogeneous cases. However, the accuracy of bilinear interpolation is insufficient for heterogeneous cases because the discontinuity of the pressure gradient across the block interface is not taken into account. Actually, handling heterogeneity is an important factor to weigh up the reliability of the numerical scheme. As far as we know, there has not been a rigorous numerical scheme in the scope of the cell-centered finite volume method for accurately coupling the pressure equations with the LGR composite grid.

In Appendix 1, we derive a simple but efficient numerical scheme to couple pressure equations for the blocks with different grid levels. The expression of the velocities across the interface is as follows:

$$\left\{\begin{aligned} u_{(m)} & = - T_{(m)} \left[ {\left(\frac{{P_{(j)} + P_{(k)} }}{2} - P_{(i)} \right)\frac{{u_{{\left({mn} \right)}}^{0} }}{{u_{{\left( {mn} \right)}}^{0} + u_{{\left({jk} \right)}}^{0} }} + \left( \frac{{\lambda_{\left( j \right)}P_{\left( j \right)} + \lambda_{\left( k \right)} P_{\left( k\right)} }}{{(\lambda_{\left( j \right)} + \lambda_{\left( k\right)} )}} - P_{(i)} \right)\frac{{u_{{\left( {jk} \right)}}^{0}}}{{u_{{\left( {mn} \right)}}^{0} + u_{{\left( {jk} \right)}}^{0}}}} \right] \\ u_{(n)} & = - T_{(n)} \left[ {\left( {\frac{{P_{(j)}+ P_{(k)} }}{2} - P_{(i)} } \right)\frac{{u_{{\left( {mn}\right)}}^{0} }}{{u_{{\left( {mn} \right)}}^{0} + u_{{\left( {jk}\right)}}^{0} }} + \left( \frac{{\lambda_{\left( j \right)}P_{\left( j \right)} + \lambda_{\left( k \right)} P_{\left( k\right)} }}{{(\lambda_{\left( j \right)} + \lambda_{\left( k\right)} )}} - P_{(i)} \right)\frac{{u_{{\left( {jk} \right)}}^{0}}}{{u_{{\left( {mn} \right)}}^{0} + u_{{\left( {jk} \right)}}^{0}}}} \right],\end{aligned}, \right.$$
(20)

where the meanings of \(T_{\left( m \right)}\), \(T_{(n)}\), \(u_{{\left( {mn} \right)}}^{0}\), and \(u_{{\left( {jk} \right)}}^{0}\) are given in Appendix 1.

This numerical scheme has the following advantages:

  • It has a simple form as it does not require any additional information from other blocks except for the current three connected blocks.

  • It is easy to use as it does not need any interpolation/extrapolation.

  • It is based on the continuity of mass flux across the interfaces and it is rigorously self-consistent under the homogeneous condition or the condition that fine-block permeabilities are identical. The latter condition is often met for most LGR applications when the permeabilities of the refined blocks are directly from the coarse block permeability.

4.2.2 Coupling of mass conservation equations

To guarantee the numerical stability, upstream schemes are mainly used to solve mass conservation equations. In the UTCHEM simulator, there are several options for the upstream schemes. These are first-order upstream scheme, second-order upstream scheme, and a third-order upstream scheme named Leonard’s scheme (Saad 1989; Liu et al. 1994). Because higher order upstream schemes are more accurate to integrate concentration equations, we only discuss about how to couple concentration equations using the Leonard scheme in this paper. Under the structured grid in Fig. 7, the Leonard scheme to calculate the mass flux across the interface at \(i + \frac{1}{2}\) is expressed by

Fig. 7
figure 7

Schematic of a third-order upstream scheme (Leonard’s scheme) for a structured grid

$$f_{{\left({i + \frac{1}{2}} \right)}} = \left\{\begin{array}{ll}u_{{\left( {i + \frac{1}{2}} \right)}} \left[ {C_{\left( i \right)}- \frac{{\Updelta x_{\left( i \right)} (C_{{\left( {i - 1} \right)}}- C_{\left( i \right)} )}}{{3\left( {\Updelta x_{\left( i \right)} +\Updelta x_{{\left( {i - 1} \right)}} } \right)}} - \frac{{2\Updelta x_{\left( i \right)} (C_{\left( i \right)} - C_{{\left( {i + 1}\right)}} )}}{{3\left( {\Updelta x_{\left( i \right)} + \Updelta x_{{\left( {i + 1} \right)}} } \right)}}} \right] &\text{if}\;u_{{\left( {i + \frac{1}{2}} \right)}} > 0 \\ u_{{\left( {i + \frac{1}{2}} \right)}} \left[ {C_{{\left( {i + 1}\right)}} - \frac{{\Updelta x_{{\left( {i + 1} \right)}} (C_{\left(i \right)} - C_{{\left( {i + 1} \right)}} )}}{{3\left( {\Updelta x_{\left( i \right)} + \Updelta x_{{\left( {i + 1} \right)}} }\right)}} - \frac{{2\Updelta x_{{\left( {i + 1} \right)}}(C_{{\left( {i + 1} \right)}} - C_{{\left( {i + 2} \right)}})}}{{3\left( {\Updelta x_{{\left( {i + 2} \right)}} + \Updelta x_{{\left( {i + 1} \right)}} } \right)}}} \right] & \text{if}\; u_{{\left( {i + \frac{1}{2}} \right)}} < 0, \\ \end{array} \right.$$
(21)

where C represents the component concentration.

For the LGR grid, we take the block combination in Fig. 8 as one example. In this case, because the block center points are not in the same line, we utilize bilinear interpolation to obtain the concentration values C′ at the auxiliary points, e.g., i1 and i2. After that, we extend Leonard’s scheme to this case:

Fig. 8
figure 8

Schematic of Leonard’s scheme for an LGR case

$$f_{\left( m \right)} = \left\{ \begin{array}{ll} u_{\left(m \right)} \left[ {C^{{\prime }}_{{\left( {i1} \right)}} -\frac{{\Updelta x_{\left( i \right)} (C_{{\left( {i1 - } \right)}} -C^{{\prime }}_{{\left( {i1} \right)}} )}}{{3\left( {\Updelta x_{\left( i \right)} + \Updelta x_{{\left( {i - } \right)}} }\right)}} - \frac{{2\Updelta x_{\left( i \right)} (C^{{\prime}}_{{\left( {i1} \right)}} - C_{\left( j \right)} )}}{{3\left({\Updelta x_{\left( i \right)} + \Updelta x_{\left( j \right)} }\right)}}} \right] & \text{if}\; u_{\left( m \right)} > 0\\ u_{\left( m \right)} \left[ {C_{\left( j \right)} -\frac{{\Updelta x_{\left( j \right)} (C^{{\prime }}_{{\left( {i1}\right)}} - C_{\left( j \right)} )}}{{3\left( {\Updelta x_{\left( i\right)} + \Updelta x_{\left( j \right)} } \right)}} -\frac{{2\Updelta x_{\left( j \right)} (C_{\left( j \right)} -C_{{\left( {j + } \right)}} )}}{{3\left( {\Updelta x_{{\left( {j + }\right)}} + \Updelta x_{\left( j \right)} } \right)}}} \right] & \text{if}\; u_{\left( m \right)} < 0, \\ \end{array} \right.$$
(22)
$$f_{\left( n \right)} = \left\{ \begin{array}{ll} u_{\left( n\right)} \left[ {C^{{\prime }}_{{\left( {i2} \right)}} -\frac{{\Updelta x_{\left( i \right)} (C_{{\left( {i1 - } \right)}} -C^{{\prime }}_{{\left( {i2} \right)}} )}}{{3\left( {\Updelta x_{\left( i \right)} + \Updelta x_{{\left( {i - } \right)}} }\right)}} - \frac{{2\Updelta x_{\left( i \right)} (C^{{\prime}}_{{\left( {i2} \right)}} - C_{\left( k \right)} )}}{{3\left({\Updelta x_{\left( i \right)} + \Updelta x_{\left( k \right)} }\right)}}} \right] & \text{if}\; u_{\left( n \right)} > 0 \\ u_{\left( n \right)} \left[ {C_{\left( k \right)} -\frac{{\Updelta x_{\left( k \right)} (C^{{\prime }}_{{\left( {i2} \right)}} - C_{\left( k \right)} )}}{{3\left( {\Updelta x_{\left( i \right)} + \Updelta x_{\left( k \right)} } \right)}} - \frac{{2\Updelta x_{\left( j \right)} (C_{\left( k \right)} - C_{{\left( {k + } \right)}} )}}{{3\left( {\Updelta x_{{\left( {k + } \right)}} + \Updelta x_{\left( k \right)} } \right)}} } \right] & \text{if}\; u_{\left( n \right)} < 0, \\ \end{array} \right.$$
(23)

where \(f_{\left( m \right)}\) and \(f_{\left( n \right)}\) are mass fluxes across the interfaces m and n.

5 Case study

To validate the LGR method proposed in this paper, we tested four simulation examples. These examples show comparisons of simulation results using the LGR method with those using the analytical polymer well model, and full grid refinement (FGR) where the whole model has the smallest grid size of the LGR.

5.1 Case 1: Polymer flooding in a 2D homogeneous reservoir

We start with a base case for polymer flooding. The polymer solution is assumed to be shear thinning. Adsorption and permeability reduction are also considered. The reservoir and well descriptions are given in Table 2. The basic grid used for simulation is 15 × 15 × 1, and the grid with a 4-level refinement is shown in Fig. 9. It shows that the well block is refined to 8 × 8 finest blocks and several transitional blocks connect the original coarse blocks and finest blocks.

Table 2 Reservoir and well descriptions (Case 1)
Fig. 9
figure 9

The mesh of the 4-level local grid refinement for Case 1

In this case, the injection rate is constant, so the injection pressure varies with different polymer viscosities and thus well injectivities. Figure 10 shows a comparison of injection pressures using different grids or well models. For water flooding periods, there are no obvious differences in injection pressures among different simulations. However, when shifted to polymer flooding, it is observed that the injection pressures are remarkably differentiated using different grids or well models because of polymer rheology. It also shows that using the original grid leads to the highest injection pressure. The reason is that the averaged viscosity within the well block area is artificially amplified due to a lower smeared flux rate caused by the coarse block size, which leads to an over-prediction of injection pressure that triggers the pressure limit, for example, in the case that the facility’s injection pressure limit is 6000 psi. By contrast with grid refinement around the well block, the injection pressure gradually decreases which results in a much “safer” injection pressure. Also, the variation of the injection pressure shrinks with an increase in the level of grid refinement, showing a convergent trend. Because simulation results using 3-level LGR and 4-level LGR are relatively close and further refinement may lead to excessive computational times, we regard the simulation result of 4-level LGR as the reference result to evaluate other simulations. Of course, it should be more precise to use the fully refined grid as the reference. Nevertheless, Fig. 10 shows that 4-level FGR gives a very similar injection pressure to the 4-level LGR. We also use the analytical injectivity model (Li and Delshad 2014) and we observe that the simulated injection pressure is between the results of 3-level LGR and 4-level LGR. This result is more accurate than the case without grid refinement and shows consistency with LGR results.

Fig. 10
figure 10

Comparison of injection pressure using different grids or well models for Case 1

To further demonstrate the accuracy and computational efficiency of the LGR method, we compare simulation results with CMG_STARS (2012). In the above case, rheology parameters, P α and γ 1/2, used in the polymer rheology equation (Eq. 10), are set as 1.8 and 10 s−1, respectively. These parameters lead to a relatively sharp shear-thinning curve. CMG_STARS uses a different polymer rheology equation, which is a power-law equation:

$$\mu_{\text{app}} = \left\{ \begin{array}{lll}\mu_{\text{p}}^{0} & \text{if} & {u_{\text{w}} < u_{\text{lower}} }\\ {\mu_{\text{p}}^{0} \left[ {\frac{{u_{\text{w}}}}{{u_{\text{lower}} }}} \right]^{{n_{\text{thin}} - 1}} } & \text{if} & {u_{\text{lower}} < u_{\text{w}} < u_{\text{upper}} } \\ \mu_{\infty } & \text{if} & {u_{\text{w}} > u_{\text{upper}} }, \\ \end{array} \right.$$
(24)

where n thin is the power-law exponent, and u lower is defined by the point on the power-law curve when \(\mu_{\text{app}}\) is equal to \(\mu_{\text{p}}^{0}.\) To be close to the UTCHEM polymer equation (Eq. 10) for Case 1 using the CMG_STARS equation, we found out that n thin must be small and it causes numerical stability issues which are also indicated in the manual of CMG_STARS (2012). Therefore, to achieve a relatively similar polymer rheology curves for both simulators, we use P α  = 1.5 and γ 1/2 = 3.8 s−1 for UTCHEM and n thin = 0.5 and u lower = 0.02 ft/day for CMG_STARS. Figure 11 shows a comparison of the results between UTCHEM and CMG_STARS using the original grid, 4-level LGR, and 4-level FGR, respectively. It is found that the injection pressure curves for the original grid match very well between UTCHEM and CMG_STARS. In addition, the 4-level LGR simulation results of UTCHEM and CMG_STARS are also close, with only a minor difference. This is acceptable because CMG_STARS and UTCHEM use different polymer concentration-dependent viscosity models and shear-thinning models as mentioned in Goudarzi et al. (2013a). Again, for FGR results, we observe both UTCHEM and CMG_STARS match well with LGR results.

Fig. 11
figure 11

Comparison of injection pressure between UTCHEM and CMG_STARS using different grids for Case 1

In Table 3, we compare the CPU times taken by UTCHEM and CMG_STARS using different grids. For both simulators, we use the same maximum time step (0.01 day) and the same numerical scheme (IMPES) on the same computer for the sake of consistency. We can see that CMG_STARS takes about 3 times that of UTCHEM for the original coarse grid, 2.5 times for the 4-level LGR, and 2.2 times for the 4-level FGR. An increase in CPU times is also in the same order of the increase in gridblock numbers. LGR shows very good computational efficiency compared to FGR. Actually, CMG_STARS can take larger time steps because it can use an adaptive implicit scheme. Therefore, the purpose of the comparison is not to tell which simulator is better in performance but to obtain a sense of the scaling of the CPU times using LGR and FGR. In fact, the advantage of using UTCHEM for modeling polymer flood is that it has more comprehensive polymer models than CMG_STARS, such as more options of rheology models and stricter concentration-dependent and salinity-dependent polymer, and near-well-corrected viscosity models.

Table 3 CPU times for UTCHEM and CMG_STARS using different grids for Case 1

5.2 Case 2: Polymer flooding in a 2D reservoir with a fracture near the injector

This case is aimed to analyze the behavior of the LGR in the presence of a planar fracture near the injector, which may often be encountered during polymer injection projects (Manichand et al. 2013; Clemens et al. 2013). We assume that the reservoir has the same condition as case 1 except that there is a fracture initiated from the well block of the injector. We show in Fig. 12 a 4-level LGR grid with permeability field (the fracture permeability is assumed to be 10 Darcy). In this case, it is obviously not proper to use the coarse grid as well as the analytical injectivity model, which could not describe the flow in fractures. Therefore, it is obligatory to refine the gridblocks.

Fig. 12
figure 12

Permeability field of a fractured reservoir using an LGR grid

Figure 13 shows simulation results under three conditions: LGR without fractures, LGR with fractures, and FGR with fractures. The LGR with fractures leads to a significantly smaller injection pressure compared to the LGR without fractures, which shows the importance of accounting for fractures near the injector. We also show that the pressure curve of FGR is close to that of LGR, which proves the agreement of the results between using the two types of grids.

Fig. 13
figure 13

Comparison of injector bottomhole pressure (BHP) using different grids or well models for Case 2

5.3 Case 3: Polymer flooding in a 3D heterogeneous reservoir

We study a polymer flooding field case. The polymer solution is assumed to be shear thinning. Adsorption and permeability reduction are also considered. The reservoir and well descriptions are given in Table 4. The permeability field and well locations are shown in Fig. 14. The relevant grid with 4-level LGR is in Fig. 15. Some wells are deviated so that the LGR is expanded in the xy plane.

Table 4 Reservoir and well descriptions (Case 3)
Fig. 14
figure 14

Permeability distribution and well locations for Case 3

Fig. 15
figure 15

Well locations and 4-level local grid refinement

In this case, the injection pressure is fixed so that the injection rate varies with well injectivity. Figure 16 shows the simulated overall injection rate using the original grid, 4-level LGR, and the analytical injectivity model. It is observed that we achieve a higher injection rate with grid refinement compared to the original grid, which is consistent with the polymer rheology. This is significant since we need to accurately calculate how high a polymer viscosity can be injected and the predicted bottomhole pressure (BHP) for cases that the operators do not plan to inject polymer above the fracture gradient. In this case, we lack the results of FGR because of the excessive simulation time. It is observed that the analytical model slightly overestimates the overall injection rate compared to 4-level LGR. The analytical model is not accurate for this case because the well is inclined.

Fig. 16
figure 16

Comparison of overall injection rate using different grids or well models for Case 3

5.4 Case 4: A pilot of alkaline co-solvent polymer (ACP) flood

The reservoir is a sandstone reservoir at a depth of approximately 1000 ft which has undergone water flooding for several years. The average oil saturation before ACP flood is approximately 44.3 %. The pilot area includes 6 inverted 7-spot well patterns. The polymer solution is assumed to be shear thinning. The reservoir and well descriptions are given in Table 5. The permeability field and well locations are shown in Fig. 17. The relevant grid with a 3-level LGR is shown in Fig. 18. Injectors are operated at constant injection rates.

Table 5 Reservoir and well descriptions (Case 4)
Fig. 17
figure 17

Permeability distributions and well locations for Case 4

Fig. 18
figure 18

Schematic of the 3-level local grid refinement for Case 4

Figure 19 shows the BHP of Injector ECN-105i using different grids and well models (we note that other injectors have similar pressure profiles). For the original 42 × 37 × 5 coarse grid, the BHP is highest. When the grid is locally refined near the injector, the BHP decreases significantly, and the pressure change is more gradual, showing a significant improvement for estimating the BHP of the injector using the LGR. The 3-level LGR gives a much smaller BHP compared to the 2-level LGR. The results from the 2-level LGR and 3-level LGR are in very good agreement with the relevant FGR results, respectively, while taking much less CPU time (Table 6). Even though more CPU time is needed using the LGR as indicated by Table 6, one needs to consider the significant improvement in accuracy to balance the cost of computational time. The analytical injectivity model gives a similar trend but a different profile of the pressure compared to using the original grid and the LGR grids, because there is a non-zero skin factor for the well while the analytical injectivity model originates assuming that skin is equal to 0. This indicates that the analytical polymer injectivity model is not always useful for field cases.

Fig. 19
figure 19

Comparison of BHP for injector ECN-105i using different grids and well models for Case 4

Table 6 CPU times for Case 4 using original grid, LGR, and FGR

6 Summary and conclusions

We have used an efficient LGR algorithm to improve the accuracy of numerically estimating the near-wellbore solutions when dealing with complex rheology of polymer or emulsion solutions. We present an algorithm to generate the block list and connections and propose an efficient numerical scheme to couple the pressure and mass conservation equations using the LGR composite grid and with consideration of heterogeneous reservoir properties. Several numerical examples are carried out, focusing on polymer flooding, reservoir with fractures near injection wells, and ACP flooding. Simulation results reveal that the LGR is able to obtain more accurate polymer injectivity compared to using the coarse grid and the analytical injectivity model. The LGR can deal with more complex and realistic reservoir conditions such as fractures and skin. CPU time is significantly reduced using LGR compared to FGR. This offers a reliable and efficient solution to handle the general concern of reservoir simulations for the shear-dependent polymer rheology in chemical flooding projects.