How to simulate a bed with a perforated distributor plate

Jaber, i commented on cfd-dem grid size previously and what you need to do if you cant live with djet = dx > dp. I suggest getting your hands on some of jesse’s papers and review them if you’re going to go down this route, google scholar search: “capecelatro desjardins fox”, JCP, JFM, PoF ones all might be helpful. my rough recommendation atm is to use a diffusion filter length = max(4dx, 2dp).

Thank you William. Sure.

Regards,
Jaber

Hi, Wfullmer,

I want  to simulate a spouted bed with an orifice. The MFIX version I used is 19.2.2. The dp = 3 mm, the length of orfice is 5 mm. The orifice is divided into 2 grids, and then the dx/dp = 0.84. Accoding to your recommendation, the diffusion equation with a Gaussian kernel distribution was used in my case. However, the case runs well on my computer with a single CPU while it crushes with parallel computation (4 CPU or 8 CPU). Is it the bug of the implementation of diffusion equation + Gaussian kernel in MFIX under parallelization simulation?

The error is:

The file is attached.
SFB_test.zip (39.0 KB)

I’ve used the diffusion method on up to 120 cores, so there shouldn’t be anything inherently wrong with running it in parallel. can you upload your .mfx or mfix.dat file? The zip file seems to be corrupt or something.

My mfix.dat is summarized as follows, and the case refers to the published article : Goniva C, Kloss C, Deen N G, et al. Influence of rolling friction on single spout fluidized bed simulation[J]. Particuology, 2012, 10(5): 582-591.
Goniva_2012_POW_Influence of rolling friction on single spout fluidized bed simulation
run_name = ‘SFB’
description = ‘A three-dimensional spout fluidized bed with an injection’

#_______________________________________________________________________

RUN CONTROL SECTION

!RUN_TYPE = ‘restart_1’
RUN_TYPE = ‘NEW’
UNITS = ‘SI’

TIME = 0.0
TSTOP = 10.0

DT = 1.0d-5
DT_MAX = 1.0d-4
DT_MIN = 1.0d-7

MOMENTUM_X_EQ(0) = .True.
MOMENTUM_Y_EQ(0) = .True.
MOMENTUM_Z_EQ(0) = .True.

ENERGY_EQ = .F.
SPECIES_EQ = .F. .F.

DRAG_TYPE = ‘KOCH_HILL’
drag_c1 = 0.8
drag_d1 = 2.65

GRAVITY_Y = -9.80665

DES_EXPLICITLY_COUPLED = .True.

DES_INTERP_MEAN_FIELDS = .True. ! Enables/Disables interpolation of particle data (e.g., solids volume and drag force) &
! from a particle’s position to the Eulerian grid.
DES_DIFFUSE_WIDTH = 0.003 ! dp. The length scale used to smooth dispersed phase averaged fields by solving a diffusion equation.

DES_INTERP_ON = .True.
DES_INTERP_SCHEME = ‘SQUARE_DPVM’
DES_INTERP_WIDTH = 0.004 ! dp. The interpolation half-width cannot exceed the minimum cell dimension because
! interpolation is restricted to the 27-cell neighborhood surrounding a particle

#_______________________________________________________________________

NUMERICAL SECTION

MAX_NIT = 100
TOL_RESID = 1.0d-3

#_______________________________________________________________________

GEOMETRY SECTION

COORDINATES = ‘CARTESIAN’

X_MIN = 0.0
X_MAX = 0.145
Y_MIN = 0.0
Y_MAX = 1.0
Z_MIN = 0.0
Z_MAX = 0.02

IMAX = 58 ! delta_x = 0.0025 m = 0.84 dp
JMAX = 400 ! delta_y = 0.0025 m = 0.84 dp
KMAX = 8 ! delta_z = 0.0025 m = 0.84 dp

! Search grid for DEM, larger than two times of particle diamter
DESGRIDSEARCH_IMAX = 15 ! DES_delta_x = 0.97 cm > 2.0 dp = 0.6 cm
DESGRIDSEARCH_JMAX = 100 ! DES_delta_y = 1.0 cm > 2.0 dp = 0.6 cm
DESGRIDSEARCH_KMAX = 2 ! DES_delta_z = 1.0 cm > 2.0 dp = 0.6 cm

#_______________________________________________________________________

MATERIAL SECTION

! Gas Section
!---------------------------------------------------------------------//
MU_G0 = 1.98d-5 ! constant gas viscosity (kg/m.s)
RO_G0 = 1.1 ! constant gas density (kg/m3)

! PARTICLE SECTION
!---------------------------------------------------------------------//
mmax = 1
PARTICLES = 12000 ! Number of particles

! Normal collision spring constant (N/m)
KN = 1.0d3 ! inter-particle
KN_W = 1.0d3 ! particle-wall

! Friction coefficient. (1)
MEW = 0.10 ! particle-particle
MEW_W = 0.35 ! particle-wall

! Restitution coefficient. (1)
DES_EN_INPUT = 0.97 ! particle-particle
DES_EN_WALL_INPUT = 0.97 ! particle-wall

NFACTOR = 0 ! No initial settling

DES_NEIGHBOR_SEARCH = 4 ! Neighbor search
NEIGHBOR_SEARCH_N = 5 ! Search frequency
NFACTOR = 5000 ! DEM settling period in no. of loops

! Solids phase 1:
!---------------------------------------------------------------------//
SOLIDS_MODEL(1) = ‘DEM’

RO_s0(1) = 2505 ! solids density (kg/m3)
D_p0(1) = 0.003 ! particle diameter(m)

#_______________________________________________________________________

INITIAL CONDITIONS SECTION

! Initial Bed, sand
!---------------------------------------------------------------------//
IC_X_w(1) = 0.00 ! (m)
IC_X_e(1) = 0.145 ! (m)
IC_Y_s(1) = 0.00 ! (m)
IC_Y_n(1) = 1.00 ! (m)
IC_Z_b(1) = 0.00 ! (m)
IC_Z_t(1) = 0.02 ! (m)

IC_EP_g(1) = 1.00 ! (-)

IC_P_g(1) = 0.0 ! (Pa -> 1 atm)

IC_U_g(1) = 0.0 ! (m/sec)
IC_V_g(1) = 0.0 ! (m/sec)
IC_W_g(1) = 0.0 ! (m/sec)

Boundary condition 1: top

!---------------------------------------------------------------------//
BC_X_w(1) = 0.0
BC_X_e(1) = 0.145
BC_Y_s(1) = 1.0
BC_Y_n(1) = 1.0
BC_Z_b(1) = 0.0
BC_Z_t(1) = 0.02

BC_TYPE(1)= ‘PO’
BC_P_g(1) = 0

Boundary condition 2: bottom-left

!---------------------------------------------------------------------//
BC_X_w(2) = 0.0
BC_X_e(2) = 0.07
BC_Y_s(2) = 0.0
BC_Y_n(2) = 0.0
BC_Z_b(2) = 0.0
BC_Z_t(2) = 0.02

BC_TYPE(2)= ‘MI’

BC_EP_g(2)= 1.0
BC_P_g(2) = 0

BC_U_g(2) = 0.0
BC_V_g(2) = 2.4
BC_W_g(2) = 0.0

Boundary condition 2: central orifice

!---------------------------------------------------------------------//
BC_X_w(3) = 0.070
BC_X_e(3) = 0.075
BC_Y_s(3) = 0.0
BC_Y_n(3) = 0.0
BC_Z_b(3) = 0.0
BC_Z_t(3) = 0.02

BC_TYPE(3)= ‘MI’

BC_EP_g(3)= 1.0
BC_P_g(3) = 0

BC_U_g(3) = 0.0
BC_V_g(3) = 43.5
BC_W_g(3) = 0.0

Boundary condition 2: bottom-right

!---------------------------------------------------------------------//
BC_X_w(4) = 0.075
BC_X_e(4) = 0.145
BC_Y_s(4) = 0.0
BC_Y_n(4) = 0.0
BC_Z_b(4) = 0.0
BC_Z_t(4) = 0.02

BC_TYPE(4)= ‘MI’

BC_EP_g(4)= 1.0
BC_P_g(4) = 0

BC_U_g(4) = 0.0
BC_V_g(4) = 2.4
BC_W_g(4) = 0.0

#_______________________________________________________________________

OUTPUT CONTROL SECTION

RES_DT = 0.05 ! Interval at which restart (.res) file is updated.

SPX_DT(1:10) = 10*0.05 !Interval at which .SPX files are written

FULL_LOG = .T. ! Display residuals on screen
PRINT_DES_DATA = .T. ! Allows writing of discrete particle data to output files.

WRITE_VTK_FILES = .T.
TIME_DEPENDENT_FILENAME = .T.

VTK_PART_DIAMETER(1) = .TRUE.
VTK_PART_VEL(1) = .TRUE.

VTK_DT = @(1.0/32.0)
VTK_VAR(1) = 1 ! EP_g
VTK_VAR(2) = 3 ! U_g, V_g, W_g

Residuals

! GROUP_RESID = .T. ! Group residuals
resid_string(1) = ‘P0’
resid_string(2) = ‘P1’
resid_string(3) = ‘U0’
resid_string(4) = ‘V0’
resid_string(5) = ‘U1’
resid_string(6) = ‘V1’

#_______________________________________________________________________

DMP SETUP

NODESI = 2 NODESJ = 4 NODESK = 1

ENABLE_DMP_LOG = .F. ! All ranks write error messages.
CHK_BATCHQ_END = .F. ! Enable the controlled termination feature

2 Likes

Although it has been a long time since your comment, I have also encountered this problem now, so I wanted to ask about it. If the particles are larger than the grid, in addition to the possibility that the volume fraction of the fluid within a cell will be 0, there is a larger problem of parallelism. Mfix seems to partition the processors according to the regions divided by the fluid grid. If the particle is too large, the particle will collide with particles in other processors, but such collisions cannot be calculated. Do you have any solutions or ideas for this?

I am not sure about this, but does just setting your DES grid to something reasonable (2 or 3dp) fix this? I haven’t used this in a long time so I’m not sure if the halo exchange is based on the fluid grid or the des grid.