Solids pressure in DEM

Dear all,
I have noticed that when I work with the DEM there is not in-built way to check the solids pressure, while it can be done with the TFM. Does anyone know a way to ge the solids pressure with the DEM as well? I’m particularly interested in the pressure exerted by the solids on the walls.
Thanks!

1 Like

You need to write your own UDF to monitor the normal contact force and overlap between particle and wall, thus you can calculate the pressure

Thanks for your reply Gaoxi. Indeed I managed to obtain the particle-wall normal contact force through des_usr_var in calc_collision_wall.

Hi GaoXi,

I have a similar question for this. Do you have any suggested documents or references for this? Should we output the contact force and overlap, and then post process these data to obtain solid pressure, or should we add some codes to output solid pressure while running the simulation?

Thank you very much for your help.

As mentioned by fmarchelli, you can use des_usr_var to store the force and overlap or calculated pressure for each particle, then visualize or postprocess the results in GUI or Paraview.

1 Like

Hi,

in relation to this topic, I have actually other doubts. I will give you some more details and you can find attached my file: base_2020-02-27T135430.926674.zip (3.9 MB)

I am trying to do DEM simulations of static particles to study the distribution of the vertical and radial stress (similarly to this study https://doi.org/10.1016/j.powtec.2017.10.006). Very concisely, what is expected is that for low bed heights the solid pressure at the bottom is equal to the total weight of the particles divided by the bottom surface. If the bed height is increased, at a certain point the bottom pressure becomes constant due to the effect of wall friction forces.

My system is a simple cylindrical column in which particles are let settle. To get the value of the vertical normal contact force between each particle and the wall, I modified calc_collision_wall_mod including the line “DES_USR_VAR(1,LL) = FNORM(2)”, which seems to work fine.

The problem is that I get different (and unphysical) results depending on how I define the boundary conditions:

  • If (as in tutorial 3.5) I define a cylinder that overruns the domain and define it as wall, and then create a bottom surface that is also defined as a wall, I get solids pressure values that are much lower than what I expect, especially at low bed heights.
  • If I define a cylinder that is entirely comprised in the domain and set it as wall, the solids pressure doubles and I get values that in some cases are larger than the total weight of the particles divided by the bottom surface.
  • The same happens if I do as in the first procedure, but define the bottom as a Mass Inflow (which should be the same as a wall for particles).

To sum up, I think I am doing something wrong with the calculations since the results I get are always somehow unphysical, but I also don’t understand why the results depend on how I create the geometry and boundary conditions.

Thanks,

Filippo

Can you also test only one particle settling in the cylinder at the three different boundary conditions for the bottom, which is easier to check if the normal force is equal to particle weight and also exclude the cylindrical wall effect?

Thanks a lot for the suggestion! Indeed with the setup 2 and 3 the normal force is equal to the weight of one particle, whereas with setup 1 the normal is equal to half of its weight. This is also coherent with the fact that I got reasonable values at low bed heights with setup 2 and 3.

Now I just need to understand why at higher bed heights I get these overestimated pressure values. I am running some preliminary simulations and the calculated solid pressure seems to decrease when I increase the spring constant, but I still haven’t reached an asymptotic condition.

Hi, gaoxi

I am a DEM newer, i’d like to ask you if it’s possible to record the forces on each particle from other particles at each time step. Can the direction of force be also recorded?

Thank you.

You can use des_usr_var(L, N) to store any variables associated with L particle. For example, if L particle has 5 neighbors, you want to save the neighbors ID, contact force Fnx, Fny, Fnz, you need to set des_usr_var_size=20=5*(1+1+1+1). Then you can visualize the value of des_usr_var in ParaView or postprocessing.

3 Likes