FRIC2D input files consists of five parts of data: constants, observation lines, boundary conditions, fracture conditions, and fault conditions.

**Contents include:**- 4.1 Constants
- 4.1.1 Titles
- 4.1.2 Rock Properties
- 4.1.3 Symmetry
- 4.1.4 Gravitational Stresses
- 4.1.5 Number of Observation and Boundary Lines
- 4.1.6 Option Comands
- 4.1.7 End
- 4.2 Observation Lines
- 4.3 Boundary Conditions
- 4.4 Fracture Conditions
- 4.5 Fault Conditions
- 4.6 Example

FRIC2D input files begin with a series of 3-word assignment statements. Each assignment statement has the form

name = value

where name is the name of a FRIC2D constant and value is its
assigned value. A FRIC2D constant is either a parameter that controls
program execution or a physical quantity with a value that is not a
function of position. *There must always be at least one space on
either side of equal sign ( =) in order for FRIC2D to parse the input
file correctly.* The following is a list of the constants that
the user should provide for running FRIC2D:

- titles;
- rock properties;
- symmetry;
- gravity stresses;
- number of observation lines;
- number of boundary lines;
- option commands.

There are two titles. Title1 is used to define the "Problem title", and title2 is used to specify the "Problem subtitle". They are text strings and need to be quoted. The default values of title1 and title2 are space " ".

title1 = " Problem title (a string) "

and

title2 = " Problem sub-title (a string) "

For example, titles for hydraulic fracturing stress measurement in San Francisco, USA can be given as follows:

title1 = "Hydraulic fracturing stress measurement" title2 = "in San Francisco, California, USA"

Four material parameters of the rock mass should be provided.
Young's modulus,` e`, should be given in MPa. Poisson's
ratio, `pr`, is a dimensionless parameter. Fracture
toughness for mode I loading, `K1c`, should be given in MPa
sqrt(m). The tensile strength of the rock should be provided in
MPa

For example, granite's properties are:

They can be given as follows:

e = 50000.0 pr = 0.2 K1c = 2.5 tensileStrength= 20

If symmetry conditions exist for a given problem, the amount of
input data for the problem can be reduced. `ksym` is a
parameter that specifies the kind of symmetry to be used. Five kinds
of symmetry are defined in FRIC2D:

If symmetry is used, the line (or point) of symmetry must be
included after the `ksym` condition. If no symmetry is used,
`ksym`=1, some provisions should be made to prevent rigid
body motion.

The gravitational forces within the body will influence deformation of frictional fault elements. The frictional slip along faults depends on the overbuden pressure acting across faults. FRIC2D version 2.0 can accomodate a variety of gravitational stress fields including lithostatic or bilateral constraint. (See Section 2.4)

FRIC2D input files include a flag variable, `gravity`, which indicate
whether gravitational stresses should be included, a *kratio* parameter
for specifiying horizontal:vertical gravity stress and a rock density (kg/m^3),
`density`).

For a sedimentary rock under bilateral constraint (with n=0.2) the variables can be specified as follows:

gravity = 1 kratio = 0.25 density = 2600.0

Observation points are specified points within the region of interest where displacement and stress are to be computed. The number of observation lines used to specify the observation points is called nolines in FRIC2D input files.

The boundary for a problem is approximated by nblines straight line segments in FRIC2D input files.

Fractures and faults are not considered to be boundaries.

There are several parameters to set the calculation and output options in FRIC2D:

Since the frictional slip on the fault elements is inleastic the
resulting deformation will depend on the loading path. To minimize
this path dependency it is recommended that the loads on the
boundaries of the problem be applied monotonically. As the number of
loading steps, `nsteps`, increases the loading will more
closely approximate a monotonically increasing load.

The iteration number, `niters`, governs the number of
increments of fracture growth. (See Section
2.7.1) Similarly, pdfiters lists
the iterations that should be printed in the output file. If the are
5 iterations of fracture growth, perhaps the only data of interest
are the first and fifth; 1 and 5 can be listed here (separated by
spaces)and then will be printed to the file.

The input of constants must be terminated by a new line, "end".

FRIC2D is typically used to calculate the displacement vector components or stress tensor components at discrete points in an elastic body. An observation line defines a series of regularly-spaced observation points and instructs FRIC2D to calculate the components at these points. Observation lines are defined in the second part of FRIC2D input files. There is no limit to the number of observation lines that can be defined.

Since the displacements are discontinuous across fractures, and the strains and stresses are singular at fracture tips, you should avoid placing the observation points on a fracture or at a fracture tip. If an observation point is placed within one element length of a boundary element no output will be given for that point. The stresses and displacement within one element length of a boundary elements are unreliable since they capture the local singularity of the element tips rather than the stress field of the deformed body.

The position and orientation of an observation line is determined
by the global coordinates of its two endpoints, (`xbeg,
ybeg`) and (`xend, yend`). Equal-spaced points are
distributed along the observation line and `numpb` is the
number of such points between the two endpoints. Observation linedata
should be input in following form:

xbeg ybeg xend yend numpb

For example, an observation line is determined by two points A and
B and 10 observation points are distributed along it (see Figure
4.1). Then `numpb`= 8. The data for this observation line
can be given as follows:

*xbeg ybeg xend yend numpb-10.0 0.0 10.0 5.0 8

The asterisk(*) at the front of the variable line indicates to FRIC2D that this is a comment line and doesn't contain input data. It is useful to leave these comment lines in the input file so that it is easier for users to read.

In FRIC2D, the boundary of the problem is approximated by
`nblines` straight line segments, joined end to end. Each
straight line segment is divided into `num` boundary
elements (see figure 4.2). The element locations are specified by
giving the global coordinates of the beginning point, (`xbeg,
ybeg`), and end point, (`xend, yend`), of the line, and
the value of `num`. The computer program then numbers the
boundary elements and computes their midpoint coordinates, lengths
and orientations.

In FRIC2D, the boundary values of the problem which are defined by
their normal and shear components,` bvs `and `bvn`,
can be either tractions or displacements. They can be defined by a
variable `kode`:

The units should be MPa for traction boundary conditions, and meter for displacement
boundary conditions. There are two sets of `bvs` and `bvn`.
One set corresponds to the static loading on the boundary. This is loading
that is constant as other loads are monotonically applied (e.g. remote horizontal
compression). The other set is of boundary conditions are those that are applied
monotonically with `nsteps` number of steps. A line of boundary data
should be input in following form:

STATIC MONOTONICnum xbeg ybeg xend yend kode bvs bvn bvs bvn

For example, a boundary line divided into 5 elements is acted on by fluid
pressure of -10.0 MPa that we wish to increment (see Figure 4.3). For this
example, the elements are positive when the line is traversed from Point B
to point A. Since boundary shear and normal traction components are prescribed,
`kode` should be 1. The static boundary conidtions are both zero
since we want to increment the fluid pressure. The monotonic shear traction
component `bvs`=0.0 MPa, and the monotonic normal traction component
is equal to fluid pressure `bvn`=-10.0 MP. The boundary conditions
for this line can given as follows:

* STATIC MONOTONIC*num xbeg ybeg xend yend kode bvs bvn bvs bvn5 2.0 1.0 5.0 2.0 1 0.0 0.0 0.0 -10.0

In FRIC2D input files, the last part contains fracture and fault conditions.
It must come after the boundary line data. For fractures the first line of
each fracture has the word "fracture" followed by the fracture name and two
flags which state which tips are allowed to propagate. The second line describes
the straight line segment. The input of fracture data in the second line is
similar to the one for boundary conditions. Each fracture is divided into
`num` elements.

The element locations are specified by giving the global coordinates of the
beginning point, (`xbeg, ybeg`), and end point, `(xend, yend`),
of the fracture, and the value of `num`. The computer program then
numbers the elements and computes their midpoint coordinates, lengths and
orientations. The boundary conditions on fractures can be defined by either
tractions or displacements. The meaning of the parameter `kode` is
the same as the one used in defining the boundary conditions.

Fracture data should be input in following form (two lines of data for each fracture):

fracture title tip1_prop? tip2_prop?STATIC MONOTONICnum xbeg ybeg xend yend kode bvs bvn bvs bvn

For example, fracture f1 exists for a problem (see Figure 4.4). Fracture, f1, is acted on by fluid pressure of -8.0 MPa and is divided into 10 elements. We wish to increase the fluid pressure incrementally. Fracture f1 may propagate from either end. The boundary values for these two fractures can given as follows:

*fracture title tip1_prop? tip2_prop?STATIC MONOTONIC*num xbeg ybeg xend yend kode bvs bvn bvs bvnfracture f1 yes yes 10 -2.0 3.0 3.0 3.0 1 0.0 0.0 0.0 -8.0

If the fracture is kinked then multiple segments can be prescribed for a
single fracture by listing addition '`num xbeg ybeg xend yend kode bvs
bvn`' lines. For each new fracture there must be a blank line and then
a new `'fracture title tip1_prop? tip2_prop?`' line within the input
file.

In FRIC2D, frictional interfaces (faults) are assigned in the same manner as fractures. The first line of each fault has the word "fault" followed by the fault's name and three flags which state if and where secondary opening-mode fractures are allowed to develop. The second line describes the first straight line segment.

The element locations are specified by giving the global coordinates of the
beginning point, (`xbeg, ybeg`), and end point, `(xend, yend`),
of the fault, and the value of `num`. The computer program then numbers
the elements and computes their midpoint coordinates, lengths and orientations.
The boundary conditions on faults are be defined by the elastic shear and
normal stiffnesses, `stiffS` and `stiffN`, the interface
cohesion, `cohes`, and the friction coefficient of the fault interface,
`friction`.

Fault data should be input in following form (at least two lines of data for each fault):

fault name grow_tails? from_end1? from_end2? num xbeg ybeg xend yend stiffS stiffN cohes friction

