jointedcohesivefrictionalPM packInGtsSurface example not working?

Asked by James X

I was trying to run some of the files in the jointedCohesiveFrictionalPM folder, but I don't see any results that the images in that folder would suggest. For example, if I type in: "yade packInGtsSurface.py", the program just hangs for a while while giving me some warnings:

Welcome to Yade 1.20.0
TCP python prompt on localhost:9000, auth cookie `udscky'
XMLRPC info provider on http://localhost:21000
Running script packInGtsSurface.py
closed? True
Vector3(2.9799999995416826e-8,0.9999998808953552,0) Vector3(0.9999999404,2.0000000002092895,1) | minDim= 0.9999999404 | diameter= 0.09999999404
Best-fit oriented-bounding-box computed for GTS surface, orientation is Quaternion((-0.705495401935404,0.7087144967107664,2.585730613033504e-8),1.962197546817504e-309)
WARN /build/yade-KKgSmd/yade-1.20.0/pkg/dem/SpherePack.cpp:105 makeCloud: porosity must be >0, changing it for you. It will be ineffective if rMean>0.
WARN /build/yade-KKgSmd/yade-1.20.0/pkg/dem/Shop_01.cpp:457 PWaveTimeStep: PWaveTimeStep has not found any suitable spherical body to calculate dt. dt is set to 1.0

After I wait about 10 minutes, I decided to cancel the program with ctrl-C, and then the program continues:

^CTraceback (most recent call last):
  File "/usr/bin/yade", line 182, in runScript
    execfile(script,globals())
  File "packInGtsSurface.py", line 32, in <module>
    sp=pack.randomDensePack(pred,radius=radius,rRelFuzz=0.3,useOBB=True,memoizeDb='/tmp/gts-triax-packings.sqlite',returnSpherePack=True) # cropLayers=5 (not to use)
  File "/usr/lib/x86_64-linux-gnu/yade/py/yade/pack.py", line 472, in randomDensePack
    O.run(100,True)
KeyboardInterrupt
[[ ^L clears screen, ^U kills line. F12 controller, F11 3d view (use h-key for showing help), F10 both, F9 generator, F8 plot. ]]

At this point, I see nothing, so I just exit out:
[0;34mYade [[1;34m1[0;34m]: [0mexit

Based on the readme file, I would expect to see the text file "parallellepiped_10.spheres", but I don't see it. Is there something I need to do in the .py file to make this work?

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
James X
Solved:
Last query:
Last reply:
Revision history for this message
Jérôme Duriez (jduriez) said :
#1

Hello,

The packInGtsSurface first generates a sphere packing, thanks to randomDensePack() function. Here you're stuck during the call to this function, as shown by the "KeyboardInterrupt" message you get.
Your problem is just randomDensePack() here takes too long to execute (randomDensePack executes a hidden triaxial simulation, so it is normal it takes some time. But I agree it should not take so long)

As a "solution" I recommend (as README suggest) you launch gravityBis.py (see the README). Let us know if you face the same issues.

Jerome

PS: In fact, this issue is worth investigating (I'll try): I tried the script packInGtsSurface on two different YADE versions, and things were fast and smooth with an old version, and I got the same annoying behavior as you with a recent version...

Revision history for this message
Jérôme Duriez (jduriez) said :
#2

See the linked bug for a more thorough explanation: in short, packing generation from GTS predicate is currently broken.

I confirm playing with gravityBis is thus still possible, do not hesitate to let us know what you think about it. Could be an opportunity to clean a little this examples/jointedCohesiveFrictionalPM folder.

Revision history for this message
James X (jaxie) said :
#3

Hi Dr. Duriez,

Thanks! gravityBis works fine. I'll just use that for now.