How to pack solid at the bottom of the tube?

Hi everyone,

I’m trying to build a 2 phase flow system where air goes up through sand without fluidizing it, so the sand acts like a filter. However, when I tried to build this system in mfix by setting the solid volume fraction in initial conditions to be 20%, I saw the sand being uniformly distributed in the tube at time 0.

It is not physical for our system because sand should accumulate at the bottom of the tube due to gravity. Does anyone know how to change the settings in mfix so that all my solid stays at the bottom of my tube at time 0? Thanks!

Jack

It is very difficult to initialize a maximum solid packing at time 0. You need to run several seconds to let the sands setting to the bottom of the tube and form a close packing. Then you assume this as the time zero and change the gas flow inlet velocity to the desired one.

I see. Thank you Gaoxi! So I basically need to run a 2-step process: let the sand fall without any air input, then input air after the sand settles. How can I do this kind of 2-step processes please?

That’s right.
First, run the simulation for several seconds with gas inlet velocity set to zero, then change the gas velocity and restart.

Is there a way to automate this process though? I need to run 1,000 simulations in the cluster. It’s not realistic for me to pause, change, then restart like how I do it in the GUI. Could you point me to some resources on how to automate this process? Thanks!

Is it a TFM or DEM simulation?

If DEM:

  • Option 1: You can run a number of granular flow iterations at the beginning of the run. For example set nfactor=1000 to automatically run 1000 granular flow iterations before the coupled gas/solids flow starts.

  • Option 2: Activate the MI BC after some time: set bc_mi_start_time(2) = 1.0 to have the mass inlet start at time=1.0 second.

  • Option 3: Run the simulation till say TSTOP=1.0 and set write_part_out = .True. and ```part_out_zero_vel = .True.````. This will write a particle_output.dat file at the end of the simulation. Rename this file as particle_input.dat and use this as initial condition for another run. You can automate this in your job submission script.

If TFM: You can turn momentum equations off for a solids phase and have a fixed bed. Set momentum_x_eq(1) = .False. to turn of momentum equation in the x-direction for phase 1. Repeat for y and z directions (momentum_y_eq(1) = .False., momentum_z_eq(1) = .False.)

2 Likes

Thank you Jeff! So I see that can turn the inlet velocity off or turn off the momentum equation in the .mfx file for phase 1, but how can I turn it back on at the beginning of phase 2? More specifically, how can I resume the simulation using results from phase 1 as IC for phase 2 in command line? I figured out how to do it in GUI but not from command line. Thanks a lot for your help!

You usually cannot swap phases between runs unless they are the same. The GUI basically sets up keywords in the .mfx file. The keywords settings are displayed in the GUI’s console (bottom right) so you can repeat the same settings if you manually edit a .mfx file.

Sorry I’m confused. I think I know how to switch the values associated with keywords like “BC_u_g” in command line, but what I couldn’t figure out was how to start another process after changing the values. In GUI I can click on “resume” and select “use as initial condition,” but in command line what should I do to run the result of the previous simulation as IC? Thanks!

When you do this from the GUI, it sets run_type = 'restart_2' and then it prompts you to delete the .SP* and vtk files.

So if you run form command line, edit the .mfx file and set run_type = 'restart_2'. Then manually delete the .SP* files and vtk files (.vtu, .vtp, .pvd). Make sure you keep the .RES file (restart file).

OK I see. That makes sense now. Thanks a lot Jeff!