STL method for 2D

Hello,

I am trying to simulate a rotating drum as the one in dem tutorials, but i would like to do it in 2D, however, i get a message error telling me that “STL method is valid only in 3D”. Is it possible to use STL method in 2D ??? If not, could anyone give me some alternative tips to create a boundary condition for a 2D rotating drum using mfix GUI ?
Thank you.

An STL file is inherently 3D and cannot be used in 2D simulations. You could however do a pseudo-2D simulation by only having one cell in the third direction (say the z-direction). Just extend the STL file in the z-direction so it sticks out of the domain to get a cleaner intersection.

Thank you for your quick answer

Do I have to modify the STL file or just the .mfx one ? Here is my .mfx, how can i change it to do a pseudo-2D ??

Run Controls

description = ‘MFiX Simulation’
run_name = ‘rotating_drum’
units = ‘SI’
run_type = ‘new’
time = 0.0
tstop = 2.0
dt = 1.0000e-03
dt_min = 1.0000e-07
dt_max = 1.0000e-04
res_dt = 0.1
batch_wallclock = 9000.0
chk_batchq_end = .True.
drag_c1 = 0.8
drag_d1 = 2.65
drag_type = ‘SYAM_OBRIEN’
turbulence_model = ‘NONE’
energy_eq = .False.
nodesi = 1
nodesj = 1
nodesk = 1
term_buffer = 180.0
write_dashboard = .False.
full_log = .True.
momentum_x_eq(0) = .False.
momentum_y_eq(0) = .False.
momentum_z_eq(0) = .False.
project_version = ‘7’
read_kf(1) = .True.
species_eq(0) = .False.
species_eq(1) = .False.

Physical parameters

gravity_x = 0.0
gravity_y = -9.80665
gravity_z = 0.0

Cartesian grid

cartesian_grid = .True.
tol_small_area = 0.01
tol_small_cell = 0.0
use_stl = .True.

Numeric

detect_stall = .True.
max_nit = 50

Geometry

coordinates = ‘CARTESIAN’
imax = 10
jmax = 10
kmax = 10
x_max = 0.05
x_min = -0.05
y_max = 0.052
y_min = -0.048
z_max = 0.1
z_min = 0.0

Fluid

mu_g0 = 1.8000e-05
mw_avg = 29.0
ro_g0 = 0

Solids

mmax = 1

Solid 1

solids_model(1) = 'DEM'
d_p0(1)         = 0.005
ro_s0(1)        = 2000.0
nmax_s(1)       = 0
k_s0(1)         = 1.0
ks_model(1)     = 'MUSSER'

Initial conditions

Initial condition 1: Background IC

ic_x_e(1)               = 0.05 #!MFIX-GUI eq{float(xmax)}
ic_x_w(1)               = -0.05 #!MFIX-GUI eq{float(xmin)}
ic_y_s(1)               = -0.048 #!MFIX-GUI eq{float(ymin)}
ic_y_n(1)               = 0.052 #!MFIX-GUI eq{float(ymax)}
ic_z_b(1)               = 0.0 #!MFIX-GUI eq{float(zmin)}
ic_z_t(1)               = 0.1 #!MFIX-GUI eq{float(zmax)}
ic_des_fit_to_region(1) = .False.
ic_ep_g(1)              = 1.0
ic_t_g(1)               = 293.15
ic_u_g(1)               = 0.0
ic_v_g(1)               = 0.0
ic_w_g(1)               = 0.0
ic_ep_s(1,1)            = 0.0
ic_t_s(1,1)             = 293.15
ic_theta_m(1,1)         = 0.0
ic_u_s(1,1)             = 0.0
ic_v_s(1,1)             = 0.0
ic_w_s(1,1)             = 0.0

Initial condition 2: Initial Particles

ic_x_e(2)               = 0.035
ic_x_w(2)               = -0.035
ic_y_s(2)               = -0.035
ic_y_n(2)               = 0.035
ic_z_b(2)               = 0.01
ic_z_t(2)               = 0.09
ic_des_fit_to_region(2) = .False.
ic_ep_g(2)              = 0.5
ic_t_g(2)               = 293.15
ic_u_g(2)               = 0.0
ic_v_g(2)               = 0.0
ic_w_g(2)               = 0.0
ic_ep_s(2,1)            = 0.5
ic_t_s(2,1)             = 293.15
ic_theta_m(2,1)         = 0.0001
ic_u_s(2,1)             = 0.0
ic_v_s(2,1)             = 0.0
ic_w_s(2,1)             = 0.0

Boundary conditions

Boundary condition 1: wall

