[Yade-users] [Question #291202]: Clumping - angl of repose

2016-04-16 Thread Seti
New question #291202 on Yade:
https://answers.launchpad.net/yade/+question/291202

Hi all,


In below code I have tried to study the effect of percentage/ratio of clumping 
on repose angle. before adding the clumping section the scrip worked properly 
however by adding clump grain do not fall down because of their gravity and the 
sample explodes .

Would you please advise?

Thanks
#!/usr/bin/python
from yade import pack,utils, qt, plot
pred = pack.inAlignedBox((0,0,0),(14.5,14.5,14.5))
#create material
soil1 = 
CohFrictMat(young=30e9,poisson=0.3,frictionAngle=radians(30),density=2600.0,normalCohesion=1e6,
 shearCohesion=80e6,label='soil')
#color=(1,0,0) red color
#soil1 = 
FrictMat(young=1e6,poisson=0.4,frictionAngle=radians(30),density=2500.0,label='soil')
O.materials.append(soil1)
O.bodies.append(utils.wall(0,axis=1,sense=1))
O.materials.append(CohFrictMat(young=30e9,poisson=0.3, frictionAngle = 
radians(30) , label='wallmat'))
wallmat = O.materials[-1]
45
spheres=SpherePack()
spheres=pack.randomDensePack(pred,radius=.5,material='soil',spheresInCell=1000,color=(1,0,0),returnSpherePack=True)
spheres.toSimulation()
#O.bodies.append(spheres)
#

#
O.engines=[
 ForceResetter(),#reset forces
 InsertionSortCollider([Bo1_Wall_Aabb(),Bo1_Sphere_Aabb()]),
 InteractionLoop(

[Ig2_Sphere_Sphere_ScGeom6D(),Ig2_Wall_Sphere_ScGeom()], # collision geometry
[Ip2_CohFrictMat_CohFrictMat_CohFrictPhys()], # 
collision "physics"

[Law2_ScGeom6D_CohFrictPhys_CohesionMoment(),Law2_ScGeom_FrictPhys_CundallStrack()]
 # contact law -- apply forces
),
  # apply gravity force to particles
# damping: numerical dissipation of energy
  NewtonIntegrator(damping=0.5,gravity=(0,-9.81,0)),

#qt.SnapshotEngine(fileBase='3d-',iterPeriod=200,label='snapshot'),
   # this engine will be called after 2 steps, only once

  
PyRunner(command='checkUnbalanced()',realPeriod=200,label='checker'),
  PyRunner(command='addPlotData()',iterPeriod=200)
]
 
#CLUMPING###


#create a box:
#id_box = 
O.bodies.append(box((0,0,0),(.0045,0.0045,.0045),fixed=True,material=Mat))

#create assembly of spheres:
#sp=pack.SpherePack()
#sp.makeCloud((0,0,0),(.004,0.004,.004),rMean=.00018,rRelFuzz=.0001,num=1000,periodic=False)
#O.bodies.append([sphere(c,r,material=Mat) for c,r in sp])

#print len(sp),' particles generated.'
print 'Roundness coefficient without clumps is: ',O.bodies.getRoundness()

 show how to use makeClumpTemplate():


#dyad:
#relRadList1 = [.0002,.0002]
#relPosList1 = [[.0003,0,0],[0.0006,0,0]]

#peanut:
relRadList2 = [.0002,0.0004,0.0002]
relPosList2 = [[0.0003,0,0],[0,0,0],[0.0006,0,0]]

#stick:
#relRadList3 = [1,1,1,1,1]
#relPosList3 = [[0,1,0],[0,2,0],[0,3,0],[0,4,0],[0,5,0]]

templates= []
#templates.append(clumpTemplate(relRadii=relRadList1,relPositions=relPosList1))
templates.append(clumpTemplate(relRadii=relRadList2,relPositions=relPosList2))
#templates.append(clumpTemplate(relRadii=relRadList3,relPositions=relPosList3))


 show how to use replaceByClumps():


#replace by 50% dyads, 30% peanuts and 10% sticks:
#O.bodies.replaceByClumps(templates,[.5,.3,.1])
O.bodies.replaceByClumps(templates,[0.5])

 show how to use getRoundness():


#create a list of all standalone spheres:
standaloneList = []
for b in O.bodies:
if b.isStandalone:
standaloneList.append(b.id)

print 'Roundness coefficient for spheres and clumps is: 
',O.bodies.getRoundness()
print 'Roundness coefficient just for clumps is: 
',O.bodies.getRoundness(standaloneList)

#sp.toSimulation()

print 'Number of elements: ', len(O.bodies)
print 'Box Volume: '
print 'Clumprepose,0.5,.25,30,3grain,0.5%'
O.trackEnergy=True
# set timestep to a fraction of the critical timestep
# the fraction is very small, so that the simulation is not too fast
# and the motion can be observed
O.dt=1*utils.PWaveTimeStep()
#makeVideo(snapshot.snapshots,'3d.mpeg',fps=10,bps=1)
# save the simulation, so that it can be reloaded later, for experimentation
#O.saveTmp()0
#checker.command='stopUnloading()'
def checkUnbalanced():
   if unbalancedForce()<5e-2:
  print('Reached target , stopping')
  O.pause()
  plot.saveDataTxt('Clumprepose,0.5,.5,30,3grain,0.5%.bz2')
  plot.saveDataTxt('Clumprepose,0.5,.5,30,3grain,0.5%.txt')
#plot.saveDataTxt('modi.data.bz2')
  # plot.saveGnuplot('bbb') is also possible

# collect history of data which will be plotted

def addPlotData():
   # each item is given a names, by which it can be the unsed in plot.plots
   # the **O.energy converts dictionary-like O.energy to plot.addData arguments
   

Re: [Yade-users] [Question #290423]: Interal friction angle - repose angle

2016-04-16 Thread Seti
Question #290423 on Yade changed:
https://answers.launchpad.net/yade/+question/290423

Status: Answered => Solved

Seti confirmed that the question is solved:
Thanks Jérôme Duriez, that solved my question.

-- 
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 : yade-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #291194]: Creating a Pack of packages

2016-04-16 Thread Luis Barbosa
Question #291194 on Yade changed:
https://answers.launchpad.net/yade/+question/291194

Description changed to:
Hello everyone,

There is in YADE a bult in function which creates a dense pack 
(randomDensePack).
I'm using this function to create a pack, let's call it pack 1, with some 
specific contacts parameters (parameters 1).

My question is: Is there already some function capable of create another
dense pack (pack 2) composed by many pack 1? Considering that the
contact parameters between these pack 1 is different from parameters 1
(parameters 2). In other words, pack 2 keeps parameters 1 inside pack 1,
but uses parameters 2 in the interaction.

Thank you for your attention.
Luis

-- 
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 : yade-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


[Yade-users] [Question #291194]: Creating a Pack of packages

2016-04-16 Thread Luis Barbosa
New question #291194 on Yade:
https://answers.launchpad.net/yade/+question/291194

Hello everyone,

There is in YADE a bult in function which creates a dense pack 
(randomDensePack).
I'm using this function to create a pack, let's call it pack 1, with some 
specific contacts parameters (parameters 1).

My question is: Is it possible create another dense pack (pack 2) composed by 
many pack 1? Considering that the contact parameters between these pack 1 is 
different from parameters 1 (parameters 2). In other words, pack 2 keeps 
parameters 1 inside pack 1, but uses parameters 2 in the interaction.

Thank you for your attention.
Luis

-- 
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 : yade-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


[Yade-users] [Question #291177]: triaxial test: particles' Young modulus and overlaps

2016-04-16 Thread hjz
New question #291177 on Yade:
https://answers.launchpad.net/yade/+question/291177

 Dear all,
I'm trying a triaxial test with script-session 1.py. I have some 
problem with it.

1)Why does increasing the particles' Young modulus cause the running 
over of particles when I  have applied confining pressure? The particles is 
decreased obviously.
2)When the young modulus of walls is equal to the particles', the walls 
have a deformation as the compression of the packing. Does the young modulus of 
the walls need to be bigger than the particles'? 
3)With the DEM, we need to control the particles' overlap when we 
compress the packing. How can we control it in yade? Can we obtain it with any 
function in yade?

Thanks to all of you.

Sincerely hjz

-- 
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 : yade-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp