ArticlePDF Available

Abstract and Figures

This paper reports recent improvements to the work by Gupta and Duarte [1] to simulate 3-D hydraulic fracturing with the Generalized Finite Element Method (GFEM). Three optimizations are presented and analyzed. First, an improved initial guess based on solving a 3-D elastic problem with the pressure from the previous step is shown to decrease the number of Newton iterations and increase robustness. Second, an improved methodology to find the time step that leads to fracture propagation is proposed and shown to decrease significantly the number of iterations. Third, reduced computational cost is observed by properly recycling the linear part of the coupled stiffness matrix. Two representative examples are used to analyze these improvements. Additionally, a methodology to include the leak-off term is presented and verified against asymptotic analytical solutions. Conservation of mass is shown to be well satisfied in all examples.
Content may be subject to copyright.
Received: Added at production Revised: Added at production Accepted: Added at production
DOI: xxx/xxxx
RESEARCH ARTICLE
Improved algorithms for Generalized Finite Element simulations
of three-dimensional hydraulic fracture propagation
N. Shauer | C. A. Duarte*
Department of Civil and Environmental
Engineering, University of Illinois at Urbana-
Champaign, Newmark Laboratory, 205
North Mathews Avenue, Urbana, IL, U.S.A.
Correspondence
*C. Armando Duarte, Department of Civil
and Environmental Eng., University of
Illinois at Urbana-Champaign, Newmark
Laboratory, 205 North Mathews Avenue,
Urbana, Illinois 61801, U.S.A. Email:
caduarte@illinois.edu
Abstract
This paper reports recent improvements to the work by Gupta and Duarte 1to simu-
late 3-D hydraulic fracturing with the Generalized Finite Element Method (GFEM).
Three optimizations are presented and analyzed. First, an improved initial guess
based on solving a 3-D elastic problem with the pressure from the previous step is
shown to decrease the number of Newton iterations and increase robustness. Second,
an improved methodology to find the time step that leads to fracture propagation is
proposed and shown to decrease significantly the number of iterations. Third, reduced
computational cost is observed by properly recycling the linear part of the coupled
stiffness matrix. Two representative examples are used to analyze these improve-
ments. Additionally, a methodology to include the leak-off term is presented and
verified against asymptotic analytical solutions. Conservation of mass is shown to be
well satisfied in all examples.
KEYWORDS:
Finite Element Method (FEM); Generalized Finite Element Method (GFEM); Hydraulic Fracturing; High-
performance computing;
1 INTRODUCTION
Hydraulic fracturing is the process in which a fracture propagates through the injection of a pressurized fluid in its cavity. The
hydraulic fracturing technique allows one to considerably enlarge the accessible reservoir volume by the injection of fluids along
the isolated segments of a wellbore into the formation2. In order to reduce operational cost, hydraulic fractures are usually
created in stages where multiple fractures are propagated at the same time3. Miller et al 4studied more than 100 horizontal
shale wells in multiple basins and concluded that an average of 29.6% of the hydraulic fracture clusters do not produce. In fact,
it is estimated that the majority of the production comes from only 20 to 30% of the clusters5. A possible explanation for this
problem is the complex three-dimensional interaction of the hydraulic fractures during the early stages of propagation. However,
qualitative predictions of three-dimensional hydraulic fracturing geometry near a wellbore and its impact on fracturing pressures
and screen-out risk remains an open problem6,7.
A thorough summary of the main methodologies to simulate hydraulic fracturing is presented by Adachi et al8. More recently,
Lecampion et al9review the recent trends in numerical methods for simulating hydraulic fracturing. Some of the advantages
and disadvantages of the main methods are briefly mentioned next.
Simulating fracture problems with the standard FEM requires the mesh to conform to the fracture geometry. Therefore, the
fracture path is restricted by the mesh which can lead to larger propagation paths than in reality. One way to tackle this issue is to
construct a mesh at each propagation step that fits the fracture geometry10,11. However, this can lead to increased computational
2Shauer and Duarte
costs of data transfer between meshes. Another way to address this problem is to use the so-called Universal Meshes, where a
mesh is deformed to fit the fracture geometry at each step12 . To our knowledge, this methodology has not yet been extended to
three-dimensional fracture problems.
A second choice is to use the boundary element method (BEM), where only the surface of each domain of analysis must be
described. With the BEM, the computational cost is greatly reduced since the dimension of the computational domain is one
order less. Very accurate solutions are obtained when the medium is isotropic and linear elastic13,14,15,16 .
Third, the sharp fracture can be substituted by a smeared field. These are often called phase-field methods and the frac-
ture is described by a scalar field with its evolution given by the balance of configurational forces17. With phase field,
fracture nucleation, propagation, and bifurcation can be simulated without the need for remeshing. However, very small ele-
ment sizes are necessary close to the entire fracture surface and defining the fracture opening from the smeared field can be
challenging18,19,20,21,22,23.
A fourth methodology is to use the asymptotic semi-infinite hydraulic fracture tip solution to advance the fracture
front24 25,26,27. These schemes produce very accurate solutions even for coarse meshes. However, it is still unclear how to extend
the algorithm to non-planar three-dimensional fractures with mixed mode loading 9.
The last method, and the one used in this work is the generalized finite element method (GFEM)28,29,30,31,32,33,34 . A distinctive
feature of the method is the fact that the mesh does not need to conform to the fracture geometry. Instead, the fracture is defined
based on discontinuous and singular shape functions. The singular shape functions are based on two-dimensional analytical
asymptotic solution which also increase the accuracy of the approximation near the fracture tip. It is emphasized that even though
analytical asymptotic solutions are used as shape functions, they come from two-dimensional analysis. Thus, the GFEM mesh
still needs to be refined near the tip for accurate results when solving three-dimensional problems35,36 . The GFEM approximation
used in this manuscript is summarized in Section 2.
This work proposes and analyzes optimized algorithms for the simulation of three-dimensional hydraulic fracturing with the
GFEM, improving the work by Gupta and Duarte 1. Additionally, an extension to account for fluid leak-off with the Carter’s
model37 is discussed. The rock is assumed to behaves as an isotropic 3-D elastic medium and the fluid inside of the fracture
is modeled with lubrication theory. The governing equations for the coupled problem are summarized in Section 3.1 of this
manuscript. Linear elastic fracture mechanics is adopted and a summary of the propagation criterion and algorithm is presented
in Section 4. A quadratic standard FEM is used to approximate the flow of fracturing fluid in the fracture and the GFEM with
quadratic polynomials is used to approximate the deformation of the rock.
A new methodology to transfer data between meshes based on the fluid finite element mesh is proposed in Section 5 where it
is shown that the transfer of data has in general an error of the order of machine precision. The fluid finite element mesh is often
highly refined around the fracture front to extract accurate stress intensity factors. The new data transfer methodology benefits
from this fine discretization to capture and transfer the steep variation of scalar fields in that region. Next, with the use of this new
data transfer methodology, an improved initial guess for the starting of Newton iterations at each propagation step is presented
in Section 6. This initial guess is based on solving a three-dimensional elastic problem subjected to the fluid pressure from the
last propagation step. The stiffness matrix used for the computation of this initial guess is nested in the stiffness matrix of the
coupled problem. Based on that, a methodology to recycle this matrix and decrease computational cost is proposed in Section 7.
Lastly, an improvement to the algorithm presented by Gupta and Duarte1to find the time step that leads to fracture propagation
is proposed. This improvement is based on using the slope of the variation of the maximum equivalent stress intensity factor with
respect to time and is presented in Section 4.2. These improvements are analyzed with the aid of two representative examples
in Sections 9.1 and 9.2.
Fluid leak-off during hydraulic fracturing can exceed 70% of the injected volume if not controlled properly38 . Also, the leak-
off is a wall-building effect that according to Carter’s model37 , depends on the exposure time. Since new fracture faces are
exposed by a possibly non-uniform propagation, the leak-off can have a great impact on the fracture dimensions. The leak-off is
introduced as a sink term in the governing equation for the flow of fracturing fluid in the fracture and is presented in Section 3.1.
Since the time dependency of this term is known, it can be integrated analytically between time steps. Some authors, however,
handle this term as discrete values in time39,40,41,42. An analysis of the errors associated with this strategy is presented in Section
8.1. A methodology to update the leak-off term based on saving the accumulated filtrate volume at fluid finite element mesh
nodes is then shown in Section 8.2. Lastly, the leak-off implementation is verified against asymptotic analytical solutions43 for
a penny-shaped hydraulic fracture in Section 9.3
Shauer and Duarte 3
2 GENERALIZED FINITE ELEMENT METHOD
The Generalized Finite Element Method (GFEM) can be interpreted as the Finite Element Method (FEM) not restricted to
polynomial functions. GFEM shape functions can be defined based on a-priori knowledge of the problem and have local support
thanks to the use of a partition of unity as shown in (1).
(𝐱) = (𝐱)(𝐱) (no summation on )(1)
where  is the GFEM shape function,  is the enrichment at node and is the partition of unity function at node .
The first papers on the partition of unity method and the GFEM date back to 199628,29,30,31,32,33. The GFEM is also known as
eXtendend FEM (XFEM)44,45.
At any given time , the GFEM approximation of the solution 𝒖(𝒙, )of a 3-D elasticity problem can be written as
𝐮(𝐱, )=
(𝐱)
𝐮
()

FEM approximation
+

(𝐱)

=1
(𝐱)
𝐮
()

GFEM Enriched approximation
=𝝓
(𝐱)
𝐮()(2)
where
𝝓
=
𝑵1
PoU
𝑵11 𝑵11


GFEM Enrichment
𝑵
PoU
𝑵1𝑵


GFEM Enrichment
(3)
for
𝑵=
0 0
00
0 0
and 𝑵 =
 0 0
0 0
0 0 
(4)
Vectors
𝐮
,
𝐮
 3,
𝐮
contain degrees of freedom, with being the number of degrees of freedom of the 3-D elasticity problem. PoU stands for
partition of unity and the set
  has the indices of the nodes with enrichment functions while
 represents the number
of enrichments at node . More details on the GFEM for 3-D fractures adopted in this work can be found in Section 4 of Gupta
and Duarte 46.
3 FORMULATION
3.1 Governing equations
In this section, the governing equations are summarized and the leak-off model is introduced. A more thorough description of
the governing equations is presented in Gupta and Duarte47.
The rock is modeled as a 3-D isotropic, linear elastic solid. The weak form of the problem can be stated as:
Find the displacement 𝐮(Ω) such that
Ω
𝐯𝝈Ω =
Ω
̄
𝐭𝐯 +
Γ+
̄
𝐭+
J𝐯KΓ+
,𝐯(Ω) (5)
where 𝝈is the Cauchy stress tensor, 𝐯is a test function, Ωis the solid domain with boundary Ω,̄
𝐭is the traction applied at the
boundary Ω,J𝐯K=𝐯+𝐯the test function jump across the fracture surface Γand
̄
𝐭+
= −𝐧+=𝐧
4Shauer and Duarte
x
z
Ω
Γ+
Γ
+
FIGURE 1 Cross section of a fractured domain. In the figure, ̄
𝐭𝐜represents ̄
𝐭
𝐜when applied to Γ
, or ̄
𝐭+
𝐜when applied to Γ+
.
This figure is adopted from Gupta and Duarte 46.
with the fluid pressure inside the fracture, 𝐧+and 𝐧the normals to the fracture faces Γ+
and Γ
, and
𝐭+
and
𝐭
the tractions
applied at those faces as illustrated in Figure 1.
The constitutive law between stress and strain is given by the standard linear elastic relation for small deformations:
𝝈=𝑪𝛜(6)
with 𝑪the elasticity Hooke tensor and 𝛜is the strain tensor given by
𝛜=𝐮+ ∇𝐮
2(7)
where 𝐮is the displacement vector. The space (Ω) is defined as
(Ω) = 𝝑𝝑1(Ω; 3) ; 𝝑=𝟎on Ω(8)
where Ωis the rock domain and Ωis the boundary with known displacements. For all the problems considered in this
manuscript, Ω=.
For the problem of fluid flow inside the fracture, the fluid is assumed to be Newtonian and incompressible. Inertial and
gravitational effects are neglected. The problem can be stated as:
Find )such that
Γ
 + Γ
Γ
𝐪
𝐱 Γ+
Γ
    = 0,)(9)
where is the opening of the fracture defined by
=J𝐮K𝐧,(10)
is the fluid injection rate, the leak-off or seepage through the fracture walls, is a test function, is the flux normal to the
boundary Γ
,
𝐱∈ Γ, and the flux 𝐪inside of the fracture is given by the cubic law:
𝐪= − 3
12
𝐱(11)
Shauer and Duarte 5
with the viscosity of the fluid. The space )is defined as
) = 1;2) ; = 0 on Γ
(12)
where Γis the fracture domain and Γ
is the boundary with known pressure. In the formulation adopted here, Γ
=.
The leak-off or seepage through fracture walls is described by Carter’s leak-off model48. This model states that the flux through
the walls depends on the inverse of the square root of the exposure time and it assumes that the flux is perpendicular to the
hydraulic fracture surface. This relation is shown in (13).
(
𝐱, ) = 2
0(
𝐱)
(13)
where is the leak-off flow, is Carter’s leak off coefficient, is the total time and 0()is the initial time of exposure. The factor
2represents that the fracture has two faces. The constant can be determined experimentally and it represents three linear flow
mechanisms which are (i) fracturing fluid viscosity and relative-permeability effect, (ii) reservoir-fluid viscosity-compressibility
effect, and (iii) wall-building effects. The filtrate volume per unit area, , is found by integrating (13) in time
(
𝐱, )=40(
𝐱) +  (14)
where  is the spurt loss and it represents the volume lost instantaneously when a new fracture face is exposed to the fluid 48.
It is later useful to the define the exposure time given by
0(
𝐱) = 0(
𝐱)(15)
3.2 Discretization in time and space
Equation (9) is discretized and integrated in time between two consecutive time steps at times and + Δusing a backward
Euler scheme. These time steps are represented in the fields by superscripts and + 1.
Γ+1 ++1
+1
+1 Γ+ Δ
Γ
+1 +1  = Δ
Γ
𝐪+1
𝐱+1 Γ(16)
It is noted that the leak-off flow was integrated analytically since its dependency on time is known. It is emphasized that
some authors do not carry this integration analytically 39,40,41,42. Instead, is taken as discrete values in time. This can lead to
significant errors in the total fluid leaked because of the singularity of (13) as shown in Section 8.1.
Equations (5) and (16) are discretized in space using a generalized finite element approximation for the displacement field
and a standard finite element approximation for the pressure, i.e.
𝐮(𝐱, )=𝝓
(𝐱)
𝐮()
(𝐱, )=𝝓
(𝐱)()(17)
with 𝝓
(𝐱)the generalized finite element basis functions for the displacement field defined in Section 2, 𝝓
(𝐱)the finite element
basis functions for the pressure field,
𝐮()the vector with displacement degrees of freedom, and ()the vector with pressure
degrees of freedom. After the spacial discretization, equations (5) and (16) can be written in matrix form as 1
𝑲+1
𝑲+1
𝒄
𝑲+1
𝒄Δ𝑲+1
𝐮+1
+1 =𝐭+1
𝑲+1,
𝒄
𝐮+ Δ𝑸+1
+ Δ
𝒒+1
+𝒒+1
(18)
where
𝑲+1
=
Ω𝝓+1
𝝓+1
Ω(19)
where is the elasticity tensor in matrix form49. Matrix 𝑲+1
𝒄is given by,
𝑲+1
𝒄=
Γ𝝓+1
𝐧J𝝓+1
KΓ(20)
6Shauer and Duarte
Vectors 𝒕+1
is given by,
𝒕+1
=
Ω𝝓+1
𝐭Γ(21)
Matrix 𝑲+1
is given by,
𝑲+1
=
Γ
3
12
𝒙𝝓+1
𝒙𝝓+1
Γ(22)
Vectors 𝑲+1,
𝒄
𝐮,𝑸+1
and
𝒒+1
are given by,
𝑲+1,
𝒄
𝐮=
Γ𝝓+1
𝐧J𝝓
K
𝐮Γ=
Γ𝝓+1
𝐧J𝐮KΓ(23)
𝑸+1
=
Γ𝝓+1
+1
Γ(24)
𝒒+1
=
Γ𝝓+1
+1 (25)
𝒒+1
=
Γ𝝓+1
+1
Γ(26)
The nonlinear system (18) is solved using a modified Newton-Raphson method as described in Section 6.3 of Gupta and
Duarte 47. It is noted that a minimum fracture opening  is enforced at each iteration of the modified Newton-Raphson method.
This guarantees that no interpenetration of fracture faces happens. The algorithm then finds the pressure that leads to =
in the region where interpenetration would occur. The value of  is problem dependent and it is usually taken between three
and five orders of magnitude smaller than the order of magnitude of the maximum opening in the fracture.
4 FRACTURE PROPAGATION CRITERION AND ALGORITHM
4.1 Propagation criterion
A thorough description of the propagation criterion adopted here can be found in Section 4 of Gupta and Duarte 1. In this section,
only the concepts necessary to understand the improvement proposed to the propagation algorithm are summarized.
Linear elastic fracture mechanics is adopted and therefore the fracture propagation is governed by stress intensity factors.
Additionally, since mixed mode fracture propagation can be considered, Schöllmann’s criterion is adopted50. This criterion is
a generalization of the Maximum Tangential Stress criterion 51 and provides an equivalent mode I stress intensity factor and
propagation direction. The Irwin criterion for fracture propagation is then stated as
, =
where  is the fracture toughness, and , is the equivalent mode I stress intensity factor defined by
, =1
2cos 0
2
cos20
23
2 sin(0) + cos20
23
2 sin(0)2
+ 42

(27)
Shauer and Duarte 7
with , and  the modes I, II and III stress intensity factors and 0computed using Schöllmann’s criterion50. A
regularization of this criterion was proposed by Gupta and Duarte 1and is shown in (28). This regularization is hereafter called
the GD model.
Δ()=
0,0, ()

<(1 − )
Δ
, ()

(1 − ),(1 − ), ()

<(1 − )
Δ,(1 − ) ,()

(1 + )
(28)
where Δ()is the magnitude of fracture advancement at a fracture front vertex ,, ()is the equivalent mode I stress
intensity factor at a vertex ,Δ is the maximum fracture advancement defined by the user and and are parameters also
defined by the user. In Figure 2, the GD model is illustrated for = 0.05 and = 0.10.
Δ
Δ()
(1 − ) (1 + )

(1 − ) 
,
FIGURE 2 Graphical representation of the GD model with parameters = 0.05 and = 0.10. This figure is adapted from
Gupta and Duarte 1.
4.2 Propagation algorithm
As reported in Section 5.2 of Gupta and Duarte 1, the time step that leads to the satisfaction of the GD model is computed
automatically by assuming a linear variation of the maximum equivalent mode I stress intensity factor 
, with respect to time
and iterating. This procedure is shown in Algorithm 2 with the original (proposed) pseudo-code 1shown in red (blue italics).
The variables used in Algorithm 2 are defined next. Let
 be the counter of the number of time steps for which the coupled
formulation is solved using the modified Newton-Raphson algorithm,
 the counter of the number of time steps for which the
coupled solution does not violate the GD model,

, the maximum equivalent stress intensity factor at propagation step
,Δ, the minimum time step and Δ, the starting time, both set by the user. The two user time steps are needed
because the time to initially fill the fracture can be significantly bigger than the minimum time step specified by the user. The
magnitude of the first time step for 2is defined in Equation (37) of Gupta and Duarte1and is repeated here for convenience
Δ,
=0
 =
−1

=0
Δ−1,
 (29)
8Shauer and Duarte
The average of the valid time steps is used as the second time step for 2as given by Equation (38) of Gupta and Duarte 1
and also repeated here for convenience
Δ,+1
 =1
 = Δ−1,−1

,  =1
−1

−1

=0
Δ−1,
 (30)
An illustration of this methodology is shown in Figure 3 where the time that will lead the equivalent stress intensity factor
,
to reach  is predicted using a linear extrapolation of two previously computed time steps that have
<(1 − ) .
For additional cases, see Section 5.2 of Gupta and Duarte 1.
,
−2

,

 (predicted)
,
−1

t
,
−2
,
−1
,
,
 = (target)

 (1 + )
 (1 − )
FIGURE 3 Graphical representation of linear extrapolation used to predict the time step magnitude using the solution and time
step history for the case when both data points have 
, <(1 − )  . This figure is adopted from Gupta and Duarte 1.
To justify the assumed linear relation between
and , Figure 4 shows the variation of
with respect to Δfor the penny-
shaped fracture solved in Section 9.1 with = 0.1 ,= 1  and = 100 for two consecutive propagation steps. Because
of the nature of the automatic propagation algorithm, the same accumulated simulation times cannot be extracted for the different
viscosities and the closest possible times were used. Thus, the accumulated simulation times used for the two consecutive
propagation steps denominated − 1 and are −1
=0.1 = 3.77 ,
=0.1 = 4.02 ,−1
=1  = 3.74 ,
=1  = 3.94 ,
−1
=100  = 3.72 and
=100  = 3.96 . For all cases, a smooth and close to linear variation of
is observed around  .
Now, as seen in Algorithm 2, the linear interpolation/extrapolation procedure can only be used after it has two data points.
The first guess is taken as the sum of the valid time steps of the last propagation step as in (29), and the second guess is taken as
either the average defined in (30) or the half of the first guess. One drawback of this second guess (shown red in Algorithm 2)
is the fact that it will most of the time not satisfy the GD model. Figure 5 illustrates this behavior for the penny-shaped problem
described in Section 9.1 with viscosity = 100   .
It is noted that for this particular example, the first two propagation time steps are chosen by the user and were selected to
satisfy the GD model through trial and error. It is also noted that the number of iterations shown in Figure 5 does not match the
one in Figure 17 of Gupta and Duarte 1. This is due to several changes in the code, particularly regarding the new methodology
to transfer data between meshes presented is Section 5. A common case where more than two iterations are needed is explained
next.
Consider a generic propagation step − 1 that takes one 1 iteration to find the satisfying time step. Then, for the following
propagation step , the first try would be to use the sum defined in 29, i.e. the total time it took to propagate the previous step.
Shauer and Duarte 9
3.7 3.8 3.944.1 4.2 4.3 4.4 4.5 4.6 4.7
1
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2
Time (𝑠)
̄
𝐾𝑘𝐾𝑚𝑎𝑥
𝐼,𝑒𝑞 (𝑀 𝑝𝑎𝑚)
𝜇= 0.1𝑐𝑃 | step 𝑘− 1
𝜇= 0.1𝑐𝑃 | step 𝑘
𝜇= 1 𝑐𝑃 | step 𝑘− 1
𝜇= 1 𝑐𝑃 | step 𝑘
𝜇= 100 𝑐𝑃 | step 𝑘− 1
𝜇= 100 𝑐𝑃 | step 𝑘
𝐾𝐼𝑐
FIGURE 4 Variation of

