Particle not moving in a packed manner

I am simulating packed bed of particles through a channel in mfix dem (pure granular flow). I could able to simulate moving particles using initial condition of some particles. I have given the cyclic boundary condition in the domain. I notice that particles are not moving in a packed manner. How to control their velocity to make them flow in a packed manner?

Please provide more details of what you see (add animation to show your results). How packed is the initial condition?

Initially its packed with 16000 particles.

But after starting the simulation. The particles get dispersed and moves without packing.

Boundary conditions:
x-cyclic
walls: no slip

How to make the particle bed move in packed manner or how to control the velocity of the particle bed?

The initial condition is not fully packed, there is enough room for particles to move around. This is why they disperse. You could first run a simulation with a taller domain and a wall at the bottom, let the particles settle until fully packed. Check “save particles at end of run” in the Output>Basic pane. Then copy particle_output.csv into particle_inpu.csv in a new project directory. Use this as initial condition to start the simulation with cyclic BC.

I have tried this method. The issue in this method is we can’t control the velocity or mass flow rate of the moving bed.

You can write a UDF that sets the particle velocity along a slab near the top or bottom. This should be close to what you want. Again, you cannot set a cyclic BC and an outlet BC velocity at the same time, this is an ill-posed BC.

So udf can help in setting particle x velocity or constant mass flow rate during cyclic condition?
Can you help me with to write the subroutines? I am new with udf in mfix.

cfnewvalues.f (41.5 KB)
cyclic_DEM.mfx (5.6 KB)

Please see attached. I set up a DEM simulation with cyclic BCs in x-direction. Line 704 of cfnewvalues.f overwrites the particle velocity to 0.1 m/s in the negative x-direction when particles are between 0<=x<=0.05m. You can adapt to your needs. I used MFiX 25.1. You will need to put the two attached files in the same directory, and build the project solver (wrench icon in GUI). Then when you run the simulation, make sure you select the “project/mfixsolver” solver.

Thanks a lot for helping in this regard.

The velocity contour isn’t looking what is expected. There should be low velocity zone just above the cylinder and the sides of the cylinder should have high velocity zones. I am getting weird contour.

The contour should be something similar to this.

Please attach your files (Main menu, submit bug report, attach the zip file), and give a full description of how you setup the simulation, and what you have tried to troubleshoot. It is always better to give a lot of information, otherwise we can’t provide support.

Actually I think we have to control velocity magnitude at the outlet 0.0254m, not x-velocity component. This may work.

Please help me edit the udf.

cfnewvalues.f (42.5 KB)

Here is the attached file. Velocity magnitude contour is not varying.

pinfin_cyclic.zip (35.3 MB)

pinfin_3mm_9.97_2025-05-23T105719.772502.zip (22.7 MB)

There are several issues with your setup:

  1. You are setting the particle velocity over the entire domain. You should only set it along a small region near the top or bottom to force the flow rate you want across the cyclic BC.
  2. You used Hertz model with large Youngs modulus and overwrote the DEM time step several orders of magnitude larger than the recommended value. This may lead to missed collisions and unphysical behavior.
  3. The rolling friction seems to create a jam, preventing particles from flowing.
  4. You defined both a wall BC and an internal surface with the stl files, this is redundant.

I have setup a simulation (see attached zip file) where:

  1. Particle velocity is overwritten along a 1mm region near the xmax plane. The x-component is set to 0.0604621 m/s while the y and z components are set to zero.
  2. I switched to LSD model and used the recommended DEM time step.
  3. I turned off rolling friction.
  4. I only used one stl file for the cylinder.

I get similar qualitative velocity distribution as the reference you used (showing half-domain):

Make sure you use MFiX 25.1.2 version to run the attached setup.

Thank you so much.

Yet there are two issues which needs to be resolved:

  1. The local velocity magnitude (red color) around the cylinder is less. How to increase that?
  2. Rolling friction coefficient for both particle-particle and particle-wall needs to be given. But I have checked no matter what values I put, its not feasible.

Below is the simulation having rolling friction and 0.07m/s velocity.

You may have to adjust other particle properties (spring stiffness, restitution coefficient, friction coefficients) to get closer to your reference data.

I properties that have been provided is with reference to existing literature paper. If I need to keep these properties constant, is there any other alternative solution?

Alternative approach:

  1. Is it possible if I set constant mass flow rate at the bottom instead of fixing velocity? If yes, how should I do that?

  2. If I set mass outflow with x axial velocity in mfix gui, whether x-cyclic can be made in udf?

I can’t think of alternative approaches. Others may have a better solution.

What are the particles in the real world? Are they spheres?

I am considering constant diameter for all particles. All are perfect sphere.