O.materials.append( FrictMat(young=30e9, density=1000, poisson=.2, frictionAngle=.5)) O.bodies.append([ utils.wall(1, axis=2, sense=-1), utils.wall(-5, axis=0, sense=1), utils.wall(1, axis=1), utils.wall((1, 0, 0), 0), utils.sphere([0, 0, 0], .5), utils.sphere([-4, -4, -3], .5) ]) Gl1_Wall(div=10) from yade import qt qt.Controller() qt.View() O.engines = [ ForceResetter(), InsertionSortCollider( [Bo1_Sphere_Aabb(), Bo1_Facet_Aabb(), Bo1_Wall_Aabb()]), InteractionLoop( [ Ig2_Sphere_Sphere_ScGeom(), Ig2_Facet_Sphere_ScGeom(), Ig2_Wall_Sphere_ScGeom() ], [Ip2_FrictMat_FrictMat_FrictPhys()],
O.bodies.append(sphere([0,0,10],.5)) #O.bodies.append(sphere([0,0,0],.5,fixed=True)) O.engines=[ ForceResetter(), InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()],label='collider'), InteractionLoop( [Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom()], [Ip2_FrictMat_FrictMat_FrictPhys()], [Law2_ScGeom_FrictPhys_CundallStrack()], ), NewtonIntegrator(damping=.1,gravity=[0,0,-1e4]) ] collider.verletDist=.5 O.dt=8e-2*PWaveTimeStep() O.saveTmp() from yade import timing O.timingEnabled=True from yade import qt r=qt.Renderer() #r['Body_bounding_volume']=True v=qt.View(); qt.Controller() v.ortho=True; #v.viewDir=O.bodies[0].phys.pos; v.lookAt=O.bodies[0].phys.pos; v.upVector=(0,0,1); O.run(2,True)