, with respect to Δfor the penny-shaped fracture described in Section 9.1 with = 0.1  ,
= 1 and = 100  for two consecutive propagation steps. The total simulation times used are −1
=0.1 = 3.77 ,
=0.1 = 4.02 ,−1
=1  = 3.74 ,
=1  = 3.94 ,−1
=100  = 3.72 and
=100  = 3.96 . The observed variation of

, supports assuming a linear relation between 
, and time. The similar slope around between two consecutive
propagation steps also motivates the proposed improvement to Algorithm 2.
Next, if the computed 
, for this time step does not satisfy the GD model with 
, <(1 − )  , then this solution is saved
and the next time step is chosen as the average of the time steps from the previous propagation step defined in (30). But, since
in propagation step − 1 the total time to propagate may have been found on the first iteration, then Δ−1,−1

, = Δ−1,−1
 =0

and the second iteration will use the same time step. Since the propagation increments are small, the time step between the two
propagation steps do not vary much and the total time to propagate is close to the one from the last propagation step. Therefore,
simply reusing the time step from the first guess is often an overestimation of the sought value. Alternatively, if the previous
propagation step took some iterations to converge, taking the valid average defined in (30) can be an underestimation of the
sought total time. Based on this, it can be observed in Figure 5 that when the algorithm does not find the satisfying time step in
the first iteration, it needs at least two others to converge.
Improvement of the propagation algorithm based on past slopes
As can be seen in Figure (4), the slopes of the curves for two consecutive time steps are similar. This motivates developing a
methodology that uses the slope of a previous propagation step to estimate the second time step for 2. For that, at least two
points are needed to calculate the approximated slope of a previous propagation step. But, if the time step was found on the first
iteration, only one point is available. Based on that, the following methodology is proposed.
10 Shauer and Duarte
0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80
1
2
3
4
5
Fracture Propagation Step Number
Number of Time Steps
FIGURE 5 Number of time steps to satisfy the GD model at each propagation step (
) for the penny-shaped problem described
in Section 9.1 with = 100   .
For a given propagation step 2, loop over  previous propagation steps. The value of  is given by the smallest
between five and − 1. The value five was picked based on experimentation. For the first propagation step found that took
more than one iteration to find the time step, compute the slope given by
=
,

,
−1
Δ,

(31)
Next, calculate the time step variation Δ that takes
,
−1 to using the slope , i.e.
Δ =
,
−1
(32)
and update the previous time step accordingly. Lastly, if no propagation step that took more than one iteration to find the time
step is found, then the time step is perturbed as shown in the last if statement of Algorithm 1. The detailed procedure to compute
the Δbased on a past slope is shown in Algorithm 1. Also, the complete algorithm to find the time step is shown in Algorithm
2 with the changes relative to the algorithm presented in Gupta and Duarte 1shown in blue italics text.
Shauer and Duarte 11
Algorithm 1 Proposed algorithm to compute second time step based on a previous slope
if 5then
 =− 1
else
 = 5
end if
for = 1 ;  do
if
 >1then
=
,

,
−1
Δ,

Δ =
,
−1
if
,
−1 <  (1 − )then
Δ,

 = Δ,
−1
 + Δ
else
Δ,

 = Δ,
−1
 − Δ
if Δ,

 0then
Δ,

 =Δ,
−1

1.2
end if
end if
end if
end for
if = + 1 then
if
,
−1 <  (1 − )then
Δ,

 =Δ,
−1

5
else
Δ,

 =Δ,
−1

1.2
end if
end if
12 Shauer and Duarte
Algorithm 2 Algorithm to compute a time step magnitude. The changes relative to Algorithm 3 of Gupta and Duarte 1is shown
in color: red (original) and blue italics (proposed) pseudocode.
if == 1 then
if
 == 0 then
Δ,

 = Δ,
else if
 == 1 then
if
,
−1 <  (1 − )then
Δ,

 = Δ,
else
Δ,

 =Δ,
−1

2=Δ,
2
end if
else
Compute Δ,

 using linear interpolation/extrapolation
end if
else if  > 1then
if
 == 0 then
if == 1 then
Δ,

 = Δ,
else
Δ,

 =
−1

=0
Δ−1,
 given by Equation (29)
end if
else if
 == 1 then
if
,
−1 <  (1 − )then
Δ,

 = Δ−1,−1

,  given by Equation (30)
Compute Δ,

 based on past slope with Algorithm 1
else
Δ,

 =Δ,
−1

2
Compute Δ,

 based on past slope with Algorithm 1
end if
else
Compute Δ,

 using linear interpolation/extrapolation
end if
end if
Shauer and Duarte 13
5 DATA TRANSFER BETWEEN MESHES
At each propagation step, the mesh is refined around the fracture front and unrefined at the end of that step as explained in
Section 4.2 of Gupta and Duarte 46 and Section 2.1.2 of Pereira and Duarte 36. Also, the fluid finite element mesh is automatically
created based on the intersection of the solid mesh of tetrahedra with the geometrical fracture surface as explained in Section
5.1 of Gupta and Duarte 47. It is noted that in Gupta and Duarte 47, the geometrical fracture surface is referred to as geometrical
crack surface. In Figure 6, the fluid finite element mesh for the penny-shaped problem described in Section 9.1 is shown for two
consecutive propagation steps. With mesh adaptivity, the computational cost can be largely reduced but the information from
previous steps cannot be readily used since the mesh changes. For instance, according to (16), to compute the stiffness matrix of
a fluid element, the opening from the previous propagation step at the integration points of that element must be known. Based
on this, a methodology to transfer information between meshes that is robust and computationally efficient is paramount.
(a) (b)
(c)
𝐱
𝐱
+1
𝐱
+2 =𝐱+1
(𝐱+1
+2 )=0
(𝐱+1
+1 )=0
FIGURE 6 (a) Fluid FEM mesh for a penny-shaped fracture like the one described in Section 9.1 for two subsequent steps
(red) and + 1 (blue). The vertices of the triangles of the mesh at step + 1 often coincide with the vertices of the triangles
of the mesh at step . (b) A zoom-in at the fracture front is shown for better visualization. (c) One element of the mesh at step
+ 1 is shown with (𝐱+1
+1 )=0,(𝐱+1
+2 )=0, and using finite element interpolation to calculate (𝐱+1
). To facilitate the
visualization, the triangle used to illustrate the methodology is linear with three nodes.
In this work, an explicit representation of the fracture within a GFEM context is adopted as explained in52,53,35,36. This explicit
representation is also called a geometrical fracture surface and it is the triangulation used to represent the fracture geometry. This
triangulation is independent of the volume mesh. In Section 6.2 of Gupta and Duarte 47, it is proposed to store the opening from a
previous step on this geometrical fracture surface. With this, the opening from a previous step is obtained by finding, for a given
integration point, the saved value at the closest point in the geometrical fracture surface. One limitation of this methodology is
14 Shauer and Duarte
the fact that the geometrical fracture surface is not usually refined enough around the fracture front to accurately store the steep
variation of the opening at that region. Based on this, the following new methodology is proposed.
Define a scalar field (𝐱)at a propagation step . This scalar field can represent either the opening, the pressure or the leak-
off volume per unit area of the hydraulic fracture. The proposed algorithm is based on storing this scalar field at the nodes of the
fluid FEM mesh instead of the geometrical fracture surface. Storing the field at the fluid mesh benefits from the high refinement
at the region around the front that is already needed for obtaining accurate stress intensity factors. Then, for a propagation step
+ 1, the field (𝐱)is mapped to the new fluid mesh nodes by finding the fluid element that contains this node in the fluid mesh
at step and using its finite element shape functions, i.e.
(𝐱+1
) =
=

=1
(𝐱+1
)(𝐱
)(33)
where 𝐱+1
is the position vector of a node of the fluid mesh in a propagation step + 1,
is the shape function of the
element that contains 𝐱+1
in the fluid mesh at step ,𝐱
is the position vector of node in step and 
 is the number of
