Introduction of defects
Hi everybody,
I am new to Yade, and I am trying to model the fragmentation of a very simple sample.
Up to now I have managed to create the sample, and make it fall on a plate. I would like to complexify this model and introduce a serie of defects in the bonds of the material.
Initially I thought working directly on the interaction would be a good idea, but then searching trough the launchpad, I found out that apparently it was possible to add forces directly in the force container.
However Yade seems to say it is not possible to iterate on the force container. Does anybody have an idea of how to deal with that ?
Here is my script :
from yade import pack
# INPUTS
# Geometry
LxBox = 0.1
LyBox = 0.1
LzBox = 0.1
LzImp = 0.3
RadSphere = 0.02
WallPos = -LzBox
WallAxis = (0.,0.,1.)
# Material
EyCohFrictMat = 1e7
poissonCohFrictMat = 0.25
densityCohFrictMat = 2600.
FrictAngSphere = 30.*pi/180.
NCohesionCohFri
SCohesionCohFri
EyFrictMat = 1e7
poissonFrictMat = 0.25
densityFrictMat = 2600.
FrictAngWall = 30.*pi/180.
# Calculation
damp=0.5
gz=-9.81
#######
# SIMULATION BEGINNING - SIMULATION BEGINNING - SIMULATION BEGINNING
## CREATE MATERIAL - CREATE MATERIAL - CREATE MATERIAL
O.materials.append(
CohFrictMat(
young = EyCohFrictMat,
poisson= poissonCohFrictMat,
density= densityCohFrictMat ,
frictionAngle = FrictAngSphere,
normalCohesion = NCohesionCohFri
shearCohesion = SCohesionCohFri
momentRotatio
etaRoll=0.1,
isCohesive =True,
label=
O.materials.append(
FrictMat(
young = EyFrictMat,
poisson= poissonFrictMat,
frictionAngle
density= densityFrictMat ,
label=
## CREATE SPHERES - CREATE SPHERES - CREATE SPHERES -
pred=pack.
block=pack.
O.bodies.
### Create BOX - Create BOX - Create BOX (Changer )
O.bodies.
#O.bodies.append( à tester sur un autre script )
#utils.wall(
#position=WallPos,
#axis=WallAxis,
#sense=0,
#color=(10, 25, 51),
#material=
#))
## CALCULATION - CALCULATION - CALCULATION
newton=
newton.
def introduceDefects () :
print O.iter
for f in O.forces :
f.addF((-1,0,0))
O.engines=[
#introduceDefe
ForceResetter(),
InsertionSortC
InteractionLoop(
#Il faut rentrer toutes les lois pour tout les types de matériau
[Ig2_
[Ip2_
Ip2_FrictMat_
[Law2_
Law2_
),
#GlobalStiffne
NewtonIntegrat
]
O.dt = 1e-4
## DISPLAY CONTROLLERS - DISPLAY CONTROLLERS - DISPLAY CONTROLLERS
yade.qt.
## CHECK - CHECK - CHECK
O.step()
print 'maxOverlap', max(i.geom.
print 'maxNormalForce', max(i.phys.
print 'maxShearForce', max(i.phys.
O.run(1000,True)
print 'maxOverlap', max(i.geom.
print 'maxNormalForce', max(i.phys.
print 'maxShearForce', max(i.phys.
from yade import export
export.
Cheers
Question information
- Language:
- English Edit question
- Status:
- Solved
- For:
- Yade Edit question
- Assignee:
- No assignee Edit question
- Solved by:
- Jan Stránský
- Solved:
- Last query:
- Last reply: