1 Introduction

Hydraulic fracturing is a technology used to enhance the heat production from geothermal reservoirs (Zimmermann et al. 2009) and stimulate shale gas/oil production from hydrocarbon reservoirs (Olson et al. 2012; Lu et al. 2015). During the last decades, a growing amount of research and development have been dedicated to investigate the behavior of hydraulic fracturing using field-data analyzing (Bao and Eaton 2016), experiments (Olson et al. 2012) and modelling (Wu and Olson 2014). Investigating fluid-driven fractures is the key to understand, control and optimize the operation of hydraulic fracturing in terms of cost, efficiency, and sustainability. Such research and development is also important for understanding how to avoid underground water contamination (Chen and Carter 2016) and induced earthquakes (Rutqvist et al. 2013; Bao and Eaton 2016) during underground injection activities.

A great number of numerical methodologies have been developed to simulate fracturing. The Finite Element Method (FEM) is known to be effective for geomechanics analysis associated with soil- and rock engineering (Zienkiewicz and Taylor 2000), because of its ability to handle complex nonlinear behavior and boundary conditions. In FEM, fractures have been modeled by at least two different approaches. On common approach involves fracture propagation along element boundaries, requiring advanced remeshing technology (Paluszny et al. 2013; Yan et al. 2018).

In order to simulate fracturing without remeshing, advanced numerical methodologies have been proposed based on the theory of partition of unity (Shi 1991), including Meshfree Methods (Belytschko et al. 1994), Generalized Finite Element Method (GFEM) (Duarte et al. 2001), Extended Finite Element Method (XFEM) (Moës et al. 1999) and Numerical Manifold Method (Yang et al. 2016, 2018; Hu et al. 2017). In order to take advantages of both FEM and meshfree methods, the FE-Meshfree Method (FEMM) was proposed and developed, which is a special form of discontinuous GFEM (Rajendran and Zhang 2007). Originally, the shape functions of FEM were used for constructing the partition of unity, while the shape functions of meshfree methods were used for constructing local approximations. Subsequently, two-dimensional (2D) 4-node quadrilateral elements (Tang et al. 2009), 2D 3-node triangular elements (Yang et al. 2014) and three-dimensional (3D) hexahedral elements (Yang et al. 2017a, b) with continuous nodal stress were constructed in the context of FEMM. Moreover, instead of polynomial basic functions, radial-polynomial basis functions (Xu and Rajendran 2011; Yao et al. 2016) and mean value functions (Yang et al. 2015) have been used for nodal approximation in the context of PUM, in order to avoid instability in FEMM. In Liu et al. (2018a, b), the FEMM is used to simulate hydraulic fracturing, in which only the fractures are taken into account for fluid pathways.

TOUGH2 is a well-established code for analyzing multiphase, multicomponent flow and heat transport processes in geological media (Pruess et al. 1999). For coupled thermal-hydrologic-mechanical (THM), TOUGH2 was first linked to FLAC3D by Rutqvist et al. (2002). The resulting TOUGH-FLAC simulator has over the past 15 years been applied for the analysis of a wide range of subsurface engineering activities, such as CO2 geological storage, geothermal exploration, and nuclear waste disposal (Rutqvist 2011, 2017) and hydraulic fracturing (Rutqvist et al. 2015; Figueiredo et. al. 2017). Meanwhile, a number of numerical simulators based on linking geomechanics codes to TOUGH2 have been developed for various applications (Rutqvist 2017), including TOUGH-RDCA (Pan et al. 2013) and TOUGH-RBSN (Kim et al. 2017) that have been developed for the analysis of fluid driven fracture propagation.

In this paper, the TOUGH2 and FEMM are coupled for simulating 3D fluid-driven fracture propagation in porous rock. Section 2 presents the general approach for coupling TOUGH2 and FEMM, and the resulting TOUGH-FEMM simulator. Sections 3 through 5 provide a description of fracture modeling in FEMM and TOUGH2, including the approach for modeling fracture advancement. In Sect. 6 various verification examples of TOUGH-FEMM are presented, including stress intensity factor calculations against analytic solutions, modeling of hydraulic fracturing laboratory experiments, and by comparison to independent numerical simulation results for multiple interacting hydraulic fractures at ten to hundred meter scale.

2 Hydro-mechanical (H-M) Coupling of TOUGH-FEMM

Hydraulic fracturing is basically associated to three main physical phenomena: (i) the deformation of rocks induced by the fluid pressure within fracture-surfaces and porous rock material, (ii) the instability and propagation of fractures, (iii) the fluid flow in fractures and surrounding porous rock. Hydraulic fracturing involves strong two-way couplings between hydraulic and mechanical processes, including both direct fracture-volume coupling and indirect couplings in terms of property changes. (Rutqvist and Stephansson 2003). The present TOUGH-FEMM simulator, combining the TOUGH2 fluid solver and FEMM solid solver and working routine for their linking is shown in Fig. 1. The TOUGH2 fluid solver is used to calculate fluid flow and fluid pressure, whereas the FEMM solid solver is used to calculate rock deformation and fracture propagation.