nodes for the element at step . If no element containing 𝐱+1
is found, the value of the scalar field at this point is set to 0 as
indicated in Figure 6c. With the values of the scalar field (𝐱)saved at the nodes of the fluid mesh at step + 1, the values of
the field can be later computed at the integration points by interpolating with the FEM shape functions.
Algorithm 3 describes the detailed procedure to transfer the scalar field (𝐱)between the finite element meshes of two
propagation steps and + 1. In Figure 6c the process is exemplified for one linear triangle.
It is noted that the proposed data transfer methodology involves only surface meshes instead of 2orthogonal projection
of 3-D solutions which is often used when solving nonlinear problems with adaptivity.
Additionally, as can be seen in Figure 6, the nodes of the finite element mesh at step + 1 usually coincide with a node of the
finite element mesh at step . This happens because the methodology to refine the volume mesh used in this work is based on the
bisection of tetrahedra54. This methodology leads to nested refined tetrahedra, which in turn leads to the overlapping of nodes
in the fluid finite element mesh. Because of that, the transfer of data will have an error close to machine precision. It is noted
that the refinement of the mesh is chosen by the user and can be different for each propagation step. Thus a robust methodology
that accounts for non-coinciding nodes is indeed necessary even though most of the time the nodes coincide.
It is emphasized that the proposed method to transfer data between meshes requires a fine enough mesh at the fracture front
due to strong gradients of pressure and opening in that region. However, according to our experiments, the refinement necessary
to obtain accurate stress intensity factors is already more than enough, and further refinement of that region does not change the
solution significantly.
Algorithm 3 Procedure to transfer data between propagation steps
input: converged solution for step
output: saved at the nodes of the fluid mesh at step + 1
After a propagation step is converged;
for number of nodes in fluid mesh at step do
store at node
end for
Unrefine volume mesh;
Generate a new volume mesh by adaptively refining the unrefined mesh based on the new fracture front at step + 1;
Create new fluid mesh based on the intersection of volume mesh with the fracture position;
for number of nodes in fluid mesh at step + 1 do
Find nearest element in fluid mesh at step to node ;
Compute at node using Equation 33;
end for
Shauer and Duarte 15
6 INITIAL GUESS FOR NONLINEAR SOLVER
As previously explained, mesh adaptivity is used between propagation steps, i.e., at each propagation step, the mesh changes
around the new fracture front. Because of that, the pressure and displacement solution vectors from a previous step cannot
be readily used to start the Newton iterations for a new propagation step. One option is to start the algorithm from a zero
solution vector, however, this can lead to a slow Newton convergence or even divergence. A straightforward solution is to use
a2orthogonal projection. This technique often gives good results but the computational cost to find an element from the
previous mesh would be of order (×)where and are the numbers of nodes of finite element meshes at steps
and + 1, respectively. In addition, a global matrix would need to be integrated and factorized. In order to have a good initial
solution guess with low computational cost, the following methodology is proposed:
1. Transfer the pressure solution between fluid FEM meshes using Algorithm 3.
2. With the pressure saved at the nodes of the fluid mesh at propagation step + 1, initialize pressure dofs of the coupled
solution vector with the pressure saved at those nodes. Since the standard FEM is used, the values can be readily transferred
into the correct positions of the solution vector. Let
be the pressure from step saved at node of the fluid FEM mesh,
then
+1,
=
node where
𝐱∈ Γ
+1,
= 0 node where
𝐱∈ Γ+1
∖Γ
(34)
3. With the new 3-D mesh for propagation step + 1, solve a single-physic elasticity problem with prescribed pressure on
the fracture faces given by the pressure solution from the previous propagation step: Find 𝐮+1, (Ω) such that
Ω
𝐯𝝈Ω =
Ω
̄
𝐭𝐯 +
Γ+
+1,𝐧J𝐯KΓ+
,𝐯(Ω) (35)
4. Initialize displacement dofs of the coupled solution vector with the displacements dofs calculated from the solution of
problem (35)
𝐮+1 =
𝐮+1, (36)
where
𝐮+1, is the solution vector of problem (35).
The procedure is illustrated in Figure 7a, for the penny-shaped problem described in Section (9.1) with = 50   . The
converged pressure that leads to satisfaction of the GD model at propagation step is shown in Figure 7a. The pressure is
represented as a warped quantity in wireframe with the fracture position indicating the surface where = 0. In Figure 7b, the
pressure is now shown for the new propagated fluid FEM mesh after transferring the pressure between meshes with Algorithm
3. This pressure is used to solve the purely elastic problem and to initialize the degrees of freedom of the coupled solution vector.
In both figures, the fracture at step is shown in orange, and the fracture at step + 1 is shown in gray.
It is emphasized that the stiffness matrix calculated in this initial guess computation is recycled during the Newton iterations
as explained in Section (7).
7RECYCLING OF THE LINEAR PART OF THE COUPLED STIFFNESS MATRIX
It is noted that in (18), matrix 𝑲+1
does not change within Newton iterations, thus, it needs to be computed only once in a
propagation step. Also, this part of the matrix is already calculated during the initial guess computation phase described in
Section 6. Hence, by properly recycling it, one can avoid recomputing this part of the coupled stiffness matrix at every Newton
iteration. This optimization, of course, can only be done for elastic materials. It is also noted that the assembly of the elasticity
part of the coupled stiffness matrix is several times more time consuming than 𝑲+1
because of both the size of the matrix and
also the integration of the singular GFEM shape functions.
One complication with the proposed recycling is that the coupled stiffness matrix show in (18) needs to be scaled before it is
factorized. Defining
𝑲 =𝑲+1
𝑲+1
𝒄
𝑲+1
𝒄Δ𝑲+1
(37)
16 Shauer and Duarte
(a) (b)
FIGURE 7 Illustration of the initial guess computation for a penny-shaped fracture problem with = 50   . In both figures,
the fracture at step is shown in orange, and the fracture at step + 1 is shown in gray. The pressure is depicted as a warped
quantity scaled by 0.035 with the fracture position representing the surface where = 0. In (a) the converged pressure from step
is shown and in (b) the initial pressure for step + 1 is shown.
as the coupled stiffness matrix, the scaled stiffness matrix
𝑲 is given by

 =1

 (38)
where =
 is a scaling factor. The scaling of the stiffness matrix is used to improve the conditioning of the system.
More details can be found in Gupta et al55 . Now, at each Newton iteration, 𝑲+1
changes, and so does its scaling factors. Because
of that, both 𝑲+1
and 𝑲+1
𝒄need to be rescaled accordingly.
In order to properly recycle the linear part of the stiffness matrix that comes from the initial guess computation and scale the
coupled stiffness matrix, Algorithm 4 is proposed. In the algorithm, 
 represents the number of elastic equations,  
 the
number of fluid equations,  =
 + 
 is the total number of equations of the coupled system and  is the stiffness
matrix of the initial guess. Also, the coupled solution vector at propagations step , time step search iteration , and Newton
iteration is defined as
𝑼,, =
𝒖,,
𝒑,,
and the solution increment at each Newton iteration
Δ𝑼,, =Δ
𝒖,,
Δ
𝒑,,
It is emphasized that the step to save the fracture opening on the geometrical fracture surface shown in Algorithm 2 of Gupta
and Duarte 1is no longer needed as explained in Section 5.
Four representative examples are used in Sections 9.1 and 9.2 to analyze how much CPU time is saved if the algorithm
described in this section is adopted.
Shauer and Duarte 17
Algorithm 4 Algorithm to use the modified Newton-Raphson method recycling the elasticity part of the stiffness matrix
Compute initial guess with procedure shown in Section 6;
For a determined propagation step and time step + 1 do
procedure MODIFIED NEWTON-RAPH SON ALGORITHM FOR COUPLED SOLUTION
= 0;
Copy stiffness matrix of the initial guess 𝑲 to 𝑲+1
part of 𝑲
Assemble coupled 𝑲+1
𝒄and fluid 𝑲+1
parts of the coupled stiffness matrix;
Assemble load vector as in right hand side of (18);
Save the norm of the initial residual vector: 𝑹2=𝑹,+1,=02;
while 𝑹,+1,2𝑹 2> do
Compute scaling factors with =
 + 1, ..., ;
Scale the matrix with (38);
Solve for Δ𝑼,+1, using Equation (47) of47;
Update the solution 𝑼,+1, =𝑼,+1,−1 + Δ𝑼,+1,;
Update the residual and its 2norm: 𝑹,+1,2;
Copy stiffness matrix of the initial guess 𝑲 to 𝑲+1
part of 𝑲
Assemble coupled 𝑲+1
𝒄and fluid 𝑲+1
parts of the coupled stiffness matrix;
Assemble load vector as in right hand side of (18);
=+ 1;
end while
end procedure
8 ACCURATE TIME INTEGRATION OF LEAK-OFF WITH MESH ADAPTIVITY
8.1 Accurate time integration of the leak-off term
As previously stated, the leak-off term can be integrated analytically to arrive at (16), but some authors use evaluated at a
discrete time between time steps and + 1. In this section, the error at a given material point if doing so is analyzed.
There are two choices for what to store at each material point. First, Strategy (1) is to store only the filtrate volume by updating
+1
=
+(, with between and +1. Strategy (2) is to store both the filtrate volume and the total exposure time by
updating +1
0=
0+Δ. Both strategies lead to much larger errors than the analytical filtrate volume given by (14). A discussion
of this error is presented next.
First, one needs to choose at what discrete time is evaluated at each time step. One constraint is that it is not possible to
evaluate at = 0 because of the singularity of (13). A good alternative is to use evaluated at half the time step, i.e. at
=+Δ
2. This choice leads to a set of linear approximation of (14) with the slopes at half the time step, which in turn leads
to errors in both strategies described above. Additionally, if using Strategy (1) and storing only the filtrate volume, at each step
one needs to calculate the time it took to achieve that volume using (14). That time will not be equal to the total exposure time
since it was based on a set of linear approximations and therefore the calculated for a determined time will also have an error.
In Figure 8, the filtrate volume is plotted if using the two strategies with ten equal steps between zero and ten seconds. The
filtrate volume for strategies (1) and (2) are defined as (1)
and (2)
, respectively. The Carter’s coefficient used is = 10−5
and at each step, is evaluated at +Δ
2. It is observed that even though there is the additional error for the exposure time in
Strategy (1), the curve is closer to the analytical one.
Next, using only Strategy (1), the same plot is generated for different number of time steps and shown in Figure 9 together
with the relative error defined by (39).
 =(1)
()()
()(39)
18 Shauer and Duarte
012345678 9 10
0
0.2
0.4
0.6
0.8
1
1.2
1.4
10−4
Time (𝑠)
𝑣𝑙(𝑚)
𝑣𝑙
𝑣(1)
𝑙
𝑣(2)
𝑙
FIGURE 8 Comparison of the filtrate volume at a material point using Strategy (1), denominated (1)
and Strategy (2),
denominated (2)
. A better matching is observed with Strategy (1).
012345678 9 10
0
0.2
0.4
0.6
0.8
1
1.2
1.4
10−4
Time (𝑠)
𝑣𝑙(𝑚)
𝑣𝑙
𝑛𝑠𝑡𝑒𝑝𝑠 = 10
𝑛𝑠𝑡𝑒𝑝𝑠 = 20
𝑛𝑠𝑡𝑒𝑝𝑠 = 40
𝑛𝑠𝑡𝑒𝑝𝑠 = 160
(a)
012345678 9 10
0
5
10
15
20
25
30
Time (𝑠)
Relative Error (%)
𝑛𝑠𝑡𝑒𝑝𝑠 = 10
𝑛𝑠𝑡𝑒𝑝𝑠 = 20
𝑛𝑠𝑡𝑒𝑝𝑠 = 40
𝑛𝑠𝑡𝑒𝑝𝑠 = 160
(b)
FIGURE 9 Filtrate volume (9a) and relative error (9b) versus time for different number of time steps. A better agreement is
seen as the number of steps is increased, but an initial constant relative error of around 29.29% is observed for the first step in
all cases.
Shauer and Duarte 19
It is observed that the curves get closer to the analytical equation as the number of time steps is increased, but a constant
initial relative error of around 29.29% is observed in all cases. This initial error can be calculated as:
 =) − ∕2)Δ
)=
4Δ2
Δ∕2 Δ
4Δ
= 1 − 1
2
≅ 0.292893
Now, if using the analytical integration in time as presented in (16), the curves for and the relative error are shown in
Figure 10. The relative error is due to machine precision only. It is bigger at the beginning of the case with 160 steps because it
is dividing a similar absolute error due to machine precision by a smaller filtrate volume to obtain the relative error.
012345678 9 10
0
0.2
0.4
0.6
0.8
1
1.2
1.4
10−4
Time (𝑠)
𝑣𝑙(𝑚)
𝑣𝑙
𝑛𝑠𝑡𝑒𝑝𝑠 = 10
𝑛𝑠𝑡𝑒𝑝𝑠 = 20
𝑛𝑠𝑡𝑒𝑝𝑠 = 40
𝑛𝑠𝑡𝑒𝑝𝑠 = 160
(a)
012345678 9 10
0
0.5
1
1.5
2
2.5
3
10−8
Time (𝑠)
Relative Error (%)
𝑛𝑠𝑡𝑒𝑝𝑠 = 10
𝑛𝑠𝑡𝑒𝑝𝑠 = 20
𝑛𝑠𝑡𝑒𝑝𝑠 = 40
𝑛𝑠𝑡𝑒𝑝𝑠 = 160
(b)
FIGURE 10 Filtrate volume (10a) and relative error (10b) per time step for different number of steps if using analytical
integration in time. The same agreement is seen for all cases.
It is noted that if performing the integration in time analytically for the leak-off term, there is no difference between storing
exposure time or filtrate volume.
8.2 Leak-off update procedure
Two choices must be made for the leak-off update procedure. First, as explained on the previous section, if integrating the leak-
off term analytically as in (16) there is no difference in storing the filtrate volume or the exposure time 0. Thus, we chose
to store the filtrate volume . Second, we need to choose where to store this filtrate volume . The most common options are
the integration points and nodes of the finite element mesh. Given the already existing data structure for storing values at nodes
that is used for storing the opening and pressure from a previous propagation step, we chose to also store the filtrate volume at
the fluid FEM mesh nodes.
Let
, be the filtrate volume for given time at a finite element node , and +1
, be the updated filtrate volume at a time
+1, with +1 =+ Δ. To update the filtrate volume, first calculate the exposure time
0, with
0, =
,
4
2
(40)
20 Shauer and Duarte
Then, the updated filtrate volume +1
, is given by
+1
, = 4
0, + Δ+ (41)
Lastly, as previously mentioned adaptivity is used and, at each propagation step, the filtrate volume at propagation step must
be transferred to the new fluid finite element mesh at propagation step + 1. This procedure is explained in Section 5 with
as the filtrate volume. Also, the process is illustrated in Figure 39, where the filtrate volume is plotted as a warped quantity for
the first propagation step and a later propagation step.
9EXAMPLES
In this section, representative examples are presented and the results and assessment of the proposed optimizations are discussed.
The first two examples are based on those presented in Gupta and Duarte1and are used to analyze the proposed optimizations.
A third example is used to verify the leak-off procedure. In all examples, the stress intensity factors are extracted using the
displacement correlation method (DCM). Details of the method can be found in Gupta et al56.
9.1 Penny-shaped hydraulic fracture
In this section, the problem of a penny-shaped propagating hydraulic fracture is presented. In this problem, fluid is injected at a
constant rate at a point in the center of the fracture. It is assumed that no fluid lag is present at any time. The domain is a cube
and no in-situ stresses are applied. The example is depicted in Figure 11.
2
0
()()
FIGURE 11 1∕4th cut-away schematic of the 3-D cuboid domain with a planar penny-shaped fracture of radius . A constant
volumetric injection rate, 0, is applied at the center of the fracture. This figure is adopted from Gupta and Duarte 47.
Because of radial symmetry of the problem, only one-fourth of the domain is analyzed. The domain size is given by 2××
with = 5and the initial fracture radius is = 0.5. The Young’s modulus is = 17   , Poisson ’s ratio is = 0.2,
and the fracture toughness is  = 1.46   . The fluid injected is assumed Newtonian and the injection rate is 0=
0.001 3. Viscosities in the range 0.001  to 100 are considered.
The mesh is composed of 20 × 10 × 10 hexahedral elements, which are divided into six tetrahedral elements each as can be
seen in Figure 12. The polynomial order of approximation is two for both solid and fluid meshes. Close to the fracture front,
the tetrahedral elements are further refined depending on the viscosity. For the cases with viscosities 10  , the tetrahedra
that touch the fracture front are refined until = 0.016 and = 0.0078, where  and  are the longest and
shortest edge of a tetrahedron that intersects the fracture front, respectively. For the cases with viscosities  > 10  , there is
Shauer and Duarte 21
an additional refinement of all the tetrahedra that touch the fracture surface and are within a distance dfront = 0.05 to the front
until = 0.0016. This additional refinement for the higher viscosity cases is needed to accurately approximate the steep
pressure and opening variation close to the front of the fracture. It is recalled that the fluid element mesh depicted in Figure 12
is automatically generated using the methodology explained in Section 5.1.1 of Gupta and Duarte47.
Unless stated otherwise, the parameters for the GD model are taken as Δ = 0.05,= 0.05, and = 0.10.
(a)
(b)
(c)
FIGURE 12 (a) quarter model mesh with initial fracture, (b) zoom-in showing the initial fracture and (c) automatically generated
fluid mesh for the cases with  > 10  .
9.1.1 Results and analysis
This problem has an analytical solution for limiting cases57 and the comparison between them and the hereby presented method-
ology is extensively discussed in1. In this section, the comparison with the analytical solution for the case with = 100 that
is shown in Section 6.2 of Gupta and Duarte1is presented. The results between = 100  and = 1 are also qualitatively
compared.
The dimensionless toughness for a penny-shaped hydraulic fracture is defined as57
 =32

