← Back to team overview

yade-users team mailing list archive

[Question #690057]: appropriate of porosity

 

New question #690057 on Yade:
https://answers.launchpad.net/yade/+question/690057

Hi all,

I know there are three ways to calculate the porosity. (1) in triaxial test, using trix.porosity. (2) using 'yade._utils.porosity' (3) using 'yade._utils.voxelPorosity' . 
Right now, I want to get the porosity of a gravity deposition sample. after the sample settles down. 
I use method (2) and (3).

here is the code to calculate the porosity:
the boundary of the box is: O.bodies.append(geom.facetBox((.5,.5,.5),(.5,.5,.5),wallMask=31))
#######################
from yade import utils
volume_all = 1*1*1
solid_volume = 0
resolution = 1600
corner =Vector3(0,0,0) 
upper =Vector3(1,1,1)
for b in O.bodies:

	if isinstance(b.shape,Sphere):
		if 0  < b.state.pos[2] <= 0.2:
			radius = b.shape.radius
			solid_volume= solid_volume+4.*pi/3.*b.shape.radius**3
local_porosity1 = porosity((volume_all-solid_volume)/volume_all)
print('porosity1 is:',local_porosity1)
local_porosity2 = voxelPorosity(resolution,corner,upper)
print('porosity2 is:',local_porosity2)
###############
the results are:
('porosity1 is:', 0.6974628420464914)
('porosity2 is:', 0.7288646931152344)
####################
I know that for both methods, we don't condider the partiles at the boundary (where the particle center isn't inside the boundary). for method 2, we don't consider the overlap between the particles. I don't know whether method 3 considers the voerlap or not and how the consider the overlap. 

right now, the difference between these two values is significant. 
Can anyone give me some suggestions about which method is more suitable or reasonable?

best,
Yong

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