Water flowing in rock dam: fracture flow#

This tutorial will continue the hydro seepage model in tutorial 6 with discrete elements. The hydro flowing is considered only on the cohesive interfaces.

Geometry of the uniaxial compression test

Figure 1: Geometry of the uniaxial compression strength test#

1 Code#

Based on the code in tutorial 6, fracture flow parameters will be add to model the hydro fracture.

  1. To include the discrete elements, joint elements are added to the model after create the mesh.

**     modify it under the terms of the GNU Lesser General Public                      **
  1. Assign the material properties to CZM.

Parameter

Value

Contact Material Properties

model

MC

friction

0.5

of.mat.contact 'default' MC fric 0.5
  1. Set fracture flow parameters

Parameter

Value

Hydro fluid material

density (\(kg/m^3\))

1000.0

K (Pa)

20e9

viscosity (Pa)

1e-3

Hydro Fracture material

a0 (m)

1e-4

amin (m)

1e-4

amax (m)

3e-4

power

3.0

b

1.0

of.mat.hydro.fluid density 1000.0 K 20.0e9 viscosity 1e-3 
of.mat.hydro.fracture 'default' a0 1e-4 amin 1e-4 amax 3e-4 power 3.0 b 1.0

2 Run the Program#

  1. Hydro module, Fracture flow module and CZM module are on to model the hydro fracture flow.

Applied Modules

Figure 2: Applied Modules#

  1. Contact material, hydro fracture material and hydro fluid material are include in the modeling.

Hydro Fracture Materials

Figure 3: Hydro Fracture Materials#

  1. Hydro boundary conditions.

Hydro Boundary Conditions

Figure 4: Hydro Boundary Conditions#

3 Results#

Fluid pressure of fracture flow.

Hydro Fracture Flow

Figure 5: Hydro Fracture Flow#

4 Full Script#

# initialization, this command is to clear the memory in your last run, it is not 
# mandatory but strongly recommend.
of.new

# Set the path folder of your output results, //result// in the same path of your input 
# file will be created by default
of.set.result "result"

# Set the number of cores you want to use, the parallization will be automatically turned 
# on when you use the following command, otherwise the serilization will be used by 
# default
of.set.omp 15

##################################### create mesh #######################################
of.geometry.square 'rock' xmin 0 xmax 8.0 ymin 0.0 ymax 4.0

of.geometry.mesh.size 'default' 0.1
of.geometry.mesh delaunay

of.mesh.insert 'default'

################################# assign material parameters ############################
of.mat.element 'default' elastic density 2700 E 5e8 v 0.2
of.mat.cohesive 'default' EM tension 5e6 cohesion 10e6 fric 0.5 GI 5 GII 100
of.mat.contact 'default' MC fric 0.5

#set fracture flow parameter
of.mat.hydro.fluid density 1000.0 K 20.0e9 viscosity 1e-3 
of.mat.hydro.fracture 'default' a0 1e-4 amin 1e-4 amax 3e-4 power 3.0 b 1.0

##################################### create groups #####################################
# OpenFDEM can manually group the nodes, elements, cohesive elements and edges by using 
# the region of box, circle and plane.
of.group.nodal 'left' range box.in  xmin -100.0 xmax 0.1 ymin -100 ymax 100
of.group.nodal 'bottom' range box.in xmin -100 xmax 100 ymin -100 ymax 0.001
of.group.nodal 'up' range box.in xmin -100 xmax 100 ymin 3.9999 ymax 100
of.group.nodal 'right' range box.in xmin 7.999 xmax 100.0 ymin -100 ymax 100

################################### assign boundaries ###################################
# boundaries can be assigned after you define the groups
of.boundary.nodal.velocity  'bottom' x 0 y 0
of.boundary.hydro.waterlevel  'left' p0 0.0 head 4.0
of.boundary.hydro.waterlevel  'right' p0 0.0 head 1.0

####################################### set output ######################################
# Set the interval of writing ParaView results.
of.history.pv.interval 6000
of.history.pv.field default
of.history.pv.fracture default

##################################### execute model #####################################
# gravity for water level
of.set.gravity x 0 y -10
# only consider the hydro module
of.hydro.mechanical off
# set the timestep for hydro module
of.hydro.timestep 1e-5
# to excuate the model
of.step 60000
# finalize the model and clear the memory
of.finalize