yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #16488
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.