yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #10693
[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.