# yade-users team mailing list archive

## Re: [Question #689771]: ptonparticle2 search exceeded 50000 iterations! step:0 0 0

 Thread Previous • Date Previous • Date Next • Thread Next

```Question #689771 on Yade changed:

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]
O.bodies.append(bbb)
count = count+1

for y in range(1,100):
for z in range(1,12):
ccc=Body()
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]
O.bodies.append(ccc)
count = count+1

for y in range(1,100):
for z in range(1,12):
ddd=Body()
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]
O.bodies.append(ddd)
count = count+1

for x in range(1,100):
for z in range(1,12):
eee=Body()
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]
O.bodies.append(eee)
count = count+1

for x in range(1,100):
for z in range(1,12):
fff=Body()
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]
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

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

--