yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #22678
Re: [Question #689771]: ptonparticle2 search exceeded 50000 iterations! step:0 0 0
Question #689771 on Yade changed:
https://answers.launchpad.net/yade/+question/689771
Description changed to:
I want to use the Potential Blocks to build a open box in the simulation,but when I run the code,the system just told me this:"ptonparticle2 search exceeded 50000 iterations! step:0 0 0
" .
And this sentence is being repeated all the time and the time step still stops at zero.
This question only occurs when I use the PB module.
I sincerely hope that anyone can come to my rescue! Thanks a lot!
Part of my code is displayed here:
for x in range(1,100):
for y in range(1,100):
bbb=Body()
bbb.mask=3 #Avoid contact detection because I am simulating a fixed layer of particles. But you may concern their motion so comment this line seems ok.
color=[0,0.4,0.5]
# It controls the size of the plate particle
r=0.2*edge
bbb.shape=PotentialBlock(k=0.0, r=r, R=edge,
a=[1,-1,0,0,0,0], b=[0,0,1,-1,0,0], c=[0,0,0,0,1,-1],
d=[edge/2.0-r,edge/2.0-r,edge/2.0-r,edge/2.0-r,edge/2.0-r,edge/2.0-r],
isBoundary=True,
color=color,
minAabb = 1.00*Vector3(edge/2.0,edge/2.0,edge/2.0),
maxAabb = 1.00*Vector3(edge/2.0,edge/2.0,edge/2.0),
AabbMinMax=True,fixedNormal=False,id=count)
V=edge**3.0
geomInert=(1./6.)*V*edge**2.0
utils._commonBodySetup(bbb,V,Vector3(geomInert,geomInert,geomInert), material='rockfall_material',pos=[0,0,0], fixed=True) #You may make fixe=False and make them deposit in an open box
bbb.volume=V
bbb.state.pos = [-5*edge+x*edge/2.0,-5*edge+y*edge/2.0,0]
bbb.state.ori = Quaternion((1,1,0),radians(45))
O.bodies.append(bbb)
count = count+1
for y in range(1,100):
for z in range(1,12):
ccc=Body()
ccc.mask=3
color=[0,0.4,0.5]
r=0.2*edge
ccc.shape=PotentialBlock(k=0.0, r=r, R=edge,
a=[1,-1,0,0,0,0], b=[0,0,1,-1,0,0], c=[0,0,0,0,1,-1],
d=[edge/2.0-r,edge/2.0-r,edge/2.0-r,edge/2.0-r,edge/2.0-r,edge/2.0-r],
#isBoundary=True,
color=color,
minAabb = 1.00*Vector3(edge/2.0,edge/2.0,edge/2.0),
maxAabb = 1.00*Vector3(edge/2.0,edge/2.0,edge/2.0),
AabbMinMax=True,fixedNormal=False,id=count)
V=edge**3.0
geomInert=(1./6.)*V*edge**2.0
utils._commonBodySetup(ccc,V,Vector3(geomInert,geomInert,geomInert), material='rockfall_material',pos=[0,0,0], fixed=True) #You may make fixe=False and make them deposit in an open box
ccc.volume=V
ccc.state.pos = [-5*edge+1*edge/2.0,-5*edge+y*edge/2.0,0+z*edge/2.0]
ccc.state.ori = Quaternion((1,1,0),radians(45))
O.bodies.append(ccc)
count = count+1
for y in range(1,100):
for z in range(1,12):
ddd=Body()
ddd.mask=3
color=[0,0.4,0.5]
r=0.2*edge
ddd.shape=PotentialBlock(k=0.0, r=r, R=edge,
a=[1,-1,0,0,0,0], b=[0,0,1,-1,0,0], c=[0,0,0,0,1,-1],
d=[edge/2.0-r,edge/2.0-r,edge/2.0-r,edge/2.0-r,edge/2.0-r,edge/2.0-r],
#isBoundary=True,
color=color,
minAabb = 1.00*Vector3(edge/2.0,edge/2.0,edge/2.0),
maxAabb = 1.00*Vector3(edge/2.0,edge/2.0,edge/2.0),
AabbMinMax=True,fixedNormal=False,id=count)
V=edge**3.0
geomInert=(1./6.)*V*edge**2.0
utils._commonBodySetup(ddd,V,Vector3(geomInert,geomInert,geomInert), material='rockfall_material',pos=[0,0,0], fixed=True)
ddd.volume=V
ddd.state.pos = [-5*edge+99*edge/2.0,-5*edge+y*edge/2.0,0+z*edge/2.0]
ddd.state.ori = Quaternion((1,1,0),radians(45))
O.bodies.append(ddd)
count = count+1
for x in range(1,100):
for z in range(1,12):
eee=Body()
eee.mask=3
color=[0,0.4,0.5]
r=0.2*edge
eee.shape=PotentialBlock(k=0.0, r=r, R=edge,
a=[1,-1,0,0,0,0], b=[0,0,1,-1,0,0], c=[0,0,0,0,1,-1],
d=[edge/2.0-r,edge/2.0-r,edge/2.0-r,edge/2.0-r,edge/2.0-r,edge/2.0-r],
#isBoundary=True,
color=color,
minAabb = 1.00*Vector3(edge/2.0,edge/2.0,edge/2.0),
maxAabb = 1.00*Vector3(edge/2.0,edge/2.0,edge/2.0),
AabbMinMax=True,fixedNormal=False,id=count)
V=edge**3.0
geomInert=(1./6.)*V*edge**2.0
utils._commonBodySetup(eee,V,Vector3(geomInert,geomInert,geomInert), material='rockfall_material',pos=[0,0,0], fixed=True) #You may make fixe=False and make them deposit in an open box
eee.volume=V
eee.state.pos = [-5*edge+x*edge/2.0,-5*edge+1*edge/2.0,0+z*edge/2.0]
eee.state.ori = Quaternion((1,1,0),radians(45))
O.bodies.append(eee)
count = count+1
for x in range(1,100):
for z in range(1,12):
fff=Body()
fff.mask=3
color=[0,0.4,0.5]
r=0.2*edge
fff.shape=PotentialBlock(k=0.0, r=r, R=edge,
a=[1,-1,0,0,0,0], b=[0,0,1,-1,0,0], c=[0,0,0,0,1,-1],
d=[edge/2.0-r,edge/2.0-r,edge/2.0-r,edge/2.0-r,edge/2.0-r,edge/2.0-r],
#isBoundary=True,
color=color,
minAabb = 1.00*Vector3(edge/2.0,edge/2.0,edge/2.0),
maxAabb = 1.00*Vector3(edge/2.0,edge/2.0,edge/2.0),
AabbMinMax=True,fixedNormal=False,id=count)
V=edge**3.0
geomInert=(1./6.)*V*edge**2.0
utils._commonBodySetup(fff,V,Vector3(geomInert,geomInert,geomInert), material='rockfall_material',pos=[0,0,0], fixed=True) #You may make fixe=False and make them deposit in an open box
fff.volume=V
fff.state.pos = [-5*edge+x*edge/2.0,-5*edge+99*edge/2.0,0+z*edge/2.0]
fff.state.ori = Quaternion((1,1,0),radians(45))
O.bodies.append(fff)
count = count+1
for x in range(5,95):
for y in range(5,95):
g=Body()
color=[0,0,0.3]
r=0.1*random.random()
g.shape=PotentialBlock(k=0.0, r=r, R=edge,
a=[1,-1,0,0,0,0], b=[0,0,1,-1,0,0], c=[0,0,0,0,1,-1],
d=[edge/2.0-r,edge/2.0-r,edge/2.0-r,edge/2.0-r,edge/2.0-r,edge/2.0-r],
#isBoundary=True,
color=color,
#minAabb = 1.00*Vector3(edge/2.0,edge/2.0,edge/2.0),
#maxAabb = 1.00*Vector3(edge/2.0,edge/2.0,edge/2.0),
AabbMinMax=True,fixedNormal=False,id=count)
V=edge**3.0
geomInert=(1./6.)*V*edge**2.0
utils._commonBodySetup(g,V,Vector3(geomInert,geomInert,geomInert), material='rockfall_material',pos=[0,0,0], fixed=False) #You may make fixe=False and make them deposit in an open box
g.volume=V
g.state.pos = [-5*edge+x*edge/2.0,-5*edge+y*edge/2.0,0.5]
g.state.ori = Quaternion((1,1,0),random.random())
O.bodies.append(g)
count = count+1
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
--
You received this question notification because your team yade-users is
an answer contact for Yade.