voxelPorosity

Asked by ytang on 2020-06-10

hi all,
 I want to use this command to calculate the local porosity (yade._utils.voxelPorosity).[1]
##############################################################
yade._utils.voxelPorosity([(int)resolution=200[, (Vector3)start=Vector3(0, 0, 0)[, (Vector3)
end=Vector3(0, 0, 0) ]]])
##############################################################
it mentioned that Vv is volume of voxels that fall inside any sphere.

Here is my question: I want to simulate the CPT process.[2]
as you can imagine, the shaft will go down to the sample (here the sample is made by the sphere particles).

If I set the start vector and end vector which will include the shaft sometimes. that is to say, spheres and part of the shaft (made by the geom.facetCylinder) are in this measurement region (the cubic region made by the start and end vector) at the same time.

does this command can still calculate the local porosity?

Is the Vv still the volume of voxels that fall inside and sphere only?
Or the volume of the spheres + the volume of the shaft that falls in that measurement region? (how does this command deal with the Vv?)

best,
yong

references:
[1] https://yade-dev.gitlab.io/trunk/yade.utils.html?highlight=yade%20_utils%20voxelporosity#yade._utils.voxelPorosity

[2]https://en.wikipedia.org/wiki/Cone_penetration_test

Question information

Language:
English Edit question
Status:
Answered
For:
Yade Edit question
Assignee:
No assignee Edit question
Last query:
2020-06-10
Last reply:
2020-06-12
Jan Stránský (honzik) said : #1

Hello,

you can always check the source code [1] or test yourself on a simple example.
Vv is just the volume of start-end cube (there is no general way how yade could determine what should be part of the volume and what not).

But IMO it would not be a problem to calculate "plain porosity", calculate volume of intersection of the shaft and the cube, and from these values calculate the "proper porosity".

cheers
Jan

[1] https://gitlab.com/yade-dev/trunk/-/blob/master/pkg/dem/Shop_01.cpp#L425

ytang (ytang116) said : #2

Hi Jan,

In the document, it mentioned that Vv is the volume of voxels that fall inside any sphere.

I also read the source code, if I understand correctly, the code didn't mention about the Vv volume includes the facet or box.

but i will test the porosity with/without the shaft.

best,
yong

Jan Stránský (honzik) said : #3

sorry, I misinterpreted your question..
V is the total cube voluem
Vv is the approximation (based on the voxelization) of the volume occupied by spheres
Regardless any cone or other bodies..

The second part of my answer concerning "proper porosity" still holds and is quite elegant.

Another point, do you have significant overlaps / overlaps of more than two particles at a time? If no, You can compute porosity more simply as the sum of volume of individual spheres. Voxel porosity is relatively rough approximation, applicably (IMO) mainly for hugely overlapping spheres e.g. composing a arbitrary-shaped clump.

cheers
Jan

Can you help with this problem?

Provide an answer of your own, or ask ytang for more information if necessary.

To post a message you must log in.