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