yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #26715
Re: [Question #699605]: orthogonal packing
Question #699605 on Yade changed:
https://answers.launchpad.net/yade/+question/699605
Status: Open => Answered
Jan Stránský proposed the following answer:
> porrr=utils.voxelPorosity(200,(0.75,0.75,0.75),(1.25,1.25,1.25))
The problem here is voxelPorosity and its parameters.
resolution=200 might be too little, you can try higher values.
More importantly, you are using some random region for evaluation, porosity computed there has (or at least may have) no relation to the true total porosity. Randomly omitting / adding some border parts of spheres influence significantly the result.
You can play with shifting the region.
If I use an analytical formula
###
def porosity():
volTot = O.cell.volume
r = 0.09
volSphs = len(O.bodies) * 4/3. * pi * r**3
ds = [2*r - i.geom.penetrationDepth for i in O.interactions]
# https://mathworld.wolfram.com/Sphere-SphereIntersection.html
volContactss = [1/12.*pi*(4*r+d)*(2*r-d)**2 for d in ds]
volContacts = sum(volContactss)
volSolid = volSphs - volContacts
volVoid = volTot - volSolid
return volVoid / volTot
###
I get consistent results:
0.47577 (isotropic pressure -1e5)
0.47326 (isotropic pressure -5e5)
0.47202 (isotropic pressure -7e5)
Cheers
Jan
--
You received this question notification because your team yade-users is
an answer contact for Yade.