Cylinder powder compaction
Hi,
I am working on compaction of powder into cylinder shape. I have created a cylinder cloud with spherical particles, which I am trying to compress.
I tried to use PeriTriaxialCon
So I tried to use TriaxialCompres
My question is, how can I compact particle in a cylinder cloud? Or is it possible to create a cylinder walls around the sphere and in the bottom and apply pressure from the top only (-z direction)?
My code is:
from __future__ import print_function
sigmaIso=-1e5
#import matplotlib
#matplotlib.
# generate loose packing
from yade import pack, qt, plot
from yade import utils
sample_
young=4e9
,poisson=1
,density=1400
,frictionAng
,isCohesive=True
,normalCohes
,shearCohesi
,momentRotat
,label=
O.materials.
#DATOS PROBETA
radius_tablet = 0.015 #1.5 cm
height_tablet = 0.02 #2 cm
radius_particle = 0.001 #1 mm
radius_std = 0.0005 #0.5 mm
# randomDensePack packing
#pred = pack.inCylinder
#assembly = pack.randomDens
#assembly.
sp = pack.SpherePack()
sp.makeCloud(
cyl = pack.inCylinder
sp = pack.filterSphe
sp.toSimulation()
O.engines=[
ForceResetter(),
InsertionSortC
InteractionLoop(
[Ig2_
[Ip2_
[Law2_
),
TriaxialCompre
# specify target values and whether they are strains or stresses
goal=
# type of servo-control
dynCell=
# wait until the unbalanced force goes below this value
maxUnbalanced
# call this function when goal is reached and the packing is stable
doneHook=
),
NewtonIntegrat
PyRunner(
]
O.dt=.5*
def addPlotData():
plot.addData(
sxx=triax.
exx=triax.
# save all available energy data
Etot=
)
# enable energy tracking in the code
O.trackEnergy=True
# define what to plot
plot.plots=
# energy plot
' i ':(O.energy.
}
# show the plot
plot.plot()
def compactionFinis
# set the current cell configuration to be the reference one
O.cell.
# change control type: keep constant confinement in x,y, 20% compression in z
triax.
triax.stressMask=3
# allow faster deformation along x,y to better maintain stresses
triax.
# next time, call triaxFinished instead of compactionFinished
triax.
# do not wait for stabilization before calling triaxFinished
triax.
def triaxFinished():
print('Finished')
O.pause()
Question information
- Language:
- English Edit question
- Status:
- Solved
- For:
- Yade Edit question
- Assignee:
- No assignee Edit question
- Solved by:
- Mithushan Soundaranathan
- Solved:
- Last query:
- Last reply: