I can not get the desired porosity with my PSD
Hello All,
I am trying to generate sphere packing according to a given PSD.
I want to get a porosity=0.375 or e=(triax.
I use num_spheres=1000 and my answer for porosity is 0.4969
I use num_spheres=5000 and my answer for porosity is 0.435
I use num_spheres=15000 and my answer for porosity is 0.411
I use num_spheres=20000 and my answer for porosity is 0.4139
I use num_spheres=30000 and my answer for porosity is 0.4059
I use num_spheres=40000 and my answer for porosity is 0.39
I use num_spheres=50000 and my answer for porosity is 0.39
I use num_spheres=60000 and my answer for porosity is 0.39
How to use this psd to get the desired porosity=0.375 or e=(triax.
=======
import matplotlib; matplotlib.
from yade import pack
import pylab
from numpy import *
import matplotlib.pyplot as plt
import math
utils.readParam
from yade.params import table
seed=table.seed
num_spheres=
compFricDegree = table.compFricD
confiningS=-2820
## creat a packing with a specific particle side distribution (PSD)
psdSizes,
sp=pack.
mn,mx=Vector3(
sp.makeCloud(
sp.psd(
sp.toSimulation
## create material #0, which will be used as default
O.materials.
O.materials.
## create walls around the packing
walls=aabbWalls
wallIds=
O.bodies.
print 2*O.bodies[
print 2*O.bodies[
triax=TriaxialS
internalCompac
goal1=confiningS,
goal2=confiningS,
goal3=confiningS,
max_vel=10,
label="triax"
)
newton=
O.engines=[
ForceResetter(),
InsertionSortC
InteractionLoop(
[Ig2_
[Ip2_
[Law2_
),
GlobalStiffnes
triax,
newton
]
O.dt=.1*
O.dynDt=False
while 1:
O.run(1000, True)
unb=unbalance
print 'unb: ',unb,' t.p: ',triax.porosity,' n: ',porosity(),' e: ',(triax.
if unb<0.001 and abs(confiningS-
break
print 'porosity: ',porosity()
print 'triax.
print 'e: ',(triax.
=======
Question information
- Language:
- English Edit question
- Status:
- Answered
- For:
- Yade Edit question
- Assignee:
- No assignee Edit question
- Last query:
- Last reply:
Can you help with this problem?
Provide an answer of your own, or ask Saeed for more information if necessary.