New question #452513 on Yade:
https://answers.launchpad.net/yade/+question/452513

Hello everyone,

I'm new with Yade and I would appreciate some help.
I need to create a random dense packing in a cylinder. The radii of the spheres 
should have a normal distribution around a given value. Furthermore the spheres 
should not overlap, and the particles close to the cylinder surface should 
touch the surface (but not intersect the cylinder wall). Then I export the 
coordinates for further analysis in Ansys Fluent.

I first create a particle cloud in my predicate and then apply gravity 
deposition while my predicate is shaking (to distribute the particles evenly 
over the whole cross section of the cylinder).  After 8000 iterations I stop 
the simulation and export the coordinates:


from yade import pack, qt, export

cylinder=O.bodies.append(geom.facetCylinder(center=(0,0,125),radius=15,height=250,segmentsNumber=100,wallMask=7,closeGap=True))

sp=pack.SpherePack()

diameter=[3.600,3.640,3.680,3.720,3.760,3.800,3.840,3.880,3.920,3.960,4.000,4.040,4.080,4.120,4.160,4.200,4.240,4.280,4.320,
            
          
4.360,4.400,4.440,4.480,4.520,4.560,4.600,4.640,4.680,4.720,4.760,4.800,4.840,4.880,4.920,4.960,5.000,5.040,5.080,
          5.120,5.160,5.200,5.240,5.280,5.320,5.360,5.400]

cum=[0.001,0.002,0.003,0.005,0.007,0.010,0.014,0.019,0.027,0.036,0.048,0.063,0.081,0.103,0.129,0.159,0.193,0.232,0.274,
         
0.320,0.369,0.421,0.473,0.527,0.579,0.631,0.680,0.726,0.768,0.807,0.841,0.871,0.897,0.919,0.937,0.952,0.964,0.973,
         0.981,0.986,0.990,0.993,0.995,0.997,0.998,1.000]

sp.makeCloud((-10,-10,200),(10,10,245),psdSizes=diameter,psdCumm=cum,distributeMass=False)

sp.toSimulation()

yade.qt.Controller() 
yade.qt.View()

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()]
        ),
        HarmonicMotionEngine(A=[0,1.5,0],f=[0,0.3,0],ids=cylinder),
        NewtonIntegrator(gravity=(0,0,-9.81),damping=0.5),
        PyRunner(command='iterations()',realPeriod=2)
]
O.dt=.5*PWaveTimeStep()

def iterations():
   O.stopAtIter=8000
   export.text('pack.txt')


Then I start another simulation, create the same predicate, import the packing 
and then apply a simple gravity deposition and let it "rest" until the 
unbalanced force is below 0.001:


from yade import pack, qt, ymport, export

cylinder=O.bodies.append(geom.facetCylinder(center=(0,0,125),radius=15,height=250,segmentsNumber=100,wallMask=7,closeGap=True))

packing=ymport.text('pack.txt',scale=1.0)
O.bodies.append(packing)

yade.qt.Controller() 
yade.qt.View()

O.engines=[
        ForceResetter(),
        InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
        InteractionLoop(
                # handle sphere+sphere and facet+sphere collisions
                [Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom()],
                [Ip2_FrictMat_FrictMat_FrictPhys()],
                [Law2_ScGeom_FrictPhys_CundallStrack()]
        ),
        NewtonIntegrator(gravity=(0,0,-9.81),damping=0.5),
        PyRunner(command='checkUnbalanced()',realPeriod=2)
]
O.dt=.5*PWaveTimeStep()

def checkUnbalanced():
        if unbalancedForce()<.001:
                O.pause()
                export.text('pack1.txt')


But when I import my pack into Ansys Fuent (generating the spheres in CATIA V5 
first), the particles overlap sligthly among each other and intersect with the 
drawn cylinder wall.

And now my question: Why is that so and is there a way to avoid this problem?

Many thanks,

Michael



-- 
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     : [email protected]
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp

Reply via email to