2
(12)53
0
1−213
1∕18
(42)
22 Shauer and Duarte
Savitski et al57 conducted an analysis for the penny-shaped hydraulic fracture problem and concluded that  3.5rep-
resents a toughness dominated regime while  1.0represents a viscosity dominated regime. In Figure 13,  is plotted
with respect to time for the cases with = 1 and = 100  and the parameters adopted for this problem. It is seen that the
case with = 1 is in a region between toughness and viscosity dominated and the case with = 100  is in a viscosity
dominated region.
FIGURE 13  with respect to time for = 1 and = 100  . The case with = 1  is in a region between toughness
and viscosity dominated while the case with = 100 is in a viscosity dominated region.
The time evolution of the fluid pressure and fracture radius are shown in Figure (14). The pressure cannot be sampled exactly
at the injection point because the analytical solution at that point is singular. The pressure values are taken at = 0.0025 . Also,
the pressure at the end of the simulation is slightly higher than the analytical solution. This is because the analytical solution
in Savitski et al57 is derived by assuming zero toughness. Since  = 1.46   is adopted here, some additional energy
is needed at each propagation step which accumulates with time. Nevertheless, a very good agreement between the curves is
observed. For further analysis, including a toughness dominated case, see Section 6.2 of1.
In Figure 15, the pressure profiles for the cases with viscosity = 100  (yellow) and = 1  (green) are presented
as a warped quantity for an early time and a later time. Because of the nature of the automatic propagation algorithm, the
pressure cannot be plotted at the exact same time for both viscosities. Hence, for = 1 the times are =1 
 = 0.155 and
=1 
 = 7.10 , and for = 100 the times are =100 
 = 0.157 and =100 
 = 7.02 . For the early times the pressure
is scaled by 0.04 and for the later times, it is scaled by 0.2. The fracture position is indicated in blue for = 1 and pink for
= 100   . The fracture position also represents the surface with zero fluid pressure (= 0). In all figures, a cylinder passing
through the injection point is included. This cylinder is included solely to help with the visualization. First, it is noticed that for
the early time, the pressure profile is closer to constant for the = 1 case while a significant variation is observed for the
= 100 case with a high pressure at the injection point. Second, the pressure profile has less variation for both viscosities
at a later time. The more the fracture propagates, the more it tends to be toughness dominated. Last, since pressure information
takes more time to reach the front of the fracture in the high viscosity case, it tends to propagate less and therefore its front is
always behind the lower viscosity case. It is noted that since this problem has no in-situ stresses, negative pressures are seen
near the front of the = 100 case. These negative pressures are non-physical but in agreement with the analytical solutions
presented in Savitski et al57 .
Shauer and Duarte 23
0 2 4 6 8 10 12 14
0
2
4
6
8
10
12
14
Time (𝑠)
Pressure (𝑀𝑃 𝑎)
Analytical Solution
Computational Solution
(a)
0 2 4 6 8 10 12 14
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
Time (𝑠)
Radius (𝑚)
Analytical Solution
Computational Solution
(b)
FIGURE 14 (a) Time evolution of the pressure at = 0.06 and (b) time evolution of the fracture radius for the penny-shaped
example with = 100  .
In Figure 16, the opening profiles for the cases with viscosity = 100  (yellow) and = 1 (green) are also presented
as a warped quantity for the same early and later times as before. For the early times, the opening is scaled by 250 and for the
later times, it is scaled by 400. It is observed that for the later time, the opening for the = 100  case is bigger close to the
injection than for the = 1  case. Because of that, the fracture size is also smaller as previously stated.
In Lecampion et al9it is stated that “For multiphysics problems (e.g. poroelasticity etc.), the required interpolation of field
variables between time-step associated with re-meshing is a particularly sensitive issue, especially in regards to mass conser-
vation. Robust schemes for such interpolation are notoriously difficult to develop”. The conservation of mass by the proposed
algorithms is verified in Figure 17 by comparing the volume of injected fluid  with the fracture volume   for both
viscosity cases. The relative error defined by

 =  

(43)
is also shown in both plots. The fracture volume is calculated by numerically integrating the fracture opening defined in (10)
over the fracture domain, i.e.,
  =
Γ
 Γ(44)
The volume of injected fluid is simply given by
 =0(45)
24 Shauer and Duarte
Fracture position
= 100
= 1
(= 0 surface) = 100
= 1
(a) (b)
(c) (d)
FIGURE 15 Pressure profiles shown as a warped quantity for =1 
 = 0.155 and =100 
 = 0.157 (top row) and for
=1 
 = 7.10 and =100 
 = 7.02 (bottom row). In all figures, green represents the pressure for the case with = 1   ,
and yellow for the case with = 100  . The fracture position (= 0 surface) is shown in blue for = 1 and pink for
= 100   . The higher viscosity case shows higher pressure variation and smaller fracture sizes.
Shauer and Duarte 25
= 100
= 1
= 100
= 1
(a) (b)
(d)(c)
FIGURE 16 Opening profiles for =1 
 = 0.155 and =100 
 = 0.157 (top row) and for =1 
 = 7.10 and =100 
 =
7.02 (bottom row). In all figures, green represents the case with = 1  , and yellow the case with = 100   . The higher
viscosity case shows a bigger opening close to the injection point and smaller fracture sizes.
0 2 4 6 8 10 12 14 16
0
1
2
3
4
5
10−3
Time (𝑠)
Volume (𝑚3)
0
2
4
6
8
10−4
Relative error
𝑉𝑖𝑛𝑗𝑒𝑐𝑡𝑒𝑑
𝑉𝑓𝑟𝑎𝑐𝑡𝑢𝑟𝑒
𝑒𝑣𝑜𝑙
𝑟𝑒𝑙
(a)
0 2 4 6 8 10 12 14 16
0
1
2
3
4
5
10−3
Time (𝑠)
Volume (𝑚3)
0
2
4
6
8
10−4
Relative error
𝑉𝑖𝑛𝑗𝑒𝑐𝑡𝑒𝑑
𝑉𝑓𝑟𝑎𝑐𝑡𝑢𝑟𝑒
𝑒𝑣𝑜𝑙
𝑟𝑒𝑙
(b)
FIGURE 17 The volume injected  and the fracture volume   together with the relative error are shown for the
cases with (a) = 1 and (b) = 100  . A maximum relative error of around 0.06% is observed in the = 1 case.
26 Shauer and Duarte
A maximum error of around 
 = 0.06% is observed in the = 1  case. The behavior and magnitude of the relative
