Tutorial 3: Pressure Method¶
This example will review how to setup an insitu excavation example, defining the mesh in the .of
file.
Runtime: ~2 hours on i9 8-core Windows 10 Machine
Full Tutorial Script¶
To run the model, save your text file with the .of extension. Rebuild the openfdem solution and drag your .of file into the OpenFDEM.exe. It will automatically run and save the outputs.
''' ** ** ** ** ** ____ ______ _____ ______ __ __ ** ** / __ \ | ____| __ \| ____| \/ | ** ** | | | |_ __ ___ _ __ | |__ | | | | |__ | \ / | ** ** | | | | '_ \ / _ \ '_ \| __| | | | | __| | |\/| | ** ** | |__| | |_) | __/ | | | | | |__| | |____| | | | ** ** \____/| .__/ \___|_| |_|_| |_____/|______|_| |_| ** ** | | OpenFree Finite Element ** ** |_| and Discrete Element Method Solver ** ** ** ** OpenFDEM : Object Oriented Open Free Finite Discrete Element Code ** ** ** ** Copyright (C) 2017 - 2021 Xiaofeng Li ** ** Email: xfli@whrsm.ac.cn ** ** ** general comments of this input file! you can use \''' to comment several lines and use # to comment each line ''' ''' It is an example to apply the in-situ stress using pressure method, the main steps are: 1- apply normal pressure on the boundary and run 100,000 steps to balance the model, the equlibrium steps should be adjusted for different model size and mesh size, the usr can also use solve ratio to iterate the equlibrium. 2- excavted the hole after the equlibrium, the pressure should be still kept. model dimesion is 1.0 x 1.0 m and the unit system is m-kg-s ''' # clear old memories, be optional of.new # Create a retangular block, group tag is rock, the range is xmin =0, xmax =1, ymin=0,ymax= 1 of.geometry.square 'rock' 0 1 0 1 # Create a hole in the block, cut is to fragment the block and seprate the rock block to hole block and # new rock block (out of the hole block) of.geometry.cut.circle 'hole' 'rock' 0.5 0.5 0.1 70 # assign global mesh size, the default keyword is for global entities of.geometry.mesh.size 'all' 0.02 # starts to mesh, delaunay is optional, it is the default value of.geometry.mesh delaunay #insert cohesive elements, globally of.mesh.insert 'all' # assign material parameters to solid elements based on the element groups of.mat.element 'all' elastic den 2000 E 30e9 v 0.3 damp 0.9 of.mat.cohesive 'all' EM ten 10e6 coh 20e6 fric 0.3 GI 20 GII 40 of.mat.contact 'all' MC fric 0.3 #create excavation element group using cricle tool, based on the centric point and radius of.group.element.circle 'excavation' 0.5 0.5 0.1 #create bottom_edge nodal group using plane tool, based on the start point coord and end point coord of.group.nodal.plane 'bottom_edge' 0.0 0.0 1.0 0.0 #create up_edge nodal group using plane tool, based on the start point coord and end point coord of.group.nodal.plane 'up_edge' 0.0 1.0 1.0 1.0 #create left_edge nodal group using plane tool, based on the start point coord and end point coord of.group.nodal.plane 'left_edge' 0.0 0.0 0.0 1.0 #create right_edge nodal group using plane tool, based on the start point coord and end point coord of.group.nodal.plane 'right_edge' 1.0 0.0 1.0 1.0 # set interval to write paraview field results of.history.pv.interval 500 of.history.pv.field all of.history.pv.fracture all of.history.pv.cohesive all # assign pressure boundary on edges, comprssion is postive of.boundary.pressure.normal 'bottom_edge' 15e6 of.boundary.pressure.normal 'up_edge' 15e6 of.boundary.pressure.normal 'left_edge' 5e6 of.boundary.pressure.normal 'right_edge' 5e6 # total run steps to equlibrium the insitu stress of.step 100000 # excavted the hole of.boundary.excavation 'excavation' # run steps to compute the tunnel deformation of.step 500000 # terminate the run and step out solver of.stop