← Back to team overview

yade-users team mailing list archive

[Question #259218]: Creating a floor for simulation of collapse of a slope

 

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

Hello all,

I have been trying to setup a simple simulation. What I want to do is simulate the collapse of a slope. I have created the geometry, but when I want to create a wall that serves as the floor for the simulation, the spheres fall through the wall. I know that it is simple, but I have searched in the list and the manual and haven't found the error yet. I also need to evaluate the geometry after the collapse. I am using a friction cohesive material. I know that I need to decrease the bonds strengths in order to collapse the slope, but I am not sure how to do it. Do I only need to set to 0 the shearCohesion and update the material? 

Thanks for your answer.

Here is my script:

#!/usr/bin/python
from yade import pack,utils
pred = pack.inAlignedBox((0,0,0),(14,8,6))
#create material
soil1 = CohFrictMat(young=1e6,poisson=0.4,frictionAngle=radians(30),density=2500.0,normalCohesion=1e6, shearCohesion=80e6,label='soil')
#color=(1,0,0) ----red color
#soil1 = FrictMat(young=1e6,poisson=0.4,frictionAngle=radians(30),density=2500.0,label='soil')
O.materials.append(soil1)
O.bodies.append(utils.wall(0,axis=1,sense=1))

spheres=SpherePack()
spheres=pack.randomDensePack(pred,radius=.3,material='soil',spheresInCell=200,color=(1,0,0),returnSpherePack=True)
spheres.toSimulation()
#O.bodies.append(spheres)
#
nx,ny,nz,d = 3.,2.,0.,-30 # for plane equation nx*x+ny*y+nz*z+d=0
for b in O.bodies:
    p = b.state.pos
    if nx*p[0]+ny*p[1]+nz*p[2]+d>0 and p[1]>3: # p is on positive halfspace of plane nx*x+ny*y+nz*z+d=0
        O.bodies.erase(b.id)


#
# simulation loop 
O.engines=[
           ForceResetter(),
           InsertionSortCollider([Bo1_Sphere_Aabb()]),
           InteractionLoop(
                          [Ig2_Sphere_Sphere_ScGeom6D()],        # collision geometry 
                          [Ip2_CohFrictMat_CohFrictMat_CohFrictPhys()], # collision "physics"
                          [Law2_ScGeom6D_CohFrictPhys_CohesionMoment()]   # contact law -- apply forces
                                          ),
                    # apply gravity force to particles
                          # damping: numerical dissipation of energy
                          NewtonIntegrator(damping=0.1,gravity=(0,-9.81,0))
                             ]

# set timestep to a fraction of the critical timestep
# the fraction is very small, so that the simulation is not too fast
# and the motion can be observed
O.dt=.5e-1*utils.PWaveTimeStep()

# save the simulation, so that it can be reloaded later, for experimentation
O.saveTmp()

from yade import qt
qt.View()
#O.run()

                                                                                                                             

-- 
You received this question notification because you are a member of
yade-users, which is an answer contact for Yade.