Granular Impactor


Here’s an animation of something I set up for @ebreard6 recently. Happy Friday!

Approximately 1M particles settle under gravity from a pseudo-random initial configuration with a slight granular temperature. The particle density is 2500 kg/m^3 with a uniform distribution of particle diameters from 640 to 960 micron, mean of 800 micron. The domain is square 100 x 100 mean diameters and four times as tall. At time 0.4 s, most of the particles have settled and the simulation is restarted by removing all particles above 100 mean diameters and a large impactor particle of diameter 4.8 mm is placed in the center of the domain at an elevation of 12 cm with a large negative velocity. The impactor is frozen for 1 ms in an attempt to allow any perturbation from the restart to settle. It turns out that this is not sufficient; note that only the particle locations were retained on restart, losing information about the collision history. The polydispersity neighbor search algorithm is applied with a refinement factor of 5. A better approach may be to include the impactor from the start and freeze its position for approximately twice as long, i.e., 0.8 s, before releasing it in one continuous simulation.

4 Likes

Super! How long did it take to settle the bed for 0.4s and with what resources?

10.5 hrs on an H100. This is slower than it should be because I was using the background mesh that gets applied when the impactor is placed in there. At first, I used a nice background mesh for just the small particles, but then there was a big perturbation at restart due to the levelset for the particles being constructed with the smaller mesh. I think, if you do something like have a nice factor of 2 difference between those meshes and then you use a LS refinement factor of 2, it might produce the same levelset and then you can get faster settling without a large perturbation from a “new” geometry. But I was lazy and just let it settle with a coarse background mesh.