New question #698493 on Yade:
https://answers.launchpad.net/yade/+question/698493

Hello, 

I am currently performing a simulation of an inclined flume that goes across 
the X-axis with periodic walls on the sides(Y-axis). This runs without any 
major concern mainly thanks to the help provided on this website to many other 
users. However, when it comes to doing the post-processing, I have noticed that 
when a sphere crosses the periodic border the following thing occurs:

The sphere's Y-axis(width) coordinates do not restart despite being now on the 
opposite side of the flume. Instead, they keep increasing "out of the flume". 
This is not a big concern since this can be easily adjusted on the 
post-processing and I'm aware this could be useful in other scenarios. 
Nevertheless, When the sphere crosses the periodic border, it seems that no 
contact is detected against those particles that did not cross the periodic 
boundary(or did it more than once). This is observed after manually calculating 
each contact overlap. When doing this, spheres on the same "coordinates" do 
have normal overlaps but those who are not on the same boundary have a huge 
range of overlap(up to one radius) as if no interaction occurs.

Based on this I am curious if this could be a bug or if I am missing any 
contact law that would allow contact between particles that are not on the same 
"coordinates". 
Finally, I have attached a few code lines regarding the engines used and how I 
add the spheres. 
If any additional information is required, or if there are any suggestions(or 
ideas), I'd be delighted to read about it.
Best,

Andrés 

Additional information:

How spheres are added:
(This is not really relevant, just to emphasize that I add spheres through  
O.bodies.append(utils.sphere()) command. 

for i in np.arange(4*d,lr,2*d):
  for j in np.arange(d+hr,5*hr,2*d):
      for k in np.arange(-wc/2+3*d,wc/2-3*d,2*d):
          
O.bodies.append(utils.sphere((i,k,j),radius=float(random.randint(int(100000*(d-disp)),int(100000*(d+disp))))/100000,material=sphereMat))


Engines:
O.engines=[
   ForceResetter(),
   
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()],allowBiggerThanPeriod=True),
   InteractionLoop(
#  handle sphere+sphere and box+sphere collisions
   [Ig2_Sphere_Sphere_ScGeom(),Ig2_Box_Sphere_ScGeom()],
   [Ip2_ViscElMat_ViscElMat_ViscElPhys()],
   [Law2_ScGeom_ViscElPhys_Basic()]),
   NewtonIntegrator(gravity=(g*sin(slope),0,-g*cos(slope)), damping=0), #add 
gravity
   
VTKRecorder(fileName=addrec+'3d-'+str(zeta)+'-vtk-',recorders=['all'],iterPeriod=it),
]


-- 
You received this question notification because your team yade-users 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

Reply via email to