I am simulating sand falling from a hopper to form a sandpile using a modification of the 3D DEM hopper tutorial. The simulation runs for long enough that I believe it should be totally settled, but rather than settle out, particles continue to randomly bounce up from the pile. It appears very unphysical.
I have attached a video of the simulation; it should show very clearly what the problem is.
I have attached screenshots of what I believe are all the relevant parameters. I have adjusted some of the physical parameters, including kn and COR; reducing their values appears to help the problem but not completely.
Could anyone suggest a fix for this problem of continuously bouncing particles? Are any of my simulation parameters really off? I would appreciate any guidance or ideas.
Here are the simulation files as well.
2022_05_31_SettleOut.zip (30.0 MB)
Try setting the “max steps between neighbor search” to 1 see if this helps.
Hi Jeff, thanks as always for your very helpful reply! That did indeed seem to fix the problem: the particles are much less bouncy, both at the end of the simulation and during the transient piling-up phase.
Could you give some detail as to what changing that parameter did, and why having “max steps between neighbor search” = 25 was causing that problem? I noticed that the simulation runs slower – would a value 1 ≤ N ≤ 25 work?
This simulation, with particle diameter = 0.002, came from tinkering with similar hopper-bin simulation but with particles of diameter = 0.02 m (order of magnitude larger). Does this logically lead to having to reduce “max steps between neighbor search," and might I need to change other properties to account for the much smaller diameter in my newer simulation?
When you have unphysical bouncing, it typically means some collisions are missed. This leads to excessive overlap between particles when the collision is eventually detected and creates a large force that sometimes looks like a weird bouncing or a burst of particles.
There are a few things to try to avoid this, all of which will make the simulation runs slower:
- max steps between neighbor search: reducing this value will force the list of neighbor particles to be rebuild. This will help capture collision but it is an expensive piece of the DEM algorithm. If it works with a value of 1, you can try to gradually increase it until you find a sweet spot (speed vs accuracy tradeoff).
- factor defining particle neighborhood: increase this number to include more neighbors. This will consider more neighbor particles as potentially colliding with a given particle and thus be slower as well.
- distance/diameter triggering search: decrease this number to automatically call the neighbor search if particles travel more than this threshold.
You can also increase the spring constant so particles are harder and don’t overlap too much. This will also slow down the simulation because the DEM time step will decrease when the stiffness increases.
If particles are moving fast, you can also increase the DEM time step factor. This will decrease the DEM time step as well, and can help capture collisions better.
This is very helpful. Thanks for such a detailed reply!