bc_type(1)  = 'CG_NSW'
bc_x_e(1)   = 0.05 #!MFIX-GUI eq{float(xmax)}
bc_x_w(1)   = -0.05 #!MFIX-GUI eq{float(xmin)}
bc_y_s(1)   = -0.048 #!MFIX-GUI eq{float(ymin)}
bc_y_n(1)   = 0.052 #!MFIX-GUI eq{float(ymax)}
bc_z_b(1)   = 0.0 #!MFIX-GUI eq{float(zmin)}
bc_z_t(1)   = 0.1 #!MFIX-GUI eq{float(zmax)}
bc_jj_ps(1) = 0
bc_uw_g(1)  = 0.0
bc_vw_g(1)  = 0.0
bc_ww_g(1)  = 0.0

Boundary condition 2: bottom

bc_type(2) = 'MI'
bc_x_e(2)  = 0.05 #!MFIX-GUI eq{float(xmax)}
bc_x_w(2)  = -0.05 #!MFIX-GUI eq{float(xmin)}
bc_y_s(2)  = -0.048 #!MFIX-GUI eq{float(ymin)}
bc_y_n(2)  = -0.048 #!MFIX-GUI eq{float(ymin)}
bc_z_b(2)  = 0.0 #!MFIX-GUI eq{float(zmin)}
bc_z_t(2)  = 0.1 #!MFIX-GUI eq{float(zmax)}
bc_ep_g(2) = 1.0
bc_p_g(2)  = 101325.0
bc_t_g(2)  = 293.15
bc_u_g(2)  = 0.0
bc_v_g(2)  = 0.0
bc_w_g(2)  = 0.0
# Solid 1
  bc_ep_s(2,1) = 0.0
  bc_t_s(2,1)  = 293.15
  bc_u_s(2,1)  = 0.0
  bc_v_s(2,1)  = 0.0
  bc_w_s(2,1)  = 0.0

Boundary condition 3: right

bc_type(3) = 'PO'
bc_x_e(3)  = 0.05 #!MFIX-GUI eq{float(xmax)}
bc_x_w(3)  = 0.05 #!MFIX-GUI eq{float(xmax)}
bc_y_s(3)  = -0.048 #!MFIX-GUI eq{float(ymin)}
bc_y_n(3)  = 0.052 #!MFIX-GUI eq{float(ymax)}
bc_z_b(3)  = 0.0 #!MFIX-GUI eq{float(zmin)}
bc_z_t(3)  = 0.1 #!MFIX-GUI eq{float(zmax)}
bc_p_g(3)  = 101325.0

VTK outputs

write_vtk_files = .True.
time_dependent_filename = .True.

VTK output 1: Background IC

vtk_filebase(1)         = 'particles'
vtk_x_e(1)              = 0.05 #!MFIX-GUI eq{float(xmax)}
vtk_x_w(1)              = -0.05 #!MFIX-GUI eq{float(xmin)}
vtk_y_s(1)              = -0.048 #!MFIX-GUI eq{float(ymin)}
vtk_y_n(1)              = 0.052 #!MFIX-GUI eq{float(ymax)}
vtk_z_b(1)              = 0.0 #!MFIX-GUI eq{float(zmin)}
vtk_z_t(1)              = 0.1 #!MFIX-GUI eq{float(zmax)}
vtk_data(1)             = 'P'
vtk_dt(1)               = 0.01
vtk_nxs(1)              = 0
vtk_nys(1)              = 0
vtk_nzs(1)              = 0
vtk_part_angular_vel(1) = .True.
vtk_part_diameter(1)    = .True.
vtk_part_id(1)          = .True.
vtk_part_rank(1)        = .True.
vtk_part_vel(1)         = .True.

SPx outputs

spx_dt(1) = 0.1
spx_dt(2) = 0.1
spx_dt(3) = 0.1
spx_dt(4) = 0.1
spx_dt(5) = 0.1
spx_dt(6) = 0.1
spx_dt(7) = 0.1
spx_dt(8) = 0.1
spx_dt(9) = 0.1
spx_dt(10) = 1.0
spx_dt(11) = 1.0

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’

Discrete element model

des_coll_model = ‘LSD’
des_en_input(1) = 0.95
des_en_wall_input(1) = 0.9
des_etat_fac = 0.5
des_etat_w_fac = 0.5
des_interp_mean_fields = .False.
des_interp_on = .False.
des_interp_scheme = ‘NONE’
des_intg_method = ‘EULER’
gener_part_config = .True.
kn = 10000.0
kn_w = 10000.0
kt_fac = 0.28571428571429 #!MFIX-GUI eq{float(2/7)}
kt_w_fac = 0.28571428571429 #!MFIX-GUI eq{float(2/7)}
mew = 0.3
mew_w = 0.3

Two-fluid model

c_e = 0.95
c_f = 0.1
ep_star = 0.42
friction_model = ‘SCHAEFFER’
kt_type = ‘ALGEBRAIC’
phi = 30.0
phi_w = 11.3

UDF control

call_usr = .True.
des_usr_var_size = 1

Hello, have you solved your problem?

1 Like