New question #703351 on Yade:
https://answers.launchpad.net/yade/+question/703351
Hi i try to simulate the dynamic compaction by dropping the weight to the
footing. and the current code are:
from yade import pack,plot
'''pred=pack.inCylinder((0,0,0),(0,0,0.25),0.10)
sp=pack.randomDensePack(pred,radius=0.01,spheresInCell=300)'''
## 1.create boundaries and the packs.
O.bodies.append(geom.facetBox((4, 4, 4), (4, 4, 4), wallMask=31))
sp = pack.SpherePack()
pred=pack.inAlignedBox((0,0,0),(8,8,8))
sp=pack.randomDensePack(pred,spheresInCell=1000,radius=.3,rRelFuzz=.4,returnSpherePack=True)
sp.toSimulation()
idSteel=O.materials.append(FrictMat(young=210e9,poisson=.25,frictionAngle=.8,label="steel"))
Steel=O.materials[idSteel]
calm()
O.engines=[ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(), Bo1_Facet_Aabb()]),
InteractionLoop(
# handle sphere+sphere and facet+sphere collisions
[Ig2_Sphere_Sphere_ScGeom(), Ig2_Facet_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()])
,NewtonIntegrator(gravity=(0, 0, -9.81), damping=0.4),
PyRunner(iterPeriod=10000,command="addPlotData()"),
VTKRecorder(iterPeriod=10000,recorders=['spheres','facets','colors'],fileName='p2-'),
PyRunner(command='checkUnbalanced()', realPeriod=2, label='checker'),
PyRunner(command='compaction()', realPeriod=3, label='compact'),
]
def addPlotData():
'''Dz=hammer.state.displ[2]
Fz=O.forces.f(hammerID)[2]
plot.addData(i=O.iter,Fz=Fz,Dz=Dz)'''
## 2.lets the pack settle and drop the footing
def checkUnbalanced():
# at the very start, unbalanced force can be low as there is only few
contacts, but it does not mean the packing is stable
if O.iter < 5000:
return
# the rest will be run only if unbalanced is < .1 (stabilized packing)
if unbalancedForce() > .1:
return
footing=O.bodies.appendClumped([ sphere([4,4,9], material=Steel,
radius=0.25), sphere([3.5,4,9], material=Steel,
radius=0.25),sphere([4.5,4,9], material=Steel, radius=0.25) ,
sphere([3.66,4.38,9], material=Steel, radius=0.25),sphere([4,4.5,9],
material=Steel, radius=0.25),sphere([4.35,4.35,9], material=Steel,
radius=0.25), sphere([4.35,3.64,9], material=Steel,
radius=0.25),sphere([4,3.5,9], material=Steel, radius=0.25) ,
sphere([3.64,3.64,9], material=Steel, radius=0.25) ])
checker.command = 'compaction()'
## 3.dropping the wegiht from a height.
def compaction():
weight=O.bodies.appendClumped([ sphere([4,4,11], material=Steel,
radius=0.25), sphere([3.5,4,11], material=Steel,
radius=0.25),sphere([4.5,4,11], material=Steel, radius=0.25) ,
sphere([3.66,4.38,11], material=Steel, radius=0.25),sphere([4,4.5,11],
material=Steel, radius=0.25),sphere([4.35,4.35,11], material=Steel,
radius=0.25), sphere([4.35,3.64,11], material=Steel,
radius=0.25),sphere([4,3.5,11], material=Steel, radius=0.25) ,
sphere([3.64,3.64,11], material=Steel, radius=0.25) ])
##checker.command = 'compaction()'
O.dt=0.5*PWaveTimeStep()
O.run()
O.saveTmp()
I have some questions.
1. At step#1 for create packing is it possible to assign the material
properties to the particle in side the pack and how can i apply the particle
size distribution.
2. At step #2 after the gravity deposit is finished i try to add
'footing(clump)' to the system and after that i try to drop the 'weight(clump)
at the specific height. The 3D animation shows after the weight is drops the
footing and weight is bounce off and dissapeard. Could you suggest better
method to do this simulation or did i miss something in the engine. I try to
drop the weight at every 2 second while the footing still remain at the top of
the pack.
Im am very new with YADE dem and try to follow the explamples in the website
and try to read the manual.
Thank you very much
--
You received this question notification because your team yade-users is
an answer contact for Yade.
_______________________________________________
Mailing list: https://launchpad.net/~yade-users
Post to : [email protected]
Unsubscribe : https://launchpad.net/~yade-users
More help : https://help.launchpad.net/ListHelp