void volume

49 views
Skip to first unread message

Mohammad Wasfi

unread,
May 22, 2022, 6:44:57 PM5/22/22
to ProjectChrono
Hello there, 

I am using the GPU module to initiate a bed of particles and let it settle. I have been able to do that successfully. Now, I am trying to control the void volume of the bed using the void ratio value. To do so, I need to determine the maximum and minimum x and y positions of the particles to find the most accurate cross-sectional area of the bed. I was wondering of a way to do this similarly to using the getMaxParticleZ. If that's not possible, is there a Chrono function under the GPU module that can directly find the void ratio?

Finally, do you have any suggestions for controlling the void volume of a bed of particles? 


Thank you so much,

Mohammad Wasfi

unread,
May 22, 2022, 7:18:54 PM5/22/22
to ProjectChrono
This is the file that I am currently using. I have my calculations for the void ratio at the very end if you need to look at it.
Thank you so much

test.cpp

Luning Fang

unread,
May 25, 2022, 2:04:42 PM5/25/22
to ProjectChrono
Hello,

When you determine the volume of  the settled particles, make sure that the top of the surface of the settled particles is flat. When I run the code, the particles appear to stick to the side of the wall, since GetMaxParticleZ() is used to determine the top of the particles, there would be extra space on top. See the figure attached.

Screenshot from 2022-05-25 10-17-16.png

Since you've implemented your own cohesion/surface tension model, this might result in more particles sticking to the wall, and a larger void ratio.

Here are what you can do to get a better approximation of the void ratio:
  1. Rest a weighted plate on top (see a direct shear example here, this script has void ratio computation as well)
  2. Push a boundary plane (BCPlane) downward (see demo_GPU_movingBoundary)
  3. Remove the particles on top that's not even, you can use SetParticlePosition(int sphereID, const ChVector<double> pos) to move them somewhere.
  4. If you don't want to change the surface profile, you can find a cubic domain (like 16*16*5 cm) of particles within the settled ones, and use those for void ratio calculations. You can write a subroutine to count the number of particles in that domain.
I approximated the top surface as a flat one, I got a void ratio of 0.67. If you want smaller void ratio, you can add different weight on top or turn off friction.

Thank you,
Luning
Reply all
Reply to author
Forward
0 new messages