← Back to team overview

yade-users team mailing list archive

[Question #696009]: Polyhedra gravity deposit simulation explodes with no damping

 

New question #696009 on Yade:
https://answers.launchpad.net/yade/+question/696009

I have been trying to create a simple polyhedra gravity deposit simulation without success.  Everything looks reasonable until the particles contact the wall.  After the particles hit the wall, a few of them rebound at an extremely high speed and exit the simulation.  I have tried smaller and smaller time steps and the result is always the same.  The only way I've found to eliminate this problem is to introduce a very large amount of damping in the NewtonIntegrator.  My understanding is that damping should only be used in steady state simulations, and ultimately I want transient simulations so I think damping must be 0.  Here is my code.  How can I get the particles to stabilize?

from yade import pack,plot,ymport,export,polyhedra_utils

#define materials
matPoly = PolyhedraMat(
 young=1.0e11,
 frictionAngle=radians(25),
 density=2160,
 poisson=0.3,
)
id_matPoly = O.materials.append(matPoly)

# Add box to hold our particles
O.bodies.append(geom.facetBox((.5,.5,.5),(.6,.6,.6),wallMask=31))

# Create cloud of polys
radMean=.05
sp=pack.SpherePack()
sp.makeCloud((0,0,0),(1,1,.1),rMean=radMean,rRelFuzz=.5, seed=2)
# Replace spheres by polys
for pos,radius in sp:
    t = polyhedra_utils.polyhedra(matPoly,(radius,0.4*radius,0.7*radius))
    t.state.pos = pos
    O.bodies.append(t)


#export the initial packing
vtkExporter = export.VTKExporter('Mixed.vtk')
vtkExporter.exportPolyhedra(ids='all', what=dict(speed='b.state.vel.norm()'))
vtkExporter.exportFacets()

O.engines=[
    ForceResetter(),
    InsertionSortCollider([
        Bo1_Polyhedra_Aabb(),
        Bo1_Sphere_Aabb(),
        Bo1_Facet_Aabb()
    ],verletDist=.05*radMean),
    InteractionLoop(
        [
            Ig2_Polyhedra_Polyhedra_PolyhedraGeom(),
            Ig2_Facet_Polyhedra_PolyhedraGeom(),
        ],
        [
            Ip2_PolyhedraMat_PolyhedraMat_PolyhedraPhys(),  # collision "physics"
        ],
        [
            Law2_PolyhedraGeom_PolyhedraPhys_Volumetric(),  # contact law -- apply forces
        ],
    ),
    NewtonIntegrator(damping=0.0,gravity=[0,0,-9.81]),

    PyRunner(command='ExportResults()', label='exportres', iterPeriod=200000),
]


def ExportResults():
    vtkExporter.exportPolyhedra(ids='all', what=dict(speed='b.state.vel.norm()'))
    
O.dt=0.0000001

O.stopAtIter=10000000
O.run()

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.