Vibrating Lower Boundary – How to Implement?

I am interested in simulating a vibrating bed of particles, as depicted in these videos: one, two (not mine).

I have been reading the advanced tutorials, and they suggest that I will want to use keyframe data files to program the bottom boundary to periodically inflict a normal force (or impart a normal velocity) on the particles. In fact, they all make clear that “the STL faces do not move in our simulations.” However, I’m not sure this will adequately truly mimic a vibrating lower boundary.

What I imagine is, if the boundary imparts some normal velocity onto the particles whenever one strikes the surface, then that is not truly the same as the boundary itself vibrating according to some sinusoidal function. Rather than all the particles getting hit at once by the vibrating boundary, particles would just be “hit” whenever they impact the surface.

Is there any way to program moveable STL faces in MFiX, or can someone convince me that the above approach would be equivalent to a lower boundary that is truly moving?

Cheating by using a tangential velocity for a rotating drum is probably fine. But for your application, you are probably going to need to move the STL so that you get accurate collisions, specifically since all of the energy added to the system is through that collision (assuming this are granular flow, no fluid solve).

That being said, you could probably get away with moving the STL file, but are going to need very small DEM time steps so that you don’t get excessive overlap when you move the STL file. If you do get excessive overlap, then you will impart significantly more energy into the particles.

Not sure how exactly you would do this, I assume @jeff.dietiker has played with moving STLs.

1 Like

Thanks for your response. Yes, it is the case that this is a DEM granular flow, no fluid solve.

Is the mixer_3D simulation the same kind of cheat, or are the paddles in that simulation actually moving? I can’t find the same kind of documentation about that simulation.

Inspecting the file usr1_des.f from that simulation, it seems like the paddle .STL files really are being rotated by code at the end of the file, but I’m not certain. If so, I think this would be much closer to what I need.

Yes, mixer_3d is rotating STL files. As you pointed out in usr1_des.f:

! Rotate STL files        
        CALL Rotate_STL(is_1_group_id, 'Z', cyl_center(:), rot_angle(1))
        CALL Rotate_STL(is_2_group_id, 'Z', cyl_center(:), rot_angle(2))
1 Like

Thanks! Then perhaps I can start by reverse-engineering that simulation.

It seems like the files usr1_des.f, as well as usr0.f and possibly usr_mod.f, contain code specific to rotating paddles, so I’ll have to figure out what to keep and what to modify for my case.

Hi,
I have some experience in the topic. Some years ago we managed to simulate TFM vibrated beds by including a sinusoidal body force in the simulations. In fact, I managed to extend those TFM simulations to DEM, but I stopped working on that mainly due to limited computational resources, but I can confirm I managed to observe cyclic patterns in the vibrated system in shallow beds. I am still very interested in the topic, so we can always have a quick chat or even find ways to collaborate. Please see below a couple of our works:

A novel methodology for simulating vibrated fluidized beds using two-fluid models - ScienceDirect

Compressible-gas two-fluid modeling of isolated bubbles in a vertically vibrated fluidized bed and comparison with experiments - ScienceDirect

Hi All,
I also have some experience in this topic. We are studying a series of granular flow instabilities induced by vibrating a fluidized bed, using both experiments and simulations (TFM and CFD-DEM, mainly using MFiX). While it would be more accurate to simulate it based on moving the bottom plate, we are currently only doing the simulations by oscillating the gravity. We have discussed some of the problems with this modeling approach in the following two papers:
https://doi.org/10.1002/aic.17709
https://doi.org/10.1002/aic.17714

I am also looking forward to seeing a way to simulate vibrating fluidized bed by “actually vibrating” the bottom plate in MFiX

HELLO EVREYONE !!
Error: Solver crash!
The MFiX solver has terminated unexpectedly
Error information:
float divide by zero in __stl_preproc_des_MOD_add_facet_for_des
at des/stl_preproc_des_mod.f:235

I get this error message after adding the internal moving surfaces. When I run the mesh again, it doesn’t work and this is the error message
sphere.mfx (22.4 KB)
usr_mod.f (845 Bytes)
usr0.f (3.3 KB)
usr1_des.f (3.7 KB)
I’d like to add vibrations to the various plates of my sloping roof. If you can help me, that would be great. I’ve added “internal surfaces”: vibration 1,2,3,4 and 5 with the “Moveable” option.