error is similar to the ones found in Figure 13 of Liu et al58. In that example, the authors solve a three-dimensional plate with
a horizontal planar cohesive hydraulic fracture in the middle without adaptivity. The relative error grows fast in the beginning
because the denominator in (43) is small at the initial steps. Also, a very small relative error is observed for the first two points
of the plots because that is when the fracture is being filled, i.e., no propagation occurred yet.
Effect of initial guess for nonlinear solver
An analysis is conducted in this section for the convergence of Newton’s method if using the initial guess strategy described in
Section 6. A starting solution vector identically zero is also considered. This is hereafter referred to as the no initial guess strategy.
In order to make it increasingly more difficult for the nonlinear solver to converge, the problem with increasing viscosity is
solved. For each case, the number of Newton iterations for convergence of the nonlinear system of equations is plotted in Figure
18a. It is noted that the time step chosen for this analysis is the one that leads to propagation for the case with = 0.001  .
Thus, for the cases with higher viscosities, the time step may possibly not satisfy the GD model.
0.001 0.1 0.1 1 10 30 50 100
1
2
3
4
5
6
7
8
9
10
no convergence
no convergence
no convergence
𝜇(𝑐𝑃 )
Newton Iterations
No initial guess
With initial guess
(a)
100
𝜇(𝑐𝑃 )
𝜇= 10 𝑐𝑃
𝜇= 100 𝑐𝑃
(b)
FIGURE 18 (a) Comparison of number of Newton iteration for convergence when using the proposed and the no initial guess
strategies for varying viscosity and (b) number of Newton iterations to converge the case with = 100  using an auxiliary
problem with = 10   .
Without an initial guess, it is observed that the number of iterations increases with the fluid viscosity until = 50   , where
the solver does not converge. In contrast, if using the proposed initial guess, it is observed that fewer iterations are needed and the
solver only does not converge with = 100  . To tackle problems with 100  , the following is proposed. An auxiliary
problem with decreased viscosity and increased tolerance set by the user is solved. The solution to this problem is then used to
start the iterations of the problem with the correct viscosity. In the problem considered here, a decreased viscosity of 10% of the
correct value is used. An illustration of this approach is shown in Figure 19.
Shauer and Duarte 27
(a) (b)
(c)
FIGURE 19 Illustration of initial guess for penny-shaped problem with = 100  . In all figures the fracture at step is shown
in orange, and the fracture at step + 1 is shown in gray. In all plots the pressure is depicted as warped quantity scaled by 0.035
where the fracture position represents the surface with = 0. In (a), the converged pressure from step is shown, in (b), the
initial pressure from step + 1 is shown, and in (c) the converged pressure for the decreased viscosity case is shown.
Using this two-viscosity approach, the problem with = 100 can be solved with 3 iterations for = 10  and 4 iterations
for the correct viscosity (= 100   ) problem as can be seen in Figure 18b.
Another way to make the problem increasingly more difficult to solve is to increase the magnitude of fracture propagation
Δ. In contrast to the previous analysis, for this case, the time step chosen is the one that leads to satisfaction of the GD
model for each selected Δ. This choice is based on the fact that we want to make the problem increasingly harder for the
Newton method to converge and, if the time step does not change, the sought nonlinear solution does not become much harder
to find. It is also recalled that the error in time integration can become significantly big in this example but this is not an issue
for this analysis since the focus is to observe the robustness of the proposed initial guess for the nonlinear solver. In Figure 20,
the number of iterations for convergence of the nonlinear solution is plotted for the case with = 1  . It is seen that it is
28 Shauer and Duarte
significantly harder for the case with no initial guess to converge yielding up to 15 Newton iterations. In contrast, the case with
the proposed initial guess converges quickly until Δ = 1.0when it no longer converges.
0.05 0.1 0.15 0.2 0.5 1.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
no convergence
no convergence
no convergence
no convergence
Δ𝑎𝑚𝑎𝑥 (𝑚)
Newton Iterations
No initial guess
With initial guess
FIGURE 20 Comparison of number of Newton iterations to converge between the proposed and no initial guess strategies for
varying Δ and = 1   .
Improved search for time step satisfying the GD model
In order to analyze the benefits of using the improved methodology to compute the time step reported in Section 4.2, two cases
are considered. The penny-shaped fracture with = 100  and = 1   . They represent a more and less difficult problem to
find the time step, respectively.
Figure 21 compares the number iterations to find Δat each propagation step when using or not the strategy of Section 4.2
for the penny-shaped problem with = 100  .
Shauer and Duarte 29
0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80
1
2
3
4
5
6
Fracture Propagation Step Number
Number of Time Steps
No past slope
With past slope
FIGURE 21 Number of time steps solved (
) when searching for a time step that satisfies the GD model if using or not the
strategy of Section 4.2 for the penny-shaped problem with = 100   .
It is observed that the number of iterations decreased with the accumulated number of time steps being 171 without using the
improvement and 131 with the proposed improvement. Also, it can be seen that after the first 13 steps, the new algorithm never
takes more than two iterations to find the satisfying time step.
In Figure 22, the number of steps is shown for the case with = 1  . The accumulated number of time steps is 121 without
using the improvement and 101 with the improvement. It is also seen that the number of steps for the new algorithm never
exceeds two after the two initial propagation steps. It is noted that the magnitude of the initial time step for these two first
propagation steps is set by the user.
Recycling of the linear part of the stiffness matrix
In this section, the decrease in computational cost by recycling the linear part of the stiffness matrix as explained in Section 3.2
is analyzed. For that, four plots are shown with respect to propagation steps for the same two cases as in the previous section:
(1) the total time for all assembly calls in the step, (2) the speedup for all assembly calls compared with the case where the
full matrix is always reassembled, (3) the total time to execute the whole propagation step and (4) the speedup for the whole
propagation step. The simulations were run in the University of Illinois Campus Cluster59 and the processor used is an Intel E5-
2670V2 (Ivy Bridge) 2.50 GHz, 25MB cache. It is also noted that the assembly is done in parallel using OpenMP60 as explained
by Plews, J.61 . All the times shown are wall times and for each speedup plot, the average defined by (46) is reported.
 
 = 

(46)
with 
 the average speedup where  can be  or , 
is the speedup at propagation step for a given
 and  is the total number of simulation steps.
The results for the penny-shaped problem with = 100 are shown in Figure 23. An average speedup of 20.75 is achieved
for the assembly, while the average speedup for the total time at a propagation step is 1.57. The smaller speedup for the total
time is due to the dominant computational cost of the global matrix factorization. This same behavior is also seen in the other
examples in this section. Another salient feature of the speedup plots is the presence of spikes as the ones seen in Figure 23a at
30 Shauer and Duarte
0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80
1
2
3
4
5
6
Fracture Propagation Step Number
Number of Time Steps
No past slope
With past slope
FIGURE 22 Number of time steps solved (
) when searching for a time step that satisfies the GD model if using or not the
strategy of Section 4.2 for the penny-shaped problem with = 1   .
propagation steps 14 to 17. These spikes were identified to happen because of numerical errors introduced when recalculating
the stiffness matrix every time. Since the assembly is done in parallel, small differences may appear according to the order in
which the local stiffness matrices are assembled in the global matrix. These small differences can accumulate with time and
eventually lead to propagation or not for cases when 
, is very close to satisfying the GD model. This, in turn, will lead to
less or more iterations to satisfy the GD model. The spikes are also observed in all other examples in this manuscript.
0 10 20 30 40 50 60 70 80
0
100
200
300
400
500
600
700
Fracture Propagation Step Number
Time (𝑠)
0
10
20
30
40
Speedup
Time w/o matrix recycling
Time w/ matrix recycling
Speedup
(a)
0 10 20 30 40 50 60 70 80
0
500
1,000
1,500
2,000
2,500
Fracture Propagation Step Number
Time (𝑠)
0
0.5
1
1.5
2
2.5
3
Speedup
Time w/o matrix recycling
Time w/ matrix recycling
Speedup
(b)
FIGURE 23 Assembly (a) and total (b) wall time per propagation step for the penny-shaped example with = 100  . The
speedup at each propagation step is also shown in both plots.
Shauer and Duarte 31
Figure 24 shows the results for the penny-shaped problem with = 1  . The average speedup for assembly is 17.59, which
is smaller than in the previous case. This is attributed to the smaller system of equations derived from less mesh refinement
required for this case. Additionally, the total step time average speedup is 1.44, which is also smaller. This is due to fewer
assemble calls since the Newton converges in fewer iterations.
0 10 20 30 40 50 60 70 80
0
50
100
150
200
Fracture Propagation Step Number
Time (𝑠)
0
5
10
15
20
25
30
Speedup
Time w/o matrix recycling
Time w/ matrix recycling
Speedup
(a)
0 10 20 30 40 50 60 70 80
0
100
200
300
400
500
600
Fracture Propagation Step Number
Time (𝑠)
0
0.5
1
1.5
2
2.5
Speedup
Time w/o matrix recycling
Time w/ matrix recycling
Speedup
(b)
FIGURE 24 Assembly (a) and total (b) wall time per propagation step for the penny-shaped example with = 1   . The
speedup at each propagation step is also shown in both plots.
9.2 Planar elliptical hydraulic fracture
In this section, the problem of a planar elliptical fracture propagating in a domain with different in-situ horizontal stress layers is
presented. Fracturing fluid is injected at the center of the ellipse with a constant rate and no fluid lag is considered. The problem
is illustrated in Figure 25. This example is solved by Gupta and Duarte1to analyze the effect of having different variations of
the horizontal in-situ stresses while injecting fluids with different viscosities. The problem is also solved by Gupta and Duarte46
adopting a constant pressure and by Rungamornrat et al62 , with the symmetric Galerkin boundary element method (SGBEM).
32 Shauer and Duarte
2a
2b
Wellbore
2b
(a)
h
h
2b
2a
X
Y
Z
h
h
1MPa
3MPa
2MPa
1MPa
3MPa
2MPa
(b)
FIGURE 25 (a) Schematic of the initial elliptical fracture with major and minor axes as 2a and 2b, respectively, and its position
with respect to the vertical wellbore and (b) schematic of the horizontal in-situ stress contrast along the depth of the reservoir.
This figure is adopted from Gupta and Duarte 1.
Only half of the domain is modeled due to symmetry. The computational domain is given by 10× 10× 5with = 15.
The elliptical fracture has major semi-axes = 10and minor semi-axes = 5. The in-situ horizontal stresses are given by
1= 1.5  ,2= 1    ,3= 2    and the in-situ vertical stress  = 7.5 . The Young modulus is = 5  ,
the Poisson ratio is = 0.3and the fracture toughness is  = 0.894   . The fluid injected is Newtonian with viscosity
= 0.01  ,= 0.1  ,or= 1.0 and the injection rate is 0= 9.03
The mesh is composed of 10 × 10 × 5 hexahedral elements, which are divided into six tetrahedral elements each as can be seen
in Figure 26. The polynomial order of approximation is two for both solid and fluid meshes. At the fracture front, the tetrahedral
elements are further refined with  = 0.012 and = 0.0059.
Unless stated otherwise, the parameters for the GD model are taken as Δ = 0.25 ,= 0.075 and = 0.10.
9.2.1 Results and analysis
In this section, the results for different fluid viscosities are analyzed.
The fracture position is shown in figure 27 for the cases with = 0.01  ,= 0.1 , and = 1.0at two different times.
The times shown are not the same due to the algorithm used to automatically find Δthat satisfies the GD model, so the most
similar times were chosen. Hence, for = 0.01  the times are =0.01 
 = 0.55 and =0.01 
 = 9.11 , for = 0.1 the
