Unbreakable bonds in Tension Test
Hello everyone,
I had the following short conversation with Luc Scholts about the Uniaxial Tension test he performed in [1], and he thought this will also be of an interest to the forum.
Original message:
I am currently trying to duplicate your tension test from [1]. My only question is about the ubreakable bonds that you apply for particles in the recovery zone. How did you define these bonds? Did you define them as clumped, or did you just enter a bigger number for the tension (and Elastic modulus?) of the particles there?
Thanks in advance,
Yaniv
[1] [1]L. Scholtès and F.-V. Donzé, “A DEM model for soft and hard rocks: Role of grain interlocking on strength,” Journal of the Mechanics and Physics of Solids, vol. 61, no. 2, pp. 352–369, Feb. 2013.
Luc's response:
I just define higher strength on the bonds located close to the boundaries.
Please find attached a script where the procedure is implemented (lines 73 to 85).
Cheers
Luc
His script:
# -*- coding: utf-8 -*-
# -*- encoding=utf-8 -*-
from yade import ymport, plot
#### Simulation of a uniaxial test (compression or tension depending on the sign of the loading rate "rate" defined below)
# everything is documented at https:/
################# SIMULATIONS DEFINED HERE
#### Packing (previously built)
PACKING=
#### Simulation Control
rate=0.003 # deformation rate (0.003 for tension, -0.03 for compression)
iterMax=10000 # maximum number of iterations
saveVTK=2000 # saving output files for paraview
OUT='tensionTes
#### Material microproperties for JCFPM (see https:/
intR=1.2 # allows near neighbour interaction
DENS=2500 # could be adapted to match material density: dens_DEM=
def sphereMat(): return JCFpmMat(
#### Loading of the packing into the simulation (O: Omega: the simulation)
O.bodies.
#### Set up boundary conditions (see https:/
bb=utils.
negIds,
################# ENGINES DEFINED HERE
O.engines=[
ForceResetter(),
InteractionLoop(
[Ig2_
[Ip2_
[Law2_
),
UniaxialStrain
GlobalStiffnes
NewtonIntegrat
PyRunner(
]
################# RECORDER DEFINED HERE
def recorder():
yade.
plot.
# if you want to plot during simulation
plot.plots=
plot.plot()
################# PREPROCESSING
#### manage interaction detection factor during the first timestep and then set default interaction range ((cf. A DEM model for soft and hard rock, Scholtes & Donze, JMPS 2013))
O.step();
### initializes the interaction detection factor
SSgeom.
Saabb.aabbEnlar
# reinforce bonds at boundaries for tensile tests
dim=utils.
if rate>0:
layerSize=0.15
for o in O.bodies:
if isinstance(
if ( o.state.
o.shape.
for i in O.interactions:
if isinstance(
if O.bodies[
i.phys.
i.phys.
################# SIMULATION REALLY STARTS HERE
strainer.dead=0
O.run(iterMax)
Question information
- Language:
- English Edit question
- Status:
- Solved
- For:
- Yade Edit question
- Assignee:
- No assignee Edit question
- Solved by:
- Yaniv Fogel
- Solved:
- Last query:
- Last reply: