yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #21936
Re: [Question #688485]: Cycling AddToClump example fails
Question #688485 on Yade changed:
https://answers.launchpad.net/yade/+question/688485
Status: Needs information => Open
Zoheir Khademian gave more information on the question:
Hi Jan,
Thanks for the quick reply.
My Yade version is 20191220-2907
and Ubuntu version is 18.04.3
and Python version is 2.7.17
Here is the MWE, which is only a "O.run()" different from the trunk example.
from __future__ import print_function
from builtins import range
from yade import pack,export,qt
#define material for all bodies:
#define engines:
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom(),Ig2_Box_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()]
),
NewtonIntegrator(damping=0.7,gravity=[0,0,-10])
]
#create a box:
id_box = O.bodies.append(box((0,0,0),(2,2,.1),fixed=True))
#### show how to use appendClumped():
#create 2 clumps:
clump1=O.bodies.appendClumped([\
sphere([0,0,1], radius=0.5),\
sphere([0.2,0,1], radius=0.5)\
])
clump2=O.bodies.appendClumped([\
sphere([3,1,2], radius=0.5),\
sphere([3.2,1,2], radius=0.5)\
])
#get clump ids:
id_clump1 = clump1[0]
id_clump2 = clump2[0]
#definition for getting informations from all clumps:
def getClumpInfo():
for b in O.bodies:
if b.isClump:
print('Clump ',b.id,' has following members:')
keys = list(b.shape.members.keys())
for ii in range(0,len(keys)):
print('- Body ',keys[ii])
print('inertia:',b.state.inertia)
print('mass:',b.state.mass,'\n')
#### show how to use addToClump():
#create a new sphere:
id_new=O.bodies.append(sphere([0,0.2,1], radius=0.5))
print('\nSTATE before adding sphere to clump ------------')
getClumpInfo()
#add a sphere to the clump:
O.bodies.addToClump([id_new],id_clump1)
print('\nSTATE after adding sphere to clump ------------')
getClumpInfo()
#add a clump to a clump:
O.bodies.addToClump([id_clump2],id_clump1)
print('\nSTATE after adding the second clump to clump ------------')
getClumpInfo()
#try to add clump member to a clump (should give error message):
#O.bodies.addToClump(1,id_clump1)
#try to add clump to the same clump (should give error message):
#O.bodies.addToClump(id_clump1,id_clump1)
O.dt=1e-6
print('\nPress Play button ... ')
renderer = qt.Renderer()
qt.View()
O.run()
--
You received this question notification because your team yade-users is
an answer contact for Yade.