← Back to team overview

yade-users team mailing list archive

[Question #652160]: Why am I not able to see any translatory motion?

 

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

I have constructed a geometry in which a cylinder is inserted in an box(surrounded by walls leaving the top open) and I am applying downward force on the cylinder. But I am not able to see any motion or displacement of the particles.

Here's my code:
o = Omega()

def createStoneColumn(centerBottom, centerTop, radCyl, radSpheres, variance, color):
	cylpred = pack.inCylinder(centerBottom, centerTop, radius=radCyl)
	packing = pack.randomDensePack(cylpred, spheresInCell = 250, radius=radSpheres, rRelFuzz=variance, color=color, returnSpherePack = False)
	return O.bodies.append(packing)

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

idBox = createSandBox(2,1,1,0.75e-1,0,(1,0.917,0.659))
idStone = createStoneColumn((1,0.5,0.5),(1,1.5,0.5),0.3,0.5e-1,0,(1,0.646,0.361))

center = (1,0.5,0.5)
extents = (1,0.5,0.5)
wMask = 55
co = (0,0,1)
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))

print len(O.bodies)

o.engines = [
  ForceResetter(),
  InsertionSortCollider([Bo1_Sphere_Aabb()],verletDist=1.0,label='collider'),
  InteractionLoop(
    [Ig2_Sphere_Sphere_ScGeom()],
    [Ip2_FrictMat_FrictMat_FrictPhys()],
    [Law2_ScGeom_FrictPhys_CundallStrack()],
  ),
  NewtonIntegrator(damping=0,gravity=[0,0,-9.81],label='newtonInt'),
  TranslationEngine(translationAxis=[0,-1,0],velocity=-2.0,ids=idStone,dead=False,label='translat'),
  
  CombinedKinematicEngine(ids=idStone,label='combEngine',dead=True) + 
    ServoPIDController(axis=[0,-1,0],maxVelocity=2.0,iterPeriod=1000,ids=idStone,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='switchTranslationEngine()',iterPeriod=45000, nDo = 2, label='switchEng'),
]

O.step()

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

Please help!


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