← Back to team overview

yade-users team mailing list archive

[Question #706883]: The particle deposition rate is too slow

 

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

Hi, I want to pour the particles into a container and stir. However, the particle deposition rate is too slow. How can I accelerate the process?

Here is my script.

import random
import math
from yade import geom, pack, utils, plot, ymport, export
import numpy as np

#particle parameters
Density = 3000
FrictionAngle = 0
PoissonRatio = 0.5
Young = 300e6
Damp = 0.7
AvgRadius = 0.01
N_particles = 20000

#Wall constants
WDensity = 3000
WFrictionAngle = 0.0
WPoissonRatio = 0.5
WYoung = 500e9


SphereMat = O.materials.append(FrictMat(young = Young, poisson = PoissonRatio, frictionAngle = radians(FrictionAngle), density = Density))
WallMat = O.materials.append(FrictMat(young = WYoung, poisson = WPoissonRatio, frictionAngle = radians(WFrictionAngle), density = WDensity))

### tank
center = (0, 0, 0)
diameter = 2
height = 1
cylinder = geom.facetCylinder(center=center, radius=diameter/2, height=height, segmentsNumber=80, wallMask=6,material=WallMat)
O.bodies.append(cylinder)

### funnel
# Define cylinder with funnel parameters
center2 = (0, 0, 1)
diameter2 = 0.4
height2 = 1

# create cylindrical body
cylinder2 = geom.facetCylinder(center=center2, radius=diameter2/2, height=height2, segmentsNumber=80, wallMask=4,material=WallMat)
O.bodies.append(cylinder2)

# Define cylinder with funnel parameters
center1 = (0,0,height2/2+1)
dBunker = 2
dOutput = 0.4
hBunker = 0
hOutput = 1
hPipe = 0

# create funnel as a bunker
funnel = geom.facetBunker(center=center1, dBunker=dBunker, dOutput=dOutput, hBunker=hBunker,hOutput=hOutput, hPipe=hPipe, segmentsNumber=80, wallMask=4,material=WallMat)
O.bodies.append(funnel)

# Define cylinder with funnel parameters
center3 = (0, 0, 4.5)
diameter3 = 2
height3 = 4

# create cylindrical body
cylinder3 = geom.facetCylinder(center=center3, radius=diameter3/2, height=height3, segmentsNumber=80, wallMask=4,material=WallMat)
O.bodies.append(cylinder3)

### blender
b1=[]
for i in range(60):
    b1.append(O.bodies.append(sphere([0.707/2,0.707/2,i*0.02-0.48],0.04)))

for i in range(5):
    for j in range(48):
        b1.append(O.bodies.append(sphere([j*0.01+0.707/2,0.707/2,i*0.2-0.48],0.02)))
        b1.append(O.bodies.append(sphere([-j*0.01+0.707/2,0.707/2,i*0.2-0.38],0.02)))

idclump1=O.bodies.clump(b1)
s1=O.bodies[-1]
s1.state.blockedDOFs='xyzXYZ'


b2=[]
for i in range(60):
    b2.append(O.bodies.append(sphere([-0.707/2,-0.707/2,i*0.02-0.48],0.04)))

for i in range(5):
    for j in range(48):
        b2.append(O.bodies.append(sphere([-(j*0.01+0.707/2),-0.707/2,i*0.2-0.48],0.02)))
        b2.append(O.bodies.append(sphere([-(-j*0.01+0.707/2),-0.707/2,i*0.2-0.38],0.02)))

idclump2=O.bodies.clump(b2)
s2=O.bodies[-1]
s2.state.blockedDOFs='xyzXYZ'


b3=[]
for i in range(60):
    b3.append(O.bodies.append(sphere([0.707/2,-0.707/2,i*0.02-0.48],0.04)))

for i in range(5):
    for j in range(48):
        b3.append(O.bodies.append(sphere([(-j*0.01+0.707/2),-0.707/2,i*0.2-0.48],0.02)))
        b3.append(O.bodies.append(sphere([(j*0.01+0.707/2),-0.707/2,i*0.2-0.38],0.02)))

idclump3=O.bodies.clump(b3)
s3=O.bodies[-1]
s3.state.blockedDOFs='xyzXYZ'


b4=[]
for i in range(60):
    b4.append(O.bodies.append(sphere([-0.707/2,0.707/2,i*0.02-0.48],0.04)))

for i in range(5):
    for j in range(48):
        b4.append(O.bodies.append(sphere([-(-j*0.01+0.707/2),0.707/2,i*0.2-0.48],0.02)))
        b4.append(O.bodies.append(sphere([-(j*0.01+0.707/2),0.707/2,i*0.2-0.38],0.02)))

idclump4=O.bodies.clump(b4)
s4=O.bodies[-1]
s4.state.blockedDOFs='xyzXYZ'

for b in O.bodies:
    if isinstance(b.shape,Sphere):
        b.shape.color=(0.,1.,0.)

### particle generation
mn = Vector3(0.6,-0.6,2.5)
mx = Vector3(-0.6,0.6,5.5)

sp = pack.SpherePack()
sp.makeCloud(mn,mx,num=N_particles,rMean=AvgRadius,rRelFuzz=0,distributeMass=False)
sp.toSimulation(material = SphereMat)



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(gravity=(0,0,-9.8),damping=0.7),
   CombinedKinematicEngine(ids=[s1.id],comb=[RotationEngine(angularVelocity=10000,rotateAroundZero=1,rotationAxis=(0,0,1),zeroPoint=(0.707/2,0.707/2,0))]),
   CombinedKinematicEngine(ids=[s2.id],comb=[RotationEngine(angularVelocity=10000,rotateAroundZero=1,rotationAxis=(0,0,1),zeroPoint=(-0.707/2,-0.707/2,0))]),
   CombinedKinematicEngine(ids=[s3.id],comb=[RotationEngine(angularVelocity=-10000,rotateAroundZero=1,rotationAxis=(0,0,1),zeroPoint=(0.707/2,-0.707/2,0))]),
   CombinedKinematicEngine(ids=[s4.id],comb=[RotationEngine(angularVelocity=-10000,rotateAroundZero=1,rotationAxis=(0,0,1),zeroPoint=(-0.707/2,0.707/2,0))])
]
O.dt=2*PWaveTimeStep()


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