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.
_______________________________________________
Mailing list: https://launchpad.net/~yade-users
Post to : [email protected]
Unsubscribe : https://launchpad.net/~yade-users
More help : https://help.launchpad.net/ListHelp