Fig. 1
figure 1

Schematic of TOUGH2-FEMM simulator

The TOUGH2 and FEMM modelling is carried out on different meshes, but developed with the same geometrical structure and node numbering. As shown in Fig. 2, TOUGH2 uses one node within each element, and eight nodes of FEMM are located at the corners of each element for 3D analysis. Modelling data has to be interpolated from center points in TOUGH2 element to the vertices of FEMM elements. The processes of generating TOUGH2 and FEMM meshes are shown in Fig. 3. Firstly, a set of hexahedral elements are generated for the simulation of fluid flow in fractures and surrounding rock matrix, using TOUGH2 (see Fig. 3a). Then, a set of tetrahedral elements are generated based on the previous hexahedral elements for the simulation of rock deformation and fracturing, using FEMM.

Fig. 2
figure 2

Coexisting TOUGH and FEMM elements for hydraulic fracturing modelling

Fig. 3
figure 3

Construction of FEMM mesh from TOUGH mesh

3 FEMM for Continuous–Discontinuous Mechanical Analysis

The FEMM is used to simulate 3D hydraulic fracturing without remeshing. The advantages of FEMM integrate advantages from both finite element and meshfree methods, including: (1) explicit geometric representation of fractures; (2) the size of elements does not affect the accuracy of non-planar fracture presentation; (3) stress and strain are obtained directly; (4) element-wise definition of standard mechanical material properties, such as elastic constants and material toughness.

3.1 Governing Equations of Solid phase

Consider a 3D solid body \(\Omega\), which may contain fracture surface \({\Gamma _s}\). The loading is considered to be quasi-static. There is an external boundary \({\Gamma _h}\) where a traction \({\mathbf{\bar {t}}}\) is applied. The unit normal to the boundary is v. The strong form of the governing equations in the body is:

$$\begin{aligned} \nabla \times {\mathbf{\sigma }}+\rho {\mathbf{b}} & =0\;{\text{in}}\;\Omega \\ {\mathbf{\sigma }} \times {\mathbf{v}} & ={\mathbf{h}}\;on\;{\Gamma _h} \\ \end{aligned}$$
(1)

where ρ is the material density and b is body force. On the fracture surface \({\Gamma _s}\) the tractions must be continuous across both the—side and the + side of fracture surface during hydraulic fracturing,

$$- {\mathbf{\sigma }} \times {{\mathbf{n}}^+}={\mathbf{\sigma }} \times {{\mathbf{n}}^ - }={\mathbf{p}}\;{\text{on}}\;{\Gamma _s}$$
(2)

where n is the unit normal of localization fracture surface. \({\mathbf{p}}\) is the hydraulic pressure acting on the fracture surface.

For modeling of strong discontinues, the displacement field \({{\mathbf{u}}^h}\) can be decomposed into a continuous part \({\mathbf{\bar {u}}}\) and a discontinuous part \({\mathbf{\tilde {u}}}\). The total displacement field is then:

$${{\mathbf{u}}^h}\left( {\mathbf{x}} \right)={\mathbf{\bar {u}}}\left( {\mathbf{x}} \right)+{\mathbf{\tilde {u}}}\left( {\mathbf{x}} \right).$$
(3)

The displacement jump is defined as the difference in displacement from the + to the − side of the fracture surface. The displacement jump is:

$${\mathbf{w}}=\left[\kern-0.15em\left[ {{{\mathbf{u}}^h}\left( {\mathbf{x}} \right)} \right]\kern-0.15em\right]={{\mathbf{u}}^h}\left( {{{\mathbf{x}}^+}} \right) - {{\mathbf{u}}^h}\left( {{{\mathbf{x}}^ - }} \right)$$
(4)

The surface energy of fracture surface is:

$${G_s}=\int_{{{\Gamma _s}}} {{\mathbf{p}} \times {\mathbf{w}}} {\text{d}}\Gamma ,$$
(5)

Weak form of the governing equations can be written as:

$$\int_{\Omega } {\delta {{\mathbf{\varepsilon }}^T} \times {\mathbf{\sigma }}{\text{d}}\Omega } =\int_{\Omega } {\delta {{\mathbf{u}}^T} \times {\mathbf{b}}} {\text{d}}\Omega +\int_{{{\Gamma _h}}} {\delta {{\mathbf{u}}^T} \times {\mathbf{\bar {t}}}} {\text{d}}\Gamma +\int_{{{\Gamma _s}}} {{\mathbf{p}} \times {\mathbf{w}}} {\text{d}}\Gamma$$
(6)

3.2 FEMM Fracturing Simulation

In FEMM fracturing simulation, the numerical integration over volume elements intersected by fracture-surfaces is performed with sub-elements. Note that these sub-elements are not used to construct shape functions. Therefore, the aspect ratio of these sub-elements does not have an impact on the computational accuracy (Pereira et al. 2009).

