yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #23284
[Question #691193]: Why the sum of TW.volume is not equal to the volume of pack
New question #691193 on Yade:
https://answers.launchpad.net/yade/+question/691193
Dear all,
I use TesselationWrapper to compute the volume of spheres, but I find that the sum of TW.volume is not equal to the volume of pack. Does the Voronoi cell of each sphere overlap each other?
I run the MWE and I got
volume=0.6067921587125377
TW_Volume=0.8510512980654049
Thanks for any suggestion.
####MWE####
import numpy as np
O.periodic=True
O.cell.setBox(1,1,1)
num_spheres=1000 # number of spheres
den_ball=2600 # density of particles from the experimental test
young=1e8
iso_pressure=-1e4
compFricDegree = 30 # initial contact friction during the confining phase
O.materials.append(FrictMat(young=young,poisson=0.5,
frictionAngle=radians(compFricDegree),
density=den_ball,label='spheres'))
sp=pack.SpherePack()
sp.makeCloud((0,0,0),(1,1,1),
-1,0.333,num=num_spheres,
periodic=True,seed=1)# final porosity should be 0.24
sp.toSimulation(material='spheres')
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],[Law2_ScGeom_FrictPhys_CundallStrack()]),
NewtonIntegrator(damping=0.2),
PeriTriaxController(dynCell=True,maxUnbalanced=0.01,relStressTol=0.02,goal=(iso_pressure,iso_pressure,iso_pressure),stressMask=7,globUpdate=5,maxStrainRate=(.1,.1,.1),doneHook='print("Hydrostatic load reached."); O.pause();',label='triax'),
]
O.dt=PWaveTimeStep()
O.run();O.wait()
TW=TesselationWrapper()
TW.triangulate()
TW.setState()
TW.computeVolumes()
TW_Volume=0
for i in range(1000):
TW_Volume += TW.volume(i)
print('volume='+str(O.cell.volume)+'\nTW_Volume='+str(TW_Volume))
--
You received this question notification because your team yade-users is
an answer contact for Yade.