times are =0.1
 = 0.54 and =0.1
 = 9.14 , and for = 1 the times are =1 
 = 0.51 and =1 
 = 9.16 . The
fracture with lower fracturing fluid viscosity propagates further to the right and more to the top while the fracture with higher
viscosity propagates less overall but more towards the bottom of the reservoir.
The fracture opening is depicted with an scaling of 1250 for an early time in Figure 28, and for a later time in Figure 29.
As in Section 9.1, in all figures, a cylinder passing through the injection point is included. This cylinder does not represent the
Shauer and Duarte 33
(a)
(c)
(b)
FIGURE 26 (a) half model mesh with initial fracture and traction boundary conditions, (b) zoom-in showing the initial fracture
and (c) automatically generated fluid mesh.
wellbore and is included solely to help with the visualization. It is observed that the opening is bigger close to the wellbore for
the higher viscosity cases and smaller away from the front.
The pressure profiles are shown at an early and at a later time in Figures 30 and 31, respectively. The pressure fields are shown
as a warped quantity scaled by 5. The gray surface represents the fracture initial position and the plane with zero fluid pressure
(= 0). At the early solution time, the pressure close to the injection point is the biggest for the highest viscosity case and close
to constant for the lowest viscosity case. All cases get more toughness dominated in the later times and it is hard to notice the
difference between the cases with = 0.01  and = 0.1visually in Figure 31.
It is reminded that to initialize the simulation, a problem with a near-zero viscosity (= 10−6  ) is run for one time step.
This methodology is proposed by Gupta and Duarte1and is based on the fact that the initial fracture is created by perforating the
rock and therefore a small opening already exists. After solving one time step with this near-zero viscosity, the fracturing fluid
viscosity is returned to the actual value. Because of that sudden change in viscosity on the first step, the not so trivial profiles
for the cases with = 0.1 (green) and = 1 (yellow) shown in Figure 30 arise.
Conservation of mass is again verified in Figure 32 by comparing the volume injected  with the fracture volume
  for the cases with = 0.01   ,= 0.1 , and = 1.0 . The relative error 
 defined in 43 is also shown.
A maximum relative error of around 
 = 0.08% is observed in the = 1 case. This shows that even for a case where
not all fracture front vertices propagate at the same time or by the same amount, mass conservation is accurately satisfied. Also,
a very small relative error is observed for the first two points of the plots because that is when the fracture is being filled, i.e.,
no propagation occurred yet.
34 Shauer and Duarte
= 1
= 0.01 
(a) (b)
= 0.1
FIGURE 27 Fracture surface for a time around = 0.55 in (a) and = 9.15 in (b). In both figures, pink represents the case
with 1= 0.01  , green the case with 2= 0.1  , and yellow the case with 3= 1.0 . The grey half ellipse represents the
initial fracture. The fracture with lower fracturing fluid viscosity (pink surface) propagates further to the right and more to the
top while the fracture with higher fracturing fluid viscosity (yellow surface) propagates less overall but more towards the bottom.
Shauer and Duarte 35
(a) (b)
FIGURE 28 Fracture opening at a time around = 0.55 with a back view (a) and a front view (b). In both figures, pink
represents the case with 1= 0.01  , green the case with 2= 0.1 , and yellow the case with 3= 1.0 . The half ellipse
in gray represents the fracture and zero pressure surfaces. The case with highest viscosity has the highest opening close to the
injection and smaller opening far from it.
(a) (b)
(c) (d)
FIGURE 29 Fracture opening at a time around = 9.15 with two front views ((a) and (b)) and two back views ((c) and (d)). In
all figures, pink represents the case with 1= 0.01  , green the case with 2= 0.1 , and yellow the case with 3= 1.0 .
The half ellipse in gray represents the fracture and zero pressure surfaces. Once again, it is noted that case with higher viscosity
has bigger opening close to the injection and smaller opening far from it.
36 Shauer and Duarte
Fracture position
(= 0 surface)
(a) (b)
FIGURE 30 Fracture pressure at a time around = 0.55 with a side view (a) and an angle view (b). In both figures, pink
represents the case with 1= 0.01  , green the case with 2= 0.1 , and yellow the case with 3= 1.0 . The half ellipse
in gray represents both the fracture and the zero pressure surfaces. The case with highest viscosity has the highest pressure close
to the injection point.
Fractures position
(= 0 surfaces)
(a) (b)
FIGURE 31 Fracture pressure at a time around = 9.15 with a side view (a) and an angle view (b). In both figures, pink
represents the case with 1= 0.01  , green the case with 2= 0.1 , and yellow the case with 3= 1.0 . The half ellipse
in gray represents both the fracture and the zero pressure surfaces. The case with highest viscosity has the highest pressure close
to the injection point but it is not as pronounced as in the early stages.
Shauer and Duarte 37
02468
0
0.2
0.4
0.6
0.8
1
Time (𝑠)
Volume (𝑚3)
0
2
4
6
8
10−4
Relative error
𝑉𝑖𝑛𝑗𝑒𝑐𝑡𝑒𝑑
𝑉𝑓𝑟𝑎𝑐𝑡𝑢𝑟𝑒
𝑒𝑣𝑜𝑙
𝑟𝑒𝑙
(a)
02468
0
0.2
0.4
0.6
0.8
1
Time (𝑠)
Volume (𝑚3)
0
2
4
6
8
10−4
Relative error
𝑉𝑖𝑛𝑗𝑒𝑐𝑡𝑒𝑑
𝑉𝑓𝑟𝑎𝑐𝑡𝑢𝑟𝑒
𝑒𝑣𝑜𝑙
𝑟𝑒𝑙
(b)
02468
0
0.2
0.4
0.6
0.8
1
Time (𝑠)
Volume (𝑚3)
0
2
4
6
8
10−4
Relative error
𝑉𝑖𝑛𝑗𝑒𝑐𝑡𝑒𝑑
𝑉𝑓𝑟𝑎𝑐𝑡𝑢𝑟𝑒
𝑒𝑣𝑜𝑙
𝑟𝑒𝑙
(c)
FIGURE 32 Volume injected  and the fracture volume   together with the relative error are shown for the cases
with (a) = 0.01  , (b) = 0.1  , and = 1  . A maximum error of around 0.08% is observed in the = 1 case.
38 Shauer and Duarte
Improved search for time step satisfying the GD model
Two cases were chosen to analyze the benefits of using the improved methodology to compute the time step proposed in Section
4.2. The planar elliptical problem is first analyzed with parameters as reported in Section 9.2 and = 1  . This test is used to
verify if, in a problem where not all fracture front vertices propagate at the same time or by the same amount, the methodology
is still beneficial. The same planar elliptical problem is then analyzed with two changes: Δ = 0.35 and = 0.0375. The
modified parameters lead to a harder search for the time step. Therefore, we want to check if, in a harder problem, the technique
is still beneficial. It is recalled that the initial time step for the first two propagation steps is chosen by the user. Hence, the
number of iterations in these propagation steps should not be used to analyze the performance of the two methodologies.
The analysis is shown first in Figure 33 for the planar elliptical problem with parameters as in Section 9.2 and = 1   . The
number of iterations decreased with the accumulated number of time steps being 170 without using the improvement and 145
with the improvement. It is also observed that except for step 102, the number of steps never exceeds two with the improved
algorithm.
0 10 20 30 40 50 60 70 80 90 100 110
1
2
3
4
5
6
Fracture Propagation Step Number
Number of Time Steps
No past slope
With past slope
FIGURE 33 Number of time steps (
) solved when searching for time step satisfying the GD model with and without using
past slope for the planar elliptical problem with Δ = 0.25 and = 0.075.
Shauer and Duarte 39
0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80
1
2
3
4
5
6
Fracture Propagation Step Number
Number of Time Steps
No past slope
With past slope
FIGURE 34 Number of time steps (
) solved when searching for time step satisfying the GD model with and without using
past slope for the planar elliptical problem with Δ = 0.35 and = 0.0375.
The planar elliptical is next solved with a larger Δ and a smaller . It is observed in Figure 34 that the number of iterations
decreased with the accumulated number of time steps being 289 without using the improved algorithm and 131 with it. It is
noted that the use of a past slope is an approximation and, as can be seen in propagation steps 7 and 35, one more iteration may
be needed to satisfy the GD model. Nevertheless, this is a considerable improvement to the previous methodology where six
iterations are needed in several propagation steps.
These results show that even if the time step is big and the precision requested is small, using the slope from a previous step
to calculate the time step often leads to the satisfaction of the GD model.
Recycling of the linear part of the stiffness matrix
The same two cases from the last section are used to analyze the decrease in computational cost by recycling the linear part of the
stiffness matrix. The results for the planar elliptical problem with parameters as in Section 9.2 and = 1 are shown in Figure
35. An average speedup of 29.74 is observed for the assembly of the stiffness matrix, while the average speedup for the total
time at a propagation step is 2.07. These averages are bigger than the ones reported for the penny-shaped example. The assembly
speed up bigger average is due to the bigger system of equations than in the penny-shaped problem. The total step time bigger
average speedup is because of the harder convergence and satisfaction of the GD model than in the penny-shaped problem.
The results for the planar elliptical problem with parameters that lead to a harder convergence and satisfaction of the GD
model compared to the previous problem are shown in Figure 36. An average speedup of 32.08 is observed for the assembly,
while the average speedup for the total step time 2.14. For the same reasons as in the previous example, the average speedup is
bigger than in the last example for both assembly and total time.
40 Shauer and Duarte
0 20 40 60 80 100
0
200
400
600
800
1,000
1,200
Fracture Propagation Step Number
Time (𝑠)
0
20
40
60
80
100
Speedup
Time w/o matrix recycling
Time w/ matrix recycling
Speedup
(a)
0 20 40 60 80 100
0
500
1,000
1,500
2,000
Fracture Propagation Step Number
Time (𝑠)
0
1
2
3
4
5
Speedup
Time w/o matrix recycling
Time w/ matrix recycling
Speedup
(b)
FIGURE 35 Assembly (a) and total (b) wall time per propagation step for the planar elliptical example with = 1   . The
speedup per propagation step is also shown in both plots.
0 10 20 30 40 50 60 70 80
0
200
400
600
800
Fracture Propagation Step Number
Time (𝑠)
0
20
40
60
80
Speedup
Time w/o matrix recycling
Time w/ matrix recycling
Speedup
(a)
0 10 20 30 40 50 60 70 80
0
200
400
600
800
1,000
1,200
1,400
Fracture Propagation Step Number
Time (𝑠)
0
1
2
3
4
Speedup
Time w/o matrix recycling
Time w/ matrix recycling
Speedup
(b)
FIGURE 36 Assembly (a) and total (b) wall time per propagation step for the planar elliptical example with = 1   . The
speedup per propagation step is also shown in both plots.
9.3 Penny-shaped hydraulic fracture with leak-off
Bunger et al43 present an asymptotic analytical solution for a penny-shaped problem as the one described in Section 9.1 with
leak-off in a toughness dominated regime. Their solution is used to verify the methodology proposed in Section 8. All the
parameters are the same as in Section 9.1, except for the viscosity which is set to = 0.001  and the introduction of the leak-
off term with leak-off Carter coefficient = 0.000005 . The small viscosity is used to ensure that the fracture grows in a
toughness dominated regime as in the reference analytical solution. No spurt loss considered, i.e.,  = 0. The pressure, radius,
and opening at the injection point are plotted in Figure 37 and compared with the analytical solutions. An excellent agreement
between the curves is observed.
Mass conservation is verified in Figure 38. The injected volume  calculated with (45), the fracture volume  
calculated with (44), the total leak-off volume  and the sum of the fracture volume and total leak-off volume   +
Shauer and Duarte 41
012345678
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
Time (𝑠)
Pressure (𝑀𝑃 𝑎)
Analytical Solution
Computational Solution
(a)
012345678
0
0.5
1
1.5
2
2.5
3
3.5
4
10−4
Time (𝑠)
Opening (𝑚)
Analytical Solution
Computational Solution
(b)
012345678
0
0.5
1
1.5
2
2.5
3
3.5
4
Time (𝑠)
Radius (𝑚)
Analytical Solution
Computational Solution
(c)
FIGURE 37 (a) time evolution of pressure at the fracture, (b) time evolution of the radius, and (c) time evolution of the opening
at the injection point for the penny-shaped problem with = 0.001  and = 0.000005 .
  are plotted with respect to time. The relative error between   +  and   defined in (47) is also