Consider a tetrahedral element, Ω, with four vertices P={P1, P2, P3, P4} which is intersected by a planar fracture, as shown in Fig. 4. With the concept of partition of unity (Shi 1991), the accuracy of global approximation can be improved without adding extra degrees of freedom (DOF), and various local approximation functions can be used for modeling strong or weak discontinuities (Hu et al. 2015; Yang et al. 2018).

Fig. 4
figure 4

A tetrahedral element intersected with a planar fracture

In this work, the FEMM formula is presented to model discontinuities. As shown in 2D cross-section in Fig. 5, there are three different categories of elements: fracture-elements, bridge-elements and ordinary FE-elements. Elements intersected by fractures are called fracture-elements. The bridge-elements are adjacent to the fracture-elements. The remaining elements are the ordinary FE-elements. There are two kinds of nodes: PU-nodes and ordinary FE-nodes. Note that all nodes within fracture-elements are PU-nodes, while the remaining are ordinary FE-nodes. Additionally, bridge-elements consist of both PU-nodes and FE-nodes. At an arbitrary point x = {x, y, z}, the global approximation uh(x) on the element domain Ω is defined as.

Fig. 5
figure 5

Definition of the FE-Element, Bridge-Element and Fracture-Element

$${u^h}({\mathbf{x}})=\sum\limits_{{i=1}}^{4} {{\omega _i}({\mathbf{x}}){u_i}({\mathbf{x}})}$$
(7)

where ui(x) is the local approximation associated with node i. {ω1, ω2, ω3, ω4}, a set of non-negative weight functions, and the summation of these weight functions is equal to one. Local approximations associated to FE-nodes are set to be 1.0. The local approximations associated with PU-nodes are constructed by the least square method on the node patch (Yang et al. 2014).

For fracture-elements, the discontinuous displacement field across the fracture-surface should be correctly reflected. Firstly, we define as an index set of nodes which are related to an element domain. With the visibility criteria (Duarte et al. 2001), we define visibility zones \(\psi _{\Omega }^{{vis}}({\mathbf{x}}) \subset {\psi _\Omega }\) as

$$\psi _{\Omega }^{{{\text{vis}}}}=\left\{ {\;{{\mathbf{x}}_i} \in {\psi _\Omega }|\left[ {{\mathbf{x}} - {{\mathbf{x}}_i}} \right] \cap {\text{crack}}\;{\text{surface}}=\emptyset \;} \right\}$$
(8)

where xi is the coordinates of node i. In order to construct discontinuities approximation along fracture surfaces, we use the Shepard formula (Sukumar et. al. 2000) for weight functions of fracture-elements. According to visibility zones, all non-zero sub-weight-functions, φ′= {φ1′, φ2′, φ3′, φ4′}, are defined at a point x:

