← Back to team overview

yade-users team mailing list archive

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.