Question #706733 on Yade changed:
https://answers.launchpad.net/yade/+question/706733

    Status: Open => Answered

Jan Stránský proposed the following answer:
Ok, now it makes more sense

> regularHexa

creates non-overlapping spheres, computation is then easier.

###
for b in O.bodies:
    if not b.isClump:
         continue # skip non-clumps
     vol = sum(4/3*pi*O.bodies[memberId].shape.radius**3 for memberId in 
b.shape.members) # [2]
     print(b.id,vol)
###

the 'vol' computation can be split into more functions to make it more readable:
###
def sphereVolume(radius):
    vol = 4 / 3 * pi * radius ** 3
    return vol
def id2radius(id):
    b = O.bodies[id]
    r = b.shape.radius
    return r

...
    vol = sum(sphereVolume(id2radius(memberId)) for memberId in b.shape.members)
###

Cheers
Jan

[2] https://yade-
dem.org/doc/yade.wrapper.html#yade.wrapper.Clump.members

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.

_______________________________________________
Mailing list: https://launchpad.net/~yade-users
Post to     : yade-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp

Reply via email to