Radius Expansion Method: yade 1.07 vs 1.2

Asked by Wojciech Sobieski

Hi Everyone,

Some time ago I prepared a script destined to generate clouds with a specific size distribution and porosity. It works very good in yade 1.07. The porosity decreases regularly in time, until the target value is reached. However, in yade 1.20 exactly the same script doesn't work. The porosity is always a little less than 1 (but changes a little down and up) or - in other tries - decreases unevenly in time, but never achieves the target porosity. I tried to find a solution, but without success. Can somebody help me to find the reason?

The second problem is that I can't see the porosity plot during a calculation. The frame of the window exists, but I see only the screen behind it.

Best Regards from Poland,

Wojciech Sobieski

---------------------------------------
from yade.pack import *
from yade import utils
from yade import export
from yade import plot

n_s = 5000
e_target = 0.413
mi = 5.0
n_band = 26

psdSizes=[5.8598400e+00,5.8761600e+00,5.8924800e+00,5.9088000e+00,5.9251200e+00,5.9414400e+00,5.9577600e+00,5.9740800e+00,5.9904000e+00,6.0067200e+00,6.0230400e+00,6.0393600e+00,6.0556800e+00,6.0720000e+00,6.0883200e+00,6.1046400e+00,6.1209600e+00,6.1372800e+00,6.1536000e+00,6.1699200e+00,6.1862400e+00,6.2025600e+00,6.2188800e+00,6.2352000e+00,6.2515200e+00,6.2678400e+00]
psdCumm=[0.0,8.4945735e-05,3.5804112e-04,1.1512195e-03,3.2324246e-03,8.1658647e-03,1.8731095e-02,3.9172232e-02,7.4902028e-02,1.3132521e-01,2.1182373e-01,3.1558203e-01,4.3640887e-01,5.6352779e-01,6.8435463e-01,7.8811293e-01,8.6861145e-01,9.2503463e-01,9.6076443e-01,9.8120556e-01,9.9177079e-01,9.9670423e-01,9.9878544e-01,9.9957862e-01,9.9985171e-01,1.0]

i = 0
while i < n_band:
    psdSizes[i]=psdSizes[i]/1000. #scaling from [mm] to [m]
    print "\r psdSizes:",i,psdSizes[i]
    i = i +1

#If the bed volume is defined, then the average diameter of particles (when the target porosity is reached) is the same like in the measurement.
l = 0.07926574
vol = l*2*l*l

mn = Vector3(0,0,0)
mx = Vector3(l,2*l,l)

O.materials.append(FrictMat(young=5e6,poisson=0.5,frictionAngle=0,density=0,label='walls'))
O.bodies.append(aabbWalls([mn,mx],thickness=0,material='walls'))
O.materials.append(FrictMat(young=5e6,poisson=0.5,frictionAngle=radians(mi),density=2600,label='spheres'))
sp = yade._packSpheres.SpherePack()
sp.makeCloud(mn,mx,psdSizes=psdSizes,psdCumm=psdCumm,num=n_s,distributeMass=1)
O.bodies.append([sphere(s[0],s[1],material='spheres') for s in sp])

plot.resetData()

triax = TriaxialStressController(finalMaxMultiplier = 1.0004,maxMultiplier = 1.004,stressMask = 7,internalCompaction = True,goal1 = 10000,goal2 = 10000,goal3 = 10000)

O.engines=[
 ForceResetter(),
 InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
 InteractionLoop([Ig2_Sphere_Sphere_ScGeom(),Ig2_Box_Sphere_ScGeom()],[Ip2_FrictMat_FrictMat_FrictPhys()],[Law2_ScGeom_FrictPhys_CundallStrack()]),
 GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.8),
        triax,
 NewtonIntegrator(damping = 0.2,gravity=[0,0,0]),
 PyRunner(command='letPlot()',iterPeriod=10)
 ]

def letPlot():
  plot.addData(step=O.iter,e=porosity(vol))
plot.plots={'step':('e')}
plot.plot()

while porosity(vol) > e_target:
  mi = 0.99*mi
  setContactFriction(radians(mi))
  print "\r Friction:",mi
  print "\r Porosity:",porosity(vol)
  sys.stdout.flush()
  O.run(500,1)

export.text('results.yade')

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Bruno Chareyre
Solved:
Last query:
Last reply:
Revision history for this message
Best Bruno Chareyre (bruno-chareyre) said :
#1

Hello Wojciech!
The sign convention for stress has been homogeneized some time ago. So if you want a compression the target value ("goal1" and others) should be negative.
Let us know if it fixes the problem.
Cheers
Bruno

Revision history for this message
Wojciech Sobieski (wojciech-sobieski) said :
#2

Thanks Bruno Chareyre, that solved my question.

Revision history for this message
Wojciech Sobieski (wojciech-sobieski) said :
#3

Hello Bruno,

It works! thank you ;)

Do you have an idea where is the problem with this plot window?

Best Regards from Poland,

Wojciech.

Revision history for this message
Bruno Chareyre (bruno-chareyre) said :
#4

I guessed the plot was weird because the results were weird.
Are the plots still strange even when compaction occurs as expected?
B

Revision history for this message
Wojciech Sobieski (wojciech-sobieski) said :
#5

Hi Bruno,

No, the plot still doesn't work. But, it never worked correctly. I have this bug from the beginning.

Best Regards from Poland,

Wojciech.