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

I have constructed a rectangular box of particles with walls surrounding it and 
opened at the top. I applied some downward force on a facetCylinder with 
wallMask=2(i.e a circular plate) kept on the top of the box. When the 
facetCylinder reaches the bottom of the box, all the particles in the box move 
up and come out of the box. Here's my code:

from yade import pack
from yade import ymport

def createSandBox(length, height, width, radSpheres, variance, color):
        boxpred = pack.inAlignedBox((0,0.5,-0.5),(length,height,width)) 
        packing = pack.randomDensePack(boxpred, spheresInCell = 250, 
radius=radSpheres, rRelFuzz=variance, color=color, returnSpherePack = False)
        return O.bodies.append(packing)

idBox = createSandBox(2,1.5,0.5,1e-1,0,(1,0.917,0.659))
mWalls = 
O.materials.append(FrictMat(young=young,poisson=0.5,frictionAngle=0,density=0))

idBoxWalls = 
O.bodies.append(geom.facetBox(center,extents,orientation=Quaternion((0,0,0),0),wallMask=wMask,
 color=co, material=mWalls, wire=True))
idCylWalls = 
O.bodies.append(geom.facetCylinder((1,1,-0.25),0.3,0.5,wallMask=2,material=mWalls,segmentsNumber=20,color=co))

o.engines = [
  ForceResetter(),
  InsertionSortCollider([Bo1_Sphere_Aabb(), 
Bo1_Facet_Aabb()],verletDist=1.0,label='collider'),
  InteractionLoop(
    [Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom()],
    [Ip2_FrictMat_FrictMat_FrictPhys()],
    [Law2_ScGeom_FrictPhys_CundallStrack()],
  ),
  NewtonIntegrator(damping=0,gravity=[0,0,9.81],label='newtonInt'),
  TranslationEngine(translationAxis=[0,0,1],velocity=3.0,ids=idCylWalls, 
label='translat'),
  CombinedKinematicEngine(ids=idCylWalls,label='combEngine',dead=True) + 
    
ServoPIDController(axis=[0,0,1],maxVelocity=5.0,iterPeriod=1000,ids=idCylWalls,target=1.0e7,kP=1.0,kI=1.0,kD=1.0)
 + 
    RotationEngine(rotationAxis=(0,0,1), angularVelocity=10.0, 
rotateAroundZero=True, zeroPoint=(0,0,0)),
  #PyRunner(command='addPlotData()',iterPeriod=100, label='graph'),
  PyRunner(command='switchTranslationEngine()',iterPeriod=45000, nDo = 2, 
label='switchEng'),
]
O.step()
qt.View()

def switchTranslationEngine():
  print "\nSwitch from TranslationEngine engine to ServoPIDController"
  translat.dead = True
  combEngine.dead = False

I want the particles to only redistribute. And the ones at the top to move up 
by some distance. 


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

_______________________________________________
Mailing list: https://launchpad.net/~yade-users
Post to     : yade-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp

Reply via email to