For example, fault f1 exists for a problem (see Figure 4.4). The boundary values can given as follows:

*fault name grow_tails? from_end1? from_end2? *num xbeg ybeg xend yend stiffS stiffN cohes frictionfault 1 yes no yes 10 -2.0 3.0 3.0 3.0 1e5 1e5 0.0 0.65

If the fault is kinked then multiple segments can be prescribed for a single
fault by listing additional '`num xbeg ybeg xend yend stiffS stiffN cohes
friction`' lines. For each new fracture there must be a blank line and
then a new `'fault name grow_tails? from_end1? from_end2`' line within
the input file.

To illustrate the preparation of the input files for solving specific problems using FRIC2D, we consider the problem shown in Figure 4.4. There are horizontal two faults each with heterogeneous friction and a kinked joint with zero tractions. These faults and joint are subjected to vertical compression at the boundaries of the problem.

**************************************************************************************

This is an input file for the program FRIC2D. It calculates the stresses and displacements in a body with two faults and one kinked crack.

Note: The boundary conditions in the input file below are not well-formulated, they do not limit lateral or vertical rigid body translation of the block. Consequently, the diaplacemetns reported in the output file (see chapter 5) are large.

************************************************************************* *------------------------------------------------------------------------ * PROBLEM VARIABLES: This section lists the problem variables. The * variables may occur in any order. * Comments are allowed at the end * of each line. *------------------------------------------------------------------------ *Titles title1 = "Splay crack growth along two faults; title2 = "with a nearby kinked fracture; *Rock Properties pr = 0.2 *(possion's ratio) e = 10000 *(young's modulus MPa) k1c = 2.5 *(mode I fracture toughness, MPa*m^1/2) tensileStrength = 10 *(tensile strength of material) *Symmetry ksym = 1 *(symmetry: 1. none; (xsym, ysym) ignored) *( 2. xsym is a line of symmetry) *( 3. ysym is a line of symmetry) *( 4. xsym & ysym are lines of symmetry) *( 5. (xsym, ysym) is a point of antisymmetry) *Gravitational stresses gravity = 0 *(apply gravity stress 0=no, 1=yes) kratio = 0.25 *(horizontal:vertical gravitation stress) density = 2600.0 *(density of rock kg/m^3) *Number of Observation Lines and Boundary Lines nolines = 5 *(number of observation lines) nblines = 4 *(number of boundary lines) *Options Commands nsteps = 2 *(number of loading steps) niters = 1 *(number of iterations) pdfiter = 1 *(print data from iteration *s..) bdata = 0 *(print data along boundaries 0=no 1=yes) fdata = 1 *(print data along (new fractures 0=no 1=yes) faultData = 1 *(print data along faults 0=no 1=yes) odata = 1 *(print observation line data 0=no 1=yes) tolerance = 0.001 end *(terminate list) *------------------------------------------------------------------------ * OBSERVATION LINES: This section lists the data for observation lines. * It must come after the variable list. *------------------------------------------------------------------------ *xbeg ybeg xend yend numpb -8 -15 -8 15 7 -4 -15 -4 15 7 -0 -15 0 15 7 4 -15 4 15 7 8 -15 8 15 7 *----------------------------------------------------------------------- * BOUNDARY LINES: This section lists the data for boundary lines. It * must come after * the observation * lines section. * The variable kode indicates what kind of boundary conditions are given. * kode bvs bvn * 1 stress stress * 2 disp disp * 3 disp stress * 4 stress disp *------------------------------------------------------------------------ * STATIC MONOTONIC *num xbeg ybeg xend yend knode bvs bvn bvs bvn *--- ---- ---- ---- ---- ----- --- --- --- --- 10 -20.0 -20.0 -20.0 20.0 1 0 0 0.0 0.0 10 -20.0 20.0 20.0 20.0 1 0 -5 0.0 0.0 10 20.0 20.0 20.0 -20.0 1 0 0 0.0 0.0 10 20.0 -20.0 -20.0 -20.0 1 0 -5 0.0 0.0 *---------------------- *Fault Conditions *---------------------- *fault name grow_cracks? from_end1? from_end2? *num xbeg ybeg xend yend stiffS stiffN cohes friction *---- ---- ---- ---- ---- ------ ------ ----- -------- fault first no no no 5 -10 -10 0 -10 1e5 1e5 0.0 0.4 5 0 -10 10 -10 1e5 1e5 0.0 0.8 fault second yes no no 5 -10 10 0 10 1e5 1e5 0.0 0.8 5 0 10 10 10 1e5 1e5 0.0 0.4 *---------------------- *Fracture Conditions *---------------------- *fracture name from_end1? from_end2? * STATIC MONOTONIC *num xbeg ybeg xend yend kode bvs bvn bvs bvn *---- ---- ---- ---- ---- ---- ------ ---- ----- -------- fracture crack yes yes 10 -5 -5 0 0 1 0.0 0.0 0.0 0.0 5 0 0 0 5 1 0.0 0.0 0.0 0.0