$${\varphi _i}^{\prime }({\mathbf{x}})=\left\{ {\begin{array}{*{20}{c}} {\begin{array}{*{20}{c}} {{\varphi _i}({\mathbf{x}})}&{{\mathbf{x}} \in \psi _{\tau }^{{{\text{vis}}}}} \end{array}} \\ {\begin{array}{*{20}{c}} {\;\;0}&{\;\;\;\;{\mathbf{x}} \notin \psi _{\tau }^{{{\text{vis}}}}} \end{array}} \end{array}} \right.$$
(9)

The weight function of fracture-elements associated to node i is

$${\omega _i}({\mathbf{x}})=\frac{{{{\varphi ^{\prime}}_i}({\mathbf{x}})}}{{{{\varphi ^{\prime}}_1}({\mathbf{x}})+{{\varphi ^{\prime}}_2}({\mathbf{x}})+{{\varphi ^{\prime}}_3}({\mathbf{x}})+{{\varphi ^{\prime}}_4}({\mathbf{x}})}}$$
(10)

where φi(x) is constructed by FE shape functions on tetrahedral elements.

$$\begin{gathered} {\varphi _1}({\mathbf{x}})=\frac{{{\text{vol}}(P({\mathbf{x}}){P_2}{P_3}{P_4})}}{{{\text{vol}}({P_1}{P_2}{P_3}{P_4})}},\;{\varphi _2}({\mathbf{x}})=\frac{{{\text{vol}}(P({\mathbf{x}}){P_3}{P_4}{P_1})}}{{{\text{vol}}({P_1}{P_2}{P_3}{P_4})}} \hfill \\ {\varphi _3}({\mathbf{x}})=\frac{{{\text{vol}}(P({\mathbf{x}}){P_4}{P_1}{P_2})}}{{{\text{vol}}({P_1}{P_2}{P_3}{P_4})}},\;{\varphi _4}({\mathbf{x}})=\frac{{{\text{vol}}(P({\mathbf{x}}){P_1}{P_2}{P_3})}}{{{\text{vol}}({P_1}{P_2}{P_3}{P_4})}} \hfill \\ \end{gathered}$$
(11)

vol(P1P2P3P4) is the volume of the tetrahedral element and vol(P(x)PiPjPk) is the volume of the tetrahedral element that consists of an arbitrary point P(x) in a domain and three vertices {Pi, Pj, Pk}.

The formula of weight functions for bridge-elements is equivalent to the standard FEM formula, which can be calculated as, \({\omega _i}({\mathbf{x}})={\varphi _i}({\mathbf{x}})\). The shape functions on FE-elements are the same with the standard FE shape functions.

4 TOUGH2 for Hydro-thermal Analysis

4.1 Governing Equations

TOUGH2 is a well-established computer code for multiphase and multicomponent fluid flow and heat transport in geological media (Pruess et al. 1999). TOUGH2 uses space discretization based on the integral finite differences (IFD), and Newton–Raphson method to linearize the equations of mass balance of each component and energy balance at each time step.

In TOUGH2, the governing equations of mass are in general conservation form, as follows

$$\frac{\partial }{{\partial t}}{M^\kappa } - {Q^\kappa }= - \nabla \times q_{l}^{\kappa }$$
(12)

where, Mk is the mass per unit volume of component κ computed as

$${M^\kappa }=\phi {S_l}{\rho _l}X_{l}^{\kappa }$$
(13)

where, \(\varphi\) is porosity, S is saturation, \(\rho\)is density and \(X_{l}^{\kappa }\) is the mass fraction of component in fluid phase.

The mass flux of each component, κ, can be written as the sum of the advective (Darcy) and non-advective (diffusive) fluxes as:

$${\mathbf{q}}_{l}^{\kappa }= - {\rho _l}X_{l}^{\kappa }\frac{{{\mathbf{k}}{k_{rl}}}}{{{\mu _l}}}(\nabla {p_l} - {\rho _l}{\mathbf{g}}\nabla z)+{\mathbf{i}}_{l}^{\kappa }$$
(14)

where, the diffusive flux is computed (using Fick’s law) as

$${\mathbf{i}}_{l}^{\kappa }= - {\rho _l}{D_v}{\mathbf{I}}\nabla X_{l}^{\kappa }$$
(15)

where, Dv as an effective molecular-diffusion coefficient in a porous media which depends on temperature, gas pressure, medium tortuosity, and gas saturation. In this paper, the temperature is assumed to be constant during the simulations.

With the above equation sets and the first-order finite-difference discretization for time, a fully implicit scheme is adopted in terms of the unknown thermodynamic parameters at time level \({K_I},{K_{II}}\). And the balance equations can be re-formed as:

$${K_I}\sin {\theta _0}+{K_{II}}(3\cos {\theta _0} - 1)={0_{}}$$
(16)

where R is the residual, M is mass per unit volume, V is element volume, A is area of element face, q is flux and Q is the source term. To handle nonlinearity, a Newton–Raphson iteration scheme is adopted to generate the linear equations and iterate within each time step until a certain converge criterion is satisfied (Pruess et al. 1999).

4.2 Simulating Fractures in TOUGH2

In FEMM, the fractures are simulated as discontinuous surfaces. Meanwhile, in TOUGH2, fractures are simulated with solid elements of high permeability. As shown in Fig. 6, the TOUGH2 elements intersected by a fracture are shown in green color, and the permeability value of these colored elements, k, is set as (Pan et al. 2013):

Fig. 6
figure 6

Modify the permeability of tetrahedral elements intersected by fractures

$$k=\frac{{{\delta ^3}}}{{12h}}$$
(17)

where \(\zeta =\frac{{l - x}}{l}\) is the aperture of the fractures and h is the mean size of elements. Equation (17) is based on the cubic relation between aperture of a single fracture and flow transmissivity (Rutqvist and Stephansson 2003). It is a commonly used approach to link a discrete fracture model to a continuum flow model, and has also been applied for continuum hydraulic fracturing modeling involving TOUGH2 (Kim and Moridis 2015; Rutqvist et al. 2015, 2018). The accuracy of the porous media flow in TOUGH2 using such as approach can be tested by comparison to analytic solutions for hydraulic driven fractures as in Rutqvist et al. (2018) for a 1D constant height fracture and as provided in this study for a penny-shaped fracture. This approach of modeling fracture flow is a simplification but provide a reasonable representation of fracture flow transmissivity and storage.

5 Fracture Advancement

5.1 Geometric Representation of Fracture-surfaces

3D fracture-surfaces are represented explicitly by a group of flat triangular fracture-elements (Pereira et al. 2010). As shown in Fig. 7, an ellipsoid fracture is discretized into a set of triangular fracture-elements in 3D. The rock matrix surrounding the fracture is discretized first in TOUGH2 into a set of hexahedral TOUGH-elements, and then each TOUGH-element is discretized into a set of tetrahedral FEMM-elements.

Fig. 7
figure 7

The discretization of FEMM: a an ellipsoid fracture-surface; b a fracture-surface is discretized into triangular fracture-elements; c the surrounding rock is discretized into hexahedral TOUGH elements and tetrahedral FEMM elements

5.2 Fracture Propagation

In this section, we briefly review the criterion used to specify the direction of crack growth. The fracture propagation angle is calculated from the achieved stress intensity factors (SIF), according to the maximum tangential stress criteria (Erdogan and Sih 1963). Generally the methodologies for the SIF computation from achieved stress–strain field fall into two categories: energy methods and direct approaches. Energy methods are based on the computation of energy released rate G, which generally include three main methods: (i) J-integral based methodology, which is developed as a contour integral around the crack tip (Rice 1968); (ii) Virtual crack extension (VCE), which computes the rate of the change in total potential energy for a system for a small virtual extension of the crack; (iii) Virtual crack closure technique which uses Irwin’s crack closure integral (Rybicki and Kanninen 1977). In this paper, the direct approach (Nejati et al. 2015) on displacements is used, which is attractive due to the fact that the displacement fields are the most accurate fields obtained from FEMM solutions.

As shown in Fig. 8, the fracture propagation direction angle is defined in a local Cartesian coordinate system, in which r and \({\theta _0}\) are the polar coordinates. For an arbitrary 3D fracture, there is no analytical solution for the fields near the fracture front. However, it is shown that asymptotically a plane strain condition prevails locally, so that the 3D field solution can be approximated by the 2D plane strain fields (Nakamura and Parks 1988, 1989). The stress field near any point on the fracture front of fractrure is sequentially considered to be in the form of this singular field in the plane strain condition (Anderson 2005). The displacement fields adjacent to the crack tip are given as (Anderson 2005; Nejati et al. 2015):

Fig. 8
figure 8

Fracture propagation angle (\({\theta _0}\)) in local coordinate system

$$\begin{aligned} \left\{ {\begin{array}{*{20}{c}} u \\ v \end{array}} \right\} & =\frac{{{K_{\text{I}}}}}{{2\mu }}\sqrt {\frac{r}{{2\pi }}} \left\{ {\begin{array}{*{20}{c}} {\cos \frac{\theta }{2}\left( {\kappa - 1+2{{\sin }^2}\frac{\theta }{2}} \right)} \\ {\sin \frac{\theta }{2}\left( {\kappa +1 - 2{{\cos }^2}\frac{\theta }{2}} \right)} \end{array}} \right\}+\frac{{{K_{{\text{II}}}}}}{{2\mu }}\sqrt {\frac{r}{{2\pi }}} \left\{ {\begin{array}{*{20}{c}} {\sin \frac{\theta }{2}\left( {1+\kappa +2{{\cos }^2}\frac{\theta }{2}} \right)} \\ {\cos \frac{\theta }{2}\left( {1 - \kappa +2{{\sin }^2}\frac{\theta }{2}} \right)} \end{array}} \right\} \\ w & =\frac{{2{K_{{\text{III}}}}}}{\mu }\sqrt {\frac{r}{{2\pi }}} \sin \frac{\theta }{2} \\ \end{aligned}$$
(18)

where, \({K_{\text{I}}},{K_{{\text{II}}}}\)are Mode I and Mode II stress intensity factors (SIFs) respectively. \(\mu =E/2(1+\nu )\) is the shear modulus, E and \(\nu\) are the Young’s modulus and Poisson’ rotio, and \(\kappa\) is the Kolosov constant which is \(\kappa =3 - 4\nu\) for the plane strain condition.

The displacements can be taken from the fracture surfaces (Nejati et al. 2015), and the distribution of relative displacements of top surface with respect to the bottom surface are calculated using the displacement correlation method (DCM), which is given as,

$${K_I}=\sqrt {\frac{{2\pi }}{{{r_m}}}} \left( {\frac{\mu }{{\kappa +1}}} \right)\left( {\Delta v} \right),\;{K_{II}}=\sqrt {\frac{{2\pi }}{{{r_m}}}} \left( {\frac{\mu }{{\kappa +1}}} \right)\left( {\Delta u} \right),\;{K_{III}}=\sqrt {\frac{{2\pi }}{{{r_m}}}} \left( {\frac{\mu }{4}} \right)\left( {\Delta w} \right)$$
(19)

where \(\Delta u,\Delta v{\text{,}}\Delta w\) are displacement differences at a distance, \({r_m}\), from fracture tips in a local co-ordinate system.

The fracture propagation direction angle is calculated by the maximum tangential stress criteria, which can be achieved by solving the following equation (Erdogan and Sih 1963)

$${K_{\text{I}}}\sin {\theta _0}+{K_{{\text{II}}}}(3\cos {\theta _0} - 1)=0$$
(20)

The simplified form of above equation can be given as

$$\tan \left( {\frac{{{\theta _0}}}{2}} \right)=\frac{1}{4}\left( {\frac{{{K_{\text{I}}}}}{{{K_{{\text{II}}}}}} - \operatorname{sgn} \left( {{K_{{\text{II}}}}} \right)\sqrt {{{\left( {\frac{{{K_{\text{I}}}}}{{{K_{{\text{II}}}}}}} \right)}^2}+8} } \right),\; - \pi \leqslant {\theta _0} \leqslant \pi$$
(21)

where sgn is a signum function.

5.3 The Updating of Fracture-elements During Fracturing

During fracturing, new fracture tips are calculated (see Fig. 9a), and new fracture-elements are added to discretize these fracture-tips, which becomes part of the fracture (see Fig. 9b). A fracture grows as a function of SIF at the fracture tip by adding new fracture surface segments between the old tip and the newly created tip. The propagation vector \(\Delta v_{n}^{i}\) is used to determine the location of the new tip nodes (Paluszny and Zimmerman 2011).

Fig. 9
figure 9

Updating fracture surface

$$\begin{aligned} T_{n}^{{i+1}} & =T_{n}^{i}+\Delta v_{n}^{i} \\ \Delta v_{n}^{i} & =\Delta \gamma _{n}^{i} \cdot {l_{{\text{frac}}}} \\ \end{aligned}$$
(22)

where \(\Delta \gamma _{n}^{i}\) is the unitized fracture propagation direction which is calculate from the fracture propagation angle, and \({l_{{\text{frac}}}}\) is length of fracture propagation at each step. In this paper, \({l_{{\text{frac}}}}\) is chosen empirically, which have been widely used for fracturing simulation (Paluszny and Zimmerman 2011). It is noticed, for more accurate solution, Paris’ law (Paluszny et al. 2013) can be used to calculate the velocity of fracture propagation.

5.4 Fluid Pressure Acting on Fracture Surfaces

Fluid pressure is calculated at the center node of a hexahedral element in TOUGH. Through coordinate transformation, the fluid pressure at tetrahedral element vertices and the matrix element effective stress are calculated. Fluid pressure is applied as surface loading normal to the triangular fracture-elements, which are also the boundary surface of sub-elements (see Fig. 10).

Fig. 10
figure 10

Interpolated pressure applied normal to the surfaces of two sub-elements (a, b) of tetrahedral element formed after fracture propagation

The fluid pressure is applied to the fracture-elements by simplified linearly distributed loading. pi, pj and pk denote fluid pressures calculated by TOUGH2 at the sub-element nodes i, j and k, respectively. Because the pressure is applied perpendicular to the fracture surface, the pressure value at any point x={x, y, z} can be calculated as,

$$p\left( {\mathbf{x}} \right)={N_i}\left( {\mathbf{x}} \right){p_i}+{N_j}\left( {\mathbf{x}} \right){p_j}+{N_k}\left( {\mathbf{x}} \right){p_k}$$
(23)
$${N_i}\left( {\mathbf{x}} \right)=\frac{{S\left( {ojk} \right)}}{{S\left( {ijk} \right)}},\;{N_j}\left( {\mathbf{x}} \right)=\frac{{S\left( {iok} \right)}}{{S\left( {ijk} \right)}},\;{N_k}\left( {\mathbf{x}} \right)=\frac{{S\left( {ijo} \right)}}{{S\left( {ijk} \right)}}$$
(24)

where S(ijk) is the area of triangular element and S(ojk) is the area of triangular element consisted of an arbitrary point o in domain and two vertexes {j, k}.

6 Numerical Tests

In Sect. 6.1, several numerical tests are used to verify the 3D calculation of stress intensity factors through FEMM. Then, in Sect. 6.2 through 6.5, a number of numerical tests are used to verify the performance of TOUGH-FEMM to simulate the propagation of 3D fluid-driven fractures.

6.1 Verification for the Calculation of Stress Intensity Factor

Several numerical tests are used to verify the performance of FEMM for calculating SIF, which is critical for modelling fracture propagation.

6.1.1 Tension Specimen with a Single-edged Crack

A block with an edge crack is analyzed, which has been studied by Sukumar et al. (2000) as a benchmark problem (see Fig. 11a). The dimensions of this specimen are a = b, t/b = 3.0 and h/b = 1.75. A uniform tensile stress (\(\sigma\)) is applied on the top and bottom surfaces of this specimen. The FEMM results are shown in Table 1, which are compared to previous results. The computational mesh is shown in Fig. 11b. As shown in Fig. 11, x′ is a computational point along the crack front in x-direction, which is (− 0.5t, 0.5t). The maximum relative error is about 0.62%.

Fig. 11
figure 11

Single-edged crack tension specimen and the computational mesh

Table 1 Verification of SIF calculation for a single-edged crack tension specimen

6.1.2 Thin Plate with a Center Crack

As shown in Fig. 12a, a plate with a center fracture is analyzed. The dimensions of the model are as follows: the ratio of crack length and body width (a/w) is taken as 0.1, the ratio of crack length to plate thickness (a/t) is taken as 1. Uniform tensile stress (σ) is applied on the top and bottom faces of the plate. The computational mesh is shown in Fig. 12b.

Fig. 12
figure 12

Thin plate with a central crack and the computational mesh

SIF is calculated at computational point x′ along the crack front in the x-direction. The numerical results are shown in Table 2, and are compared to the analytical solution (Nejati et. al. 2015), which is 1.7725 along the crack front. The maximum variation from the analytical solution is about 1%.

Table 2 Validate SIF calculation for a thin plate with a center crack

6.2 Aperture of a Fracture Intersecting a Vertical Borehole

In order to investigate the mechanical response of fluid pressure and the calculation of permeability of fractured elements, a simple model with one horizontal and round fracture was constructed (Fig. 13). The radius of the round fracture is a = 10 m, whereas the model domain extends radially to 100 m and vertically 100 m below and above the horizontal fracture. A uniform fluid pressure of p = 2 MPa is applied on the fracture surfaces. Fracture propagation and confining stress is not considered in this model. The solid material around the fracture is linear elastic with a Young’s modulus of E = 4GPa and a Poisson’s ratio of ν = 0.3.

Fig. 13
figure 13

The geometry of a single crack within a cylinder rock

The calculated aperture distribution of the fracture after pressurization is shown in Fig. 14. The permeability value of the fractured elements, k, is related to the aperture of fractures, which is calculated using Eq. 17. Figure 15 shows a radial profile of FEMM aperture and TOUGH2 permeability, which are compared to the analytical solutions in Refs (Sneddon 1950; Liu et al. 2018a, b).

Fig. 14
figure 14

The crack aperture distribution induced by fliud pressure (m)

Fig. 15
figure 15

Crack aperture and Permeability of TOUGH2 elements along the radial direction

6.3 Hydraulic Fracturing from a Vertical Borehole in a Plaster Sample

The performance of TOUGH-FEMM is validated by comparing simulation results to that of two existing experiments, involving hydraulic fracturing from a vertical borehole with small pre-fractures (Jiang et al. 2009; Jiao et al. 2015). Jiao et al. (2015) presented experimental results related to the influence of the orientation of the pre-fractures on a stress-free sample, whereas Jiang et al. (2009) discussed the influence of confining stress.

We generate a numerical model denoted Model I according to the experiment in Ref. (Jiao et al. 2015), with a fracture that is oriented at an angle relative to the model boundaries. As shown in Fig. 16, the cubic sample has a side length of a = 150 mm, and a vertical borehole was drilled at the center. The borehole has a diameter of r = 20 mm with a depth h = 90 mm. Two notches (pre-fractures), with l = 20 mm in length, are constructed symmetrically on each side of the borehole, spanning the entire borehole length. The pre-factures are constructed with an inclination angle β = 30° relative to the y-direction of the model (see Fig. 16b). In the Model I model, the fracture is propagated by injecting water into the central hole, and eight corners of the cubic block are mechanically fixed. The mechanical and hydraulic parameters are listed in Table 3.

Fig. 16
figure 16

Plaster sample with a vertical wellbore and pre-fractures

Table 3 Parameters of hydraulic fracturing from a vertical borehole for Model I

Figure 17 shows the path of fracture propagation in Model I. It can be found that, the fractures propagate along the initial direction, and finally divide the sample into two parts. The fluid flows into new generated parts of the fractures, which leads to pressurization of fracture surface and increasing fracture aperture and permeability.

Fig. 17
figure 17

Fracture propagation path and aperture in Model I (mm)

The 3D geometry of achieved fracture surfaces for Model I is shown in Fig. 18. A horizontal cross-section of created fracture surface for Model I is shown in Fig. 19, which is compared to previous experiments (Jiao et al. 2015). The agreement between simulation and experiment is excellent regarding the fracture path along the upper surface of the sample (see Fig. 19).

Fig. 18
figure 18

The 3D geometry of achieved fracture for model I

Fig. 19
figure 19

Cross-sections of achieved fracture surface for model I

In (Jiang et al. 2009), the influence of confining stress was discussed experimentally. We reproduced this experiment numerically, which is denoted as Model II. The dimension of this cubic sample is a = 300mm, and a vertical borehole was drilled at the center. The borehole is r = 20 mm in diameter and h = 225 mm in depth. Two notches (pre-fractures), with l = 30mm in length, are constructed symmetrically on each side of the borehole, spanning the entire borehole length. The pre-factures are constructed with at an angle β = 30° relative to y-direction where a maximum compressive horizontal stress was applied. The mechanical and hydraulic parameters are listed in Table 4. The hydraulic fracture is created under a constant rate injection at a flow rate of 2.1×10−9 m3/s.

Table 4 Parameters of hydraulic fracturing from a vertical borehole for Model II

Figure 20 shows the path of fracture propagation in Model II. It can be observed that the fractures propagate first along the initial direction, then turn towards the maximum stress direction and finally divide the sample into two parts. The 3D geometry of generated fracture surfaces for Model II is shown in Fig. 21. A horizontal cross-section is shown in Fig. 22, which shows that the deflection in the fracture paths with an excellent agreement to the experimental results in (Jiang et al. 2009).

Fig. 20
figure 20

Fracture propagation path and aperture in Model II (mm)

Fig. 21
figure 21

The 3D geometry of achieved fracture for model II

Fig. 22
figure 22

Cross-section of achieved fracture surface for Model II

6.4 Fracture Propagation from Two Parallel Wells with Initial Fractures

In this example, two horizontal boreholes with one pre-existing fracture intersecting each borehole is simulated for both isotropic and anisotropic in-situ stress conditions, as shown in Fig. 23. In the case of anisotropic in-situ stress, the maximum horizontal stress is oriented along y-direction and the differential stress is 0.9 MPa. The input parameters are shown in Table 5 (after Wu and Olson 2014). The Permeability of rock is taken as 1 × 10− 12 m2/sec and the Porosity of rock is 0.06.

Fig. 23
figure 23

Geometry of two horizontal boreholes intersecting with vertical fractures

Table 5 Input parameters for modeling injection into two horizontal boreholes, interesting with two pre-existing fractures

The 3D geometry of achieved fractures is shown in Fig. 24, for both isotropic and anisotropic stress conditions. The present results of fracture propagation are compared to previous numerical simulation results by Wu and Olson (2014) (see Fig. 25). In both cases, two fractures started propagating towards each other. With isotropic stress condition, the stress shadow effect has high influence on the fracture geometry, therefore the fractures move closer to each other compared to test with anisotropic stress condition.

Fig. 24
figure 24

3D geometry of achieved fractures with different in-situ stress conditions, in which two pre-set fractures arising from two parallel wells

Fig. 25
figure 25

Comparison between TOUGH-FEMM results and the previous numerical results for two pre-set fractures arising from two parallel wells

6.5 A Single Horizontal Borehole with Two Initial Fractures

In this example, a horizontal borehole with two pre-existing parallel fractures (see Fig. 26) are simulated for both isotropic and anisotropic in-situ stress conditions. In the case of anisotropic in-situ stress, the maximum horizontal stress is applied along the y-direction and the differential stress is 0.9 MPa. The input parameters are also listed in Table 5 (after Ref. Wu and Olson 2014) The Permeability of rock is taken as 1 × 10− 12 m2/sec and the Porosity of rock is 0.06.

Fig. 26
figure 26

A horizontal borehole intersected by two parallel vertical fractures

The 3D geometry of achieved fracture surfaces for both isotropic and anisotropic stress conditions is shown in Fig. 27. As shown in Fig. 28, the TOUGH-FEMM results are in good agreement with the previous numerical results (Wu and Olson 2014). In both cases, the hydraulic fractures initially propagate parallel to each other, however move away from each other in latter stages due to stress shadow effect. In the case of isotropic in-situ stress, the fractures are more curved compared to the case of anisotropic in-situ stress.

Fig. 27
figure 27

3D geometry of achieved fractures with different stress conditions for a single horizontal borehole with two initial fractures

Fig. 28
figure 28

Comparison between TOUGH-FEMM results and the previous results for a single horizontal borehole with two initial fractures

7 Concluding Remarks

In this paper, a new simulation tool named TOUGH-FEMM is presented and applied to model three-dimensional (3D) hydraulic fracturing in porous rock. The coupling of the two codes TOUGH2 and FEMM was based on sequential coupling techniques as have been previous done for coupling of other geomechanics codes to TOUGH2. The most novel development related to TOUGH-FEMM is the ability to model discrete fracture propagation in 3D using finite element-meshfree method in FEMM and to link this to the multiphase fluid flow capabilities in TOUGH2. The FEMM is an approach to simulate fracture propagation without remeshing, in which the fracture path does not need to be predetermined. Linear elastic fracture mechanics with mixed-mode stress intensity factors are employed for fracture instability and to determine the direction of fracture propagation. In this paper, the TOUGH-FEMM simulator was verified for modeling fluid driven fracture propagation in 3D through a number of simulation examples, including modeling of hydraulic fracturing laboratory experiments and by comparison to independent numerical simulation results for multiple interacting hydraulic fractures at ten to hundred meter scale.

While in this paper the TOUGH-FEMM verifications were focused on prediction of fracture path during hydraulic fracturing, future work will be expanded to modeling the transient hydro-mechanical coupling behavior, for prediction of flow and pressure responses involving strong fracture-volume hydro-mechanical coupling. Additionally, for modelling 3D arbitrary fractures the fronts of fractures are rough in the present algorithm, which reduces the computational accuracy. In future work, more accurate methodologies should be developed to achieve better balance the accuracy and the flexibility during simulation.