← Back to team overview

yade-users team mailing list archive

Re: [Question #661926]: REFD method with clumps, but maintaining the proportion of clumps

 

Question #661926 on Yade changed:
https://answers.launchpad.net/yade/+question/661926

Bruno Chareyre proposed the following answer:
Ok...
growParticles() is changing positions instantaneously, however some positions stored internally in the clump data are not updated and they are used in NewtonIntegrator. Consequence:
 grow() + step() = update + downdate positions.

The function updateClumpProperties is needed to update the internal clump data. Problem in your case: it was not executed after the last call to glow().
I'll fix the problem by documenting this situation in the grow() function.

I would suggest to use updateClumpProperties(-1) if you grow very frequently (like every 10 timesteps) so that you don't recompute mass/inertia all the time.
Below is a working version of your last script.
Regards
Bruno


O.materials.append(FrictMat(poisson=0.5,density=2600,label='sphereMat'))
from yade import pack
nElem = 7

c=pack.SpherePack([((0,0,0),.003),((.006,0,0),.003)])
sp=pack.SpherePack()
print 'Generated # of clumps:',sp.makeClumpCloud((0,0,0),(10,10,10),[c],num=nElem,periodic=False,seed=1)
sp.toSimulation(material='sphereMat')

growParticles(multiplier=128)
O.bodies.updateClumpProperties(discretization=20)

O.engines=[
 ForceResetter(),
 InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
 InteractionLoop(
  [Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom()],
  [Ip2_FrictMat_FrictMat_FrictPhys()],
  [Law2_ScGeom_FrictPhys_CundallStrack()]
 ),
 NewtonIntegrator(damping=.4,gravity=(0,0,-9.81)),
]

O.step()
yade.qt.View()

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.