presented.
 
 =   +

(47)
where the total leak-off volume is calculated by numerically integrating the accumulated filtrate volume over the fracture surface
as shown in 48.
  =
Γ
Γ(48)
42 Shauer and Duarte
A very good agreement between the curves of  and    + is observed, with the maximum relative error
of about 0.009% at around 0.72 second.
012345678
0
0.5
1
1.5
2
2.5
10−3
Time (𝑠)
Volume (𝑚3)
0
0.2
0.4
0.6
0.8
1
1.2
1.4
10−4
Relative error
𝑉𝑖𝑛𝑗𝑒𝑐𝑡𝑒𝑑
𝑉𝑓 𝑟𝑎𝑐𝑡𝑢𝑟𝑒
𝑉𝑙𝑒𝑎𝑘𝑜𝑓 𝑓
𝑉𝑓 𝑟𝑎𝑐𝑡𝑢𝑟𝑒 +𝑉𝑙𝑒𝑎𝑘𝑜𝑓 𝑓
𝑒𝑙𝑒𝑎𝑘𝑜𝑓 𝑓
𝑟𝑒𝑙
FIGURE 38 Injected volume, fracture volume and leak-off total volume with respect to the simulation time. The conservation
of mass is checked by comparing  +  with   where a maximum relative error of 0.009% is found at 0.72
seconds.
The filtrate volume is plotted in Figure 39 as a warped quantity in green scaled by 5000 at the first propagation step and at
a later step. It is seen that some discretization error for may appear near the fracture front during the transfer of data between
meshes. But as stated in Section 5, the mesh refinement that is already needed for obtaining accurate stress intensity factors is
more than enough compared to the error that comes from the data transfer between meshes.
Fracture position at step = 0
(= 0 surface)
(a) (b)
Fracture position at step = 100Fracture position at step = 1
FIGURE 39 Illustration of the volume per unit area saved at the nodes for the penny-shaped problem with =
0.000005 . In both figures, the fracture at step 0 is shown in orange, and the fracture at step is shown in gray with = 1
for (a) and = 100 for (b). In both plots the leak-off volume is depicted as warped quantity in green scaled by 5000 and the
fracture position represents the surface where = 0.
Shauer and Duarte 43
10 CONCLUSIONS
In this work, three optimizations are presented for simulating 3-D hydraulic fracturing with the GFEM. The improvements
are shown to both decrease the computation cost and increase robustness. These optimizations were analyzed with the help of
representative examples that show considerable improvements to the work of Gupta and Duarte1. First, an initial guess based
on the solution of a purely elastic problem to start the Newton iterations was analyzed for the penny-shaped problem. It is
shown that the number of Newton iterations decrease considerably and convergence is achieved in cases that previously could
not. Furthermore, a methodology to find an initial guess for high viscosity problems is presented based on the solution of an
auxiliary problem with decreased viscosity. This methodology is shown to solve the penny-shaped problem with = 100  .
Second, an improvement to the algorithm to find the time step that will lead to satisfaction of the GD model is discussed. This
improvement is based on using a past slope of the variation of 
, with respect to time to estimate the time step that leads to
the satisfaction of the GD model. The improvement is analyzed with four representative examples and the accumulated number
of time step iterations are summarized in Table 1. A significant reduction in the number of iterations is observed in all examples.
penny-shaped
= 100 
penny-shaped
= 1 
planar elliptical
= 0.075
Δ = 0.25
planar elliptical
= 0.0375
Δ = 0.35
No past slope 171 121 170 289
With past slope 131 101 145 131
TABLE 1 Number of accumulated iterations to find Δfor each example.
Lastly, a methodology to avoid re-assembling non-changing parts of the coupled stiffness matrix is analyzed. The total and
assembly times for each propagation step are presented together with the speedup calculated. Also, the average presented in 46
is calculated and the results are summarized in Table 2. Even though a big speedup is verified for the assembly time (from 17.59
to 32.08), the total speedup is not as significant (from 1.44 to 2.14), although still considerable. This is because the dominant
computational cost in the methodology is the solving algorithm. Also, it is noticed that the harder it is to find the time step that
satisfies the GD model, the bigger is the speedup.
penny-shaped
= 100 
penny-shaped
= 1 
planar elliptical
= 0.075
Δ = 0.25
planar elliptical
= 0.0375
Δ = 0.35
 
 20.74 17.59 29.74 32.08
 
 1.572 1.444 2.073 2.138
TABLE 2 Average speedup in assemble and total time for each example.
In addition, a methodology to account for the leak-off was presented and verified against analytical solutions for a toughness
dominated regime. The pressure, opening, and radius over time obtained with the proposed methodology agree very well with
the analytical solutions.
Mass conservation is a difficult issue when using mesh adaptivity as stated in Lecampion et al.9and therefore it was verified
for the examples presented in this manuscript. The biggest errors at a propagation step are 0.06% for the penny-shaped problem,
0.08% for the planar elliptical problem, and 0.009% for the leak-off verification problem. These small maximum errors show
that the choice of using the fluid finite element mesh to store and transfer data as explained in Section 5 is indeed an accurate
one. This is attributed to the high refinement close to the fracture front which is already needed to obtain accurate stress intensity
factors.
44 Shauer and Duarte
11 ACKNOWLEDGEMENTS
The authors acknowledge the support from Corporate Strategic Research, ExxonMobil Research and Engineering Company
under contract number EM09099.A3. Author Nathan Shauer would also like to thank the funding support from TechnipFMC
Educational Fund Fellowship and the Brazilian National Council of Research and Development (CNPq).
References
1. Gupta P, Duarte C. Coupled hydromechanical-fracture simulations of nonplanar three-dimensional hydraulic fracture prop-
agation. International Journal for Numerical and Analytical Methods in Geomechanics 2018; 42(1): 143–180. doi:
10.1002/nag.2719
2. Reinicke A, Rybacki E, Stanchits S, Huenges E, Dresen G. Hydraulic fracturing stimulation techniques and formation dam-
age mechanisms - Implications from laboratory testing of tight sandstone proppant systems. Chemie der Erde - Geochemistry
2010; 70: 107–117. doi: 10.1016/j.chemer.2010.05.016
3. Lecampion B, Desroches J. Simultaneous initiation and growth of multiple radial hydraulic fractures from a horizontal
wellbore. Journal of the Mechanics and Physics of Solids 2015; 82: 235–258. doi: 10.1016/j.jmps.2015.05.010
4. Miller C, Waters G, Rylander E. Evaluation of production log data from horizontal wells drilled in organic shales. In:
Proceedings of SPE North American Unconventional Gas Conference and Exhibition. ; 2011; The Woodlands, TX, USA.
5. Lecampion B, Desroches J, Weng X, Burghardt J, Brown J. Can We Engineer Better Multistage Horizontal Completions?
Evidence of the Importance of Near-wellbore Fracture Geometry from Theory, Lab and Field Experiments. In: Proceedings
of SPE Hydraulic Fracturing Technology Conference. ; 2015; The Woodlands, TX, USA.
6. A. B, Lecampion B. Four critical issues for successful hydraulic fracturing applications. In: Feng XT., ed. Rock Mechanics
and Engineering. 6. CRC Press. 2017.
7. Kumar S, Zhou F, Searles KH, Gosavi SV. Modeling of Fluid-Driven Fractures Using XFEM. In: 51st U.S. Rock
Mechanics/Geomechanics Symposium. American Rock Mechanics Association; 2017; San Francisco, CA, USA.
8. Adachi J, Siebrits E, Peirce A, Desroches J. Computer simulation of hydraulic fractures. International Journal of Rock
Mechanics & Mining Sciences 2007; 44: 739–757. doi: 10.1016/j.ijrmms.2006.11.006
9. Lecampion B, Bunger A, Zhang X. Numerical methods for hydraulic fracture propagation: A review of recent trends.
Journal of Natural Gas Science and Engineering 2018; 49: 66–83. doi: 10.1016/j.jngse.2017.10.012
10. Secchi S, Simoni L, Schrefler BA. Mesh adaptation and transfer schemes for discrete fracture propagation in porous
materials. Int, J. Numer. Anal. Meth. Geomech. 2007; 31: 331–345. doi: 10.1016/j.chemer.2010.05.016
11. Paluszny A, Zimmerman R. Numerical simulation of multiple 3D fracture propagation using arbitrary meshes. Computer
Methods in Applied Mechanics and Engineering 2011; 200(9–12): 953–966. doi: 10.1016/j.cma.2010.11.013
12. Chiaramonte MM, Gawlik ES, Kabaria H, Lew AJ. Universal Meshes for the Simulation of Brittle Fracture and Moving
Boundary Problems. In: Weinberg K, Pandolfi A., eds. Innovative Numerical Approaches for Multi-Fields and Multi-Scale
Problems. 81. Springer. 2016.
13. Gerstle W, Ingraffea A, R. P. Three-dimensional fatigue crack propagation analysis using the boundary element method.
Int. J. Fatigue 1988; 10: 187–192.
14. Gerstle W, Martha L, Ingraffea A. Boundary Element modeling of crack propagation in three dimensions. Engng. Comput.
1987; 2: 167–183.
15. Chang C, Mear M. A boundary element method for two dimensional linear elastic fracture analysis. International Journal
of Fracture 1995; 74: 219-251.