1 Introduction

Slip or reactivation of fractures and faults in the earth’s crust can be caused by natural changes in the stress field in the rock, but concerns also arise related to human induced seismicity. Over 700 cases of seismicity related to human activities have been reported, caused by a variety of different activities [4]. In this paper, we focus on fracture reactivation due to injection of fluids in underground reservoirs, which concerns applications such as CO2 storage, enhanced oil recovery and production of geothermal energy. The seismic events related to these types of activities are usually not noticeable except by very sensitive equipment, but events of magnitude up to M3.5 have been recorded [12].

Reactivation of fractures is a strongly coupled problem involving disparate physical processes, including fluid flow, deformation of rock surrounding the fractures and the plastic deformation of fractures. In this work we will couple models for each of these sub-problems to simulate fracture reactivation and corresponding aperture changes. One of the main challenges of modeling fractures in the subsurface is the absence of scale separation between fractures, which can range from sub-resolution micro-fractures to fractures and faults spanning the whole reservoir. In the model presented here, small scale fractures are assumed to be up-scaled into effective matrix parameters, such as permeability, while the large macroscopic fractures are explicitly resolved. To reduce the computational cost further, fractures are represented as lower-dimensional domains with an associated aperture. We apply this mixed dimensional hybrid approach to model fluid flow following the ideas of [3].

The fluid pressure will act as a trigger mechanism for fracture reactivation, which is governed by a Mohr-Coulomb criterion: A fracture slips when the shear traction equals the coefficient of friction times the effective normal traction. This bound on shear traction introduces a non-linear inequality constraint to the system of equations, and various techniques have been employed to handle this constraint [1, 7]. We use a static-dynamic friction model where the coefficient of friction drops instantaneous when a fracture slips. Results from this model should be interpreted with caution, as it falls into the category of “inherently discrete” models due to this discontinuous drop [9]. Nevertheless, it has been shown to give feasible results in modeling of fracture reactivation as a consequence of fluid injection at elevated pressures [8]. Finding the regions of slip on a fracture is one of the challenges of this model, due to the discontinuous change in the coefficient of friction between stick and slip regions. We will give a mathematical formulation of the friction problem, and then present a simple solution strategy following the ideas Ucar et al. [11], who use an idea of excess shear stress to estimate fracture slip based on the shear and normal stress. They approximated the slip length, at each time step, based on how much the Mohr-Coulomb criterion is violated, multiplied by a “fracture stiffness” parameter. In the current work, we improve this approach by suggesting how this stiffness parameter should depend on the shear modulus and mesh size.

2 Governing Equations

We consider three processes in the subsurface; fluid flow, rock deformation, and fracture deformation. Each of the problems will be defined in different domains of different dimensions, and the domains and processes are coupled together. As mentioned above, fractures are represented as lower dimensional objects in the reservoir. The intersection of two fractures is, correspondingly, represented by a line-segment. The reservoir is in this way divided into domains Ω d of different dimension d; the rock matrix Ω 3, fractures Ω 2, intersection of fractures Ω 1, and the intersection points of these lines Ω 0, as shown in Fig. 1.

Fig. 1
figure 1

A mixed dimensional domain. The red cube represents the 3D domain, the green squares represent the 2D domains, the blue lines represent 1D domains, and the black dot the 0D domain

2.1 Flow

We will assume that the fluid flow follows Darcy’s law in all domains, and extend the approach of Boon et al. [2] to compressible flow. For a detailed explanation of notation we refer the reader to the same work. The mixed-dimensional formulation for the conservation of mass is given by

$$\displaystyle \begin{aligned} \phi c_p\frac{\partial p}{\partial t} - \nabla \cdot \mathcal K\nabla p + \mathcal T = q \qquad \text{in}\ \{\varOmega^d\}_{d=0,\ldots,3}, \end{aligned} $$
(1)

where ϕ is the porosity, c p the fluid compressibility, \(\mathcal K\) the effective permeability (taking into account the scaling with fracture aperture and viscosity), p the fluid pressure, \(\mathcal T\) the transfer term between domains of different dimensions, and q the source and sink term.

2.2 Rock Deformation

The rock is modeled as an elastic medium, and assumed to always be in quasi-static equilibrium. The conservation of momentum can be written as

$$\displaystyle \begin{aligned} \nabla \cdot \boldsymbol \sigma = 0,\quad \boldsymbol \sigma = G (\nabla \boldsymbol u + (\nabla \boldsymbol u)^\top) + \lambda \boldsymbol I\nabla\cdot \boldsymbol u \quad \text{in}\ \varOmega^3, \end{aligned} $$
(2)

where as for the flow, we have neglected the gravitational term. The variable σ is the stress tensor, G and λ are the Lamé parameters, I the identity matrix, and u the displacement vector. Because a fracture will have exactly two interfaces with Ω 3, we adopt the notation that Γ + defines one side, while Γ the other.

We will neglect any elastic effects of contacting asperities of the fracture surfaces and potential gouge filling the fractures, thus, the traction on the two fracture boundaries must balance

$$\displaystyle \begin{aligned} \boldsymbol T^+ + \boldsymbol T^- = 0, \end{aligned} $$
(3)

where the traction is defined as T = σ ⋅n, with n being the normal vector of the surface.

In addition to boundary conditions on the reservoir domain, we need a total of six equations defined on the fracture interfaces since we have three degrees of freedom on each fracture side. The first three are obtained from the force balance Eq. (3) and the last three equations are defined by the coupling to the fracture deformation model, which governs the fracture response to rock stress and strain.

2.3 Fracture Deformation

For two surfaces in contact, the magnitude of the shear traction is bounded by the coefficient of friction times the effective normal traction

$$\displaystyle \begin{aligned} \lvert \boldsymbol T_s\rvert \leq \mu (T_n - p), \end{aligned} $$
(4)

where T s is the shear traction, μ the coefficient of friction, and T n the normal traction. We use a static-dynamic friction model, where the coefficient takes one value when the fracture is not slipping μ = μ s (static friction), and another, lower value when it is slipping μ = μ d (dynamic friction).

We introduce the slip distance d which defines the relative fracture displacement

$$\displaystyle \begin{aligned} \boldsymbol d = \boldsymbol u^+ - \boldsymbol u^-, \end{aligned}$$

where u + and u are the displacements on the positive and negative side of a fracture. When a fracture slips, the aperture can increase due to asperities on the fracture surfaces, and we approximate this increase by letting the aperture depend linearly on slip distance.

According to the Mohr-Coulomb criterion, slip on a fracture is triggered when Inequality (4) reaches equality, using the static coefficient of friction. We define Γ s to be the part of the fracture that is slipping, and enforce Inequality (4) as an equality in this domain, using the dynamic coefficient of friction. Further, when a fracture is slipping it should slip in the direction of shear traction.

To sum up, the friction condition on the fractures can be formulated as

$$\displaystyle \begin{aligned} &\lvert \boldsymbol T_s\rvert < \mu_s(T_n - p) && \boldsymbol x\in\varOmega^2\setminus\varGamma_s{} \end{aligned} $$
(5a)
$$\displaystyle \begin{aligned} &\boldsymbol d = 0 && \boldsymbol x \in \varOmega^2\setminus\varGamma_s \end{aligned} $$
(5b)
$$\displaystyle \begin{aligned} &\lvert \boldsymbol T_s\rvert - \mu_d(T_n - p) = 0 && \boldsymbol x \in\varGamma_s{} \end{aligned} $$
(5c)
$$\displaystyle \begin{aligned} &\boldsymbol d = \chi \boldsymbol T_s,\ \chi > 0 && \boldsymbol x \in \varGamma_s{} \end{aligned} $$
(5d)
$$\displaystyle \begin{aligned} &\varGamma_s = \{\boldsymbol x\in \varOmega^2: \boldsymbol d \neq 0\},&&{} \end{aligned} $$
(5e)

where we have included the definition of the slip region to stress the fact that Γ s is not known, but one of the unknowns in this system.

3 Spatial Discretization

Both the flow equation and the elasticity problem are discretized using finite volume schemes. The flow equation is discretized using the two-point flux approximation, while the elasticity is discretized using the multi-point stress approximation [5, 10]. The implementation has been done in PorePy, which is an open source Python code for simulating fractured and deformable porous media [6].

4 Solution Strategy

We will use an iterative scheme to solve the set of Eqs. (1), (2) and (5). At each step in the scheme we will first estimate the slip region Γ s and then solve the equations using a linearized approximation of Eq. (5c).

We start by solving Eq. (1) using backward Euler. To solve (2) and (5), we first assume that the fractures do not slip at the current time step, Γ s = ∅, thus, the current slip vector d k+1 must equal the slip vector at the previous time step d k. Together with the stress condition, T + = −T , the number of unknowns equals the number of equations and we have a closed system. After we obtain the displacement u k+1, we can calculate the stress, and from this traction, on the fractures from Eq. (2). We check if the Mohr-Coulomb criterion (5a) is satisfied; if it is, our assumption that we have no slip is good, and we continue to the next time step. If the condition is violated, we update the slip region Γ s by including all faces that violate the condition. We define the “excess shear stress” to be the residual of Eq. (5c),

$$\displaystyle \begin{aligned} T_e = \lvert \boldsymbol T_s\rvert - \mu_d(T_n - p) \quad \boldsymbol x\in \varGamma_s, \end{aligned}$$

where we use the dynamic coefficient of friction. From Eq. (5d), we know that the slip should be in the direction of shear stress, but the variable χ is unknown. We make a simple estimate of this distance by assuming that all degrees of freedom are fixed except on a single face \(\mathcal F_i\) on the fracture. The displacement gradient ∇u i at this face then grows linearly with slip distance, and from Eq. (2) we obtain that the corresponding change in shear traction grows as

$$\displaystyle \begin{aligned} \varDelta\boldsymbol T_s \sim \frac{G}{\lvert \mathcal F_i \rvert^{1/2}}\boldsymbol d_i, \end{aligned}$$

where \(\lvert \mathcal F_i\rvert \) is the area of the face. For each face that is slipping, we therefore set our new guess for the slip vector to

$$\displaystyle \begin{aligned} \boldsymbol d_i^{k+1} = \boldsymbol d_i^k + \frac{\gamma \lvert \mathcal F_i\rvert^{1/2}}{G}T_e\boldsymbol \tau, \end{aligned}$$

where the constant γ is a dimensionless numerical parameter which should be chosen of the order of magnitude 1 and τ the tangential vector pointing in the direction of maximum shear traction. We now have managed to reduce the equations to a linear system, but its computational cost is still high as the linear system is about three times as large as the system for the fluid flow. Choosing the optimal step length parameter is therefore crucial to obtain a viable scheme. After updating the slip distance for all faces violating the Mohr-Coulomb criterion, we go back to solving Eq. (2), and iterate in this way until Eqs. (5a) and (5c) is satisfied. Note that we might update the slip distance for a fracture face several times per time step before the excess shear stress is reduced to zero.

5 Numerical Results

In this section, we will present simulations of two different reservoirs, one with a single fracture, and the second with several fractures.

The purpose of the first example is twofold; we wish to validate that the slip length in fact scales with shear modulus and the mesh size, and we will try to find an optimal γ. Meshes of two different sizes are used, one fine and one coarse, and two different shear modulus parameters G. We will vary γ and count the number of iterations per time step and look at the error in approximating Eq. (5). We stop the iteration procedure when T eG < 1e−5. The geometric domain is described by a single circular fracture with a radius of 1500 m. Fluid is injected at the center of the fracture at a constant rate of 1 L/s.

The total number of iterations at each time step is shown in Fig. 2. The number of iterations is relatively low at the beginning of the injection, but increases with time. At the first time steps, only a few cells in the vicinity of the injection cells slip. As the pressure front moves radially out from the center, more cells slip at each time step. When several cells slip in the same region, the assumption we made when updating the slip distance becomes more erroneous, and we need additional iterations to reach the stop criterion. For the coarse grid, the slip is more or less limited to one or two rows of cells around the pressure front, so the iteration numbers stay low. For the fine grid many more cells slip, which causes the number of iterations to increase drastically. Increasing the step parameter γ does as expected reduce the number of iterations. However, as γ increases, the overshoot of the slip distance can also increase (meaning that the excess shear stress T e becomes negative). For the fine grid, we did not include a simulation of γ = 4 as the scheme did not converge for this value. The maximum overshoot error \(\lvert T_e\rvert / G\) were on the order of magnitude 1e−4 for γ = 3, 4 and 1e−5 for γ = 2. Typically, the error for only one or two cells came close to the maximum value, while the error for the other cells were much smaller.

Fig. 2
figure 2

Number of iterations needed for each time step to find the slip distance d. The left and right figures show the number of iteration needed on a fine grid (852 fracture cells) and a coarse grid (226 fracture cells) respectively

In the second case, we apply the algorithm to a small fracture network of 8 fractures. The size of the fractures varies from a few hundred meters up to 1500 m. We inject water at the center of the largest fracture with a constant rate of 30 L/s for 30 min. Figure 3 depicts the total slip distance at the end of the simulation. We register slip after the shut-in of the well as the pressure migrates through the fracture network. At the end time equilibrium has been reached, and we observe how the slip distance varies significantly between different fractures. This is due to the fracture’s orientation relative to the background stress field, and how far they are located from the injection well.

Fig. 3
figure 3

Total slip at equlibrium after shut-in of well for case 2. The well is located at the center of the biggest fracture

6 Concluding Remarks

This paper has presented a coupled model of compressible fluid flow, elastic rock deformation and plastic fracture deformation. A simple iterative scheme to handle the non-linear coupling between the rock and fracture deformation were discussed, and we suggested an improvement to this scheme by showing how the step length parameter should depend on the mesh size and shear modulus. The numerical results support the choice of step length.