← Back to team overview

yade-users team mailing list archive

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.