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.
 
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.
- 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                      **
- Assign the material properties to CZM. 
| Parameter | Value | 
|---|---|
| Contact Material Properties | |
| model | MC | 
| friction | 0.5 | 
of.mat.contact 'default' MC fric 0.5
- 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#
- Hydro module, Fracture flow module and CZM module are on to model the hydro fracture flow. 
Figure 2: Applied Modules#
- Contact material, hydro fracture material and hydro fluid material are include in the modeling. 
Figure 3: Hydro Fracture Materials#
- Hydro boundary conditions. 
Figure 4: Hydro Boundary Conditions#
3 Results#
Fluid pressure of fracture flow.
 
Figure 5: Hydro Fracture Flow#
4 Full Script#
- Hydro_Fracture_Flow.of (click to download from GitHub) 
# 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