← Back to team overview

yade-users team mailing list archive

[Question #703351]: Simulation of Dynamic compaction

 

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.