Void Ratio from array of spheres.

Hello,
I have a matrix which contains x, y, z coordinates, as well as the radius of each sphere. Sphere boundaries are rigid so that the shortest distance between any two adjacent spheres is the sum of their respective radii. The spheres are all mixed together and are of varying radii. I would like to calculate the void ratio of this mixture; or the ratio of the volume of void space to the volume of solid objects (spheres).
For example, the first three columns of this matrix are xyz coordinates, respectivly, and the last column is the radius.
xyzr =
-45.1766 -48.5664 0.4843 0.5000
-50.0416 -49.2495 0.4961 0.5000
-47.9513 -47.9333 0.9957 1.0000
-49.9313 -47.3837 1.8390 1.0000
-48.8482 -50.0006 0.9927 1.0000
-49.6122 -48.1071 0.4921 0.5000
-44.6511 -49.4200 0.4985 0.5000
-45.2021 -50.4440 0.4960 0.5000
-50.5025 -49.5157 1.3356 0.5000
-44.7595 -46.8283 4.0392 3.5000
The actual matrix is a 60000x4 double, and the spheres end up being closely packed. I would like to calculate the voids in between spheres, with the top surface being the surface of the uppermost spheres. What I mean is that the volume isn't simply the volume of the box minus the volume of spheres.

11 Kommentare

darova
darova am 12 Mär. 2020
Do you have any ideas/attempts?
Casey Ricks
Casey Ricks am 12 Mär. 2020
The idea I have so far is to basically draw a tight box around the outermost spheres and then subtract the volume of the spheres from that volume. I am wondering if there might be something more elegant like calculating a surface integral for the sides, making a box from those, and then subracting the volume of the spheres from that new volume.
darova
darova am 12 Mär. 2020
What about this case?
Casey Ricks
Casey Ricks am 12 Mär. 2020
Bearbeitet: Casey Ricks am 12 Mär. 2020
Sphere boundaries are fixed. The shortest distance between the center points of two spheres is R2+R1.
Thanks for pointing that out.
darova
darova am 12 Mär. 2020
So why just substract volume of spheres from bounding box?
Casey Ricks
Casey Ricks am 12 Mär. 2020
Which bounding box are you referring to? I mean, how do you specify the height of the bounding box?
darova
darova am 12 Mär. 2020
What about convhull and alphashape?
Casey Ricks
Casey Ricks am 12 Mär. 2020
Yea, so right now I'm using convhull. I hadn't tried out alphashape yet, but I'll look into that function. Thank you.
Casey Ricks
Casey Ricks am 13 Mär. 2020
alphashape ended up working out even better than convhull. Thanks for your advice.
Turlough Hughes
Turlough Hughes am 13 Mär. 2020
Hey Casey,
Out if interest, how did you go about generating your xyzr data?
Casey Ricks
Casey Ricks am 14 Mär. 2020
Hello!
The data was generated in lammps.

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Kategorien

Gefragt:

am 12 Mär. 2020

Kommentiert:

am 14 Mär. 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by