yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #09764
[Question #250622]: Collision detection problems in a simple example
New question #250622 on Yade:
https://answers.launchpad.net/yade/+question/250622
Hello,
In the script below, I create a spiral, a beam(lets just call it a beam, because i'm not yet sure what exactly it is XD), and a sphere. You can copy the script and run it in yade.
The weird part is: the collision detection between the sphere and chained cylinders has no problem, but the collision detection between the spiral and the beam(both chained cylinder) seems to have some problem. you can see that in the 3D view, there's no interactions between the spiral and the beam even though there should be.
I can't work this out. someone tells me what goes wrong plz. Thx a lot.
Here comes my script. (copy this and run it in yade, my version of yade is 1.07.0)
#test.py
young=5.0e5
poisson=4
density=2.60e3
frictionAngle=radians(30)
O.materials.append(CohFrictMat(young=young,poisson=poisson,density=density,frictionAngle=frictionAngle,normalCohesion=1e13,shearCohesion=1e13,momentRotationLaw=True,label='mat'))
O.dt=1e-5
O.engines=[
ForceResetter(),
InsertionSortCollider([
Bo1_ChainedCylinder_Aabb(),
Bo1_Sphere_Aabb(),
]),
InteractionLoop(
[Ig2_ChainedCylinder_ChainedCylinder_ScGeom6D(),Ig2_Sphere_ChainedCylinder_CylScGeom6D()],
[Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True)],
[Law2_ScGeom6D_CohFrictPhys_CohesionMoment(label='law'),Law2_CylScGeom6D_CohFrictPhys_CohesionMoment()]
),
NewtonIntegrator(damping=0.15,gravity=[0,-9.81,0]),
]
#Generate a spiral
Ne=200
for i in range(0, Ne):
omega=60.0/float(Ne); hy=0.10; hz=0.15;
px=float(i)*(omega/60.0); py=sin(float(i)*omega)*hy; pz=cos(float(i)*omega)*hz;
px2=float(i+1.)*(omega/60.0); py2=sin(float(i+1.)*omega)*hy; pz2=cos(float(i+1.)*omega)*hz;
utils.chainedCylinder(begin=Vector3(pz,py,px), radius=0.005,end=Vector3(pz2,py2,px2),color=Vector3(0.6,0.5,0.5))
#Generate a beam
for i in range(0,40):
utils.chainedCylinder(begin=Vector3(0,-0.12,float(i/40.0)), radius=0.005,end=Vector3(0,-0.12,float(i+1.0)/40.0),color=Vector3(0.6,0.5,0.5))
#Create a sphere
O.bodies.append(utils.sphere((0,0,0.5),radius=0.025))
#Constraints
O.bodies[Ne-1].state.blockedDOFs='xyzXYZ'
O.bodies[1].state.blockedDOFs='xyzXYZ'
O.bodies[200].state.blockedDOFs='xyzXYZ'
O.bodies[239].state.blockedDOFs='xyzXYZ'
yade.qt.View();
O.saveTmp()
--
You received this question notification because you are a member of
yade-users, which is an answer contact for Yade.