← Back to team overview

yade-users team mailing list archive

[Question #643798]: gridpfacet.cylinder interacting with walls, spheres, facetbox etc.

 

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

I would like to have cylinders moving on a conveyor belt (horizontal wall with given velocity) and colliding with lateral walls (facetboxes). I am trying to compare the performance of two kinds of cylnders: clumps of spheres and gridpfacets. I prepared this basic script. The clumps do all I wish (they are transported by the conveyor horizontal wall, interact with the lateral facetboxes and among themselves). The gridpfacet cylinder is not transported (it seems it does not interact with the horizontal wall neither with the newtonintegrator). If I impose a velocity to it - uncommenting the commented line - (perhaps not in a very smart way), I see a part of the cylinder moving but it does not interact with the walls or with the spheres.

--------------------------------------------------------------------------------------------------------

from yade import pack,ymport,export,geom,bodiesHandling
from yade.gridpfacet import *

rad,gap=.05,.01
r=0.5		
phi=30. 
E=1e6   

O.materials.append(FrictMat(young=10e9,poisson=.25,frictionAngle=0.5,density=1e3))
O.materials.append( CohFrictMat( young=E,poisson=0.3,density=1000,frictionAngle=radians(phi),normalCohesion=1e10,shearCohesion=1e10,momentRotationLaw=True,label='cMat' ) ) 
O.materials.append( FrictMat( young=E,poisson=0.3,density=1000,frictionAngle=radians(phi),label='fMat' ) )  


kw={'material':0}
kwBoxes={'color':[1,0,0],'wire':False,'dynamic':False,'material':0}
kwMeshes={'color':[1,1,0],'wire':True,'dynamic':False,'material':0}


nodesIds=[]
cylIds=[]
color=[1,0,0]
cylgrid = cylinder((2,0,0.),(2,0,0.5),radius=r,nodesIds=nodesIds,cylIds=cylIds,fixed=False,color=color,intMaterial='cMat',extMaterial='fMat',mask=3)
# uncomment this to make the pfacet-cylinder move
# O.bodies[cylIds[0]].state.vel=Vector3(0,1,0)


cylTuple =  O.bodies.appendClumped(pack.regularOrtho(pack.inCylinder((0,1,0),(0,1,0.5),0.5),radius=rad,gap=gap,color=(0,0,1),**kw))
O.bodies[cylTuple[0]].mask=3

cylTuple2 =  O.bodies.appendClumped(pack.regularOrtho(pack.inCylinder((0,-1,0),(0,-1,0.5),0.5),radius=rad,gap=gap,color=(0,0,1),**kw))
O.bodies[cylTuple2[0]].mask=3

beltId = O.bodies.append(wall((0,0,0),axis=2))
O.bodies[beltId].state.vel=Vector3(-1,0,0)

wall1Id = O.bodies.append(geom.facetBox((0,-3,0),(1,5,5),orientation=Quaternion((0, 0, 1), (pi/2.4)),wallMask=2,**kwBoxes))
wall2Id = O.bodies.append(geom.facetBox((0,+3,0),(1,5,5),orientation=Quaternion((0, 0, 1), (-pi/2.4)),wallMask=2,**kwBoxes))


O.engines=[
	ForceResetter(),
	InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb(),Bo1_Wall_Aabb(),  
		               Bo1_GridConnection_Aabb(),                       
		               Bo1_PFacet_Aabb(),                               
        ],label='collider'),
	InteractionLoop(
		[Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom(),Ig2_Wall_Sphere_ScGeom(), 
                 Ig2_Wall_PFacet_ScGeom(),  
 		 Ig2_GridNode_GridNode_GridNodeGeom6D(),
		 Ig2_GridConnection_GridConnection_GridCoGridCoGeom(),	
		 Ig2_Sphere_PFacet_ScGridCoGeom(),	
		 Ig2_GridConnection_PFacet_ScGeom(),	
                 Ig2_Sphere_GridConnection_ScGridCoGeom(),
                ],
		[Ip2_FrictMat_FrictMat_FrictPhys(),    
                ],  
		[Law2_ScGeom_FrictPhys_CundallStrack(),     
		 Law2_ScGeom6D_CohFrictPhys_CohesionMoment(),
		 Law2_ScGridCoGeom_FrictPhys_CundallStrack(),	
		 Law2_GridCoGridCoGeom_FrictPhys_CundallStrack()
                ],
	),
	NewtonIntegrator(damping=.1,exactAsphericalRot=True,gravity=(1e-2,1e-2,-1000),mask=2),
        GlobalStiffnessTimeStepper(timestepSafetyCoefficient=0.1,label='ts'), 
]
O.dt=PWaveTimeStep()
O.run(1,True)
try:
	from yade import qt
	qt.Controller()
	qt.View()
except ImportError: pass
O.saveTmp()
O.timingEnabled=True

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