14 USE discretelement
, only: gener_part_config
16 USE discretelement
, only: do_old
18 USE discretelement
, only: des_mmax
20 USE discretelement
, only: des_intg_method
21 USE discretelement
, only: intg_adams_bashforth
22 USE discretelement
, only: intg_euler
24 USE discretelement
, only: des_neighbor_search
26 USE discretelement
, only: des_output_type
28 USE discretelement
, only: max_radius, min_radius
30 USE discretelement
, only: des_periodic_walls
31 USE discretelement
, only: des_periodic_walls_x
32 USE discretelement
, only: des_periodic_walls_y
33 USE discretelement
, only: des_periodic_walls_z
74 DO m = mmax+1,des_mmax+mmax
75 max_radius = max(max_radius, 0.5d0*d_p0(m))
76 min_radius = min(min_radius, 0.5d0*d_p0(m))
93 momentum_x_eq((mmax+1):
dim_m) = .false.
94 momentum_y_eq((mmax+1):
dim_m) = .false.
95 momentum_z_eq((mmax+1):
dim_m) = .false.
98 des_periodic_walls_x = cyclic_x .OR. cyclic_x_pd
99 des_periodic_walls_y = cyclic_y .OR. cyclic_y_pd
100 des_periodic_walls_z = cyclic_z .OR. cyclic_z_pd
102 des_periodic_walls = (des_periodic_walls_x .OR. &
103 des_periodic_walls_y .OR. des_periodic_walls_z)
107 IF(trim(
run_type) .NE.
'NEW') gener_part_config = .false.
110 SELECT CASE(des_neighbor_search)
113 WRITE(
err_msg,2001) 2,
'QUADTREE' 116 WRITE(
err_msg,2001) 3,
'OCTREE' 120 WRITE(
err_msg,2001) des_neighbor_search,
'UNKNOWN' 123 2001
FORMAT(
'Error 2001:Invalid DES_NEIGHBOR_SEARCH method: ',i2,1x, &
124 a,/
'Please correct the mfix.dat file.')
130 IF(des_output_type ==
undefined_c) des_output_type =
'PARAVIEW' 131 SELECT CASE(trim(des_output_type))
135 WRITE(
err_msg,2010) trim(des_output_type)
138 2010
FORMAT(
'Error 2010:Invalid DES_OUTPUT_TYPE: ',a,/
'Please ',
139 'correct the mfix.dat file.')
145 SELECT CASE(trim(des_intg_method))
148 intg_adams_bashforth = .false.
150 CASE (
'ADAMS_BASHFORTH')
152 intg_adams_bashforth = .true.
155 WRITE(
err_msg,2020) trim(des_intg_method)
158 2020
FORMAT(
'Error 2020:Invalid DES_INGT_METHOD: ',a,/
'Please ', &
159 'correct the mfix.dat file.')
163 do_old = intg_adams_bashforth .OR.
mppic 211 use discretelement
, only: des_explicitly_coupled
212 use discretelement
, only: des_mmax
213 use discretelement
, only: des_continuum_coupled
238 CALL init_err_msg(
"CHECK_SOLIDS_COMMON_DISCRETE_ENERGY")
242 calc_conv_des = des_continuum_coupled
243 DO m = mmax+1, mmax+des_mmax
253 SELECT CASE(trim(des_conv_corr))
258 des_conv_corr_enum = ranz_1952
262 WRITE(
err_msg,1001)
'DES_CONV_CORR', trim(des_conv_corr)
270 DO m = mmax+1, mmax+des_mmax
278 IF(units ==
'SI')
THEN 279 sb_const = 5.6704d0*(10.0d0**(-8))
281 sb_const = 1.355282d0*(10.0d0**(-12))
286 SELECT CASE(des_interp_scheme_enum)
289 WRITE(
err_msg,2000) trim(adjustl(des_interp_scheme))
293 2000
FORMAT(
'WARNING 2000: The selected interpolation scheme (',a, &
294 ') is not',/
'supported by the DES energy equation implemen', &
295 'tation. All energy',/
'equation variables will use the ', &
296 'centroid method for interphase',/
'data exchange.')
298 IF(des_explicitly_coupled)
THEN 303 2100
FORMAT(
'Error 2100: The DES Energy equation implementation ', &
304 'does not',/
'currently support explicit coupling (DES_', &
305 'EXPLICITLY_COUPLED).',/
'Please correct the mfix.dat file.')
312 1000
FORMAT(
'Error 1000: Required input not specified: ',a,/
'Please ',&
313 'correct the mfix.dat file.')
315 1001
FORMAT(
'Error 1001: Illegal or unknown input: ',a,
' = ',a,/ &
316 'Please correct the mfix.dat file.')
335 use discretelement
, only: des_explicitly_coupled
349 CALL init_err_msg(
"CHECK_SOLIDS_COMMON_DISCRETE_THERMO")
357 9003
FORMAT(
'Error 9003: The stiff chemistry solver is not ', &
358 'available in DES',/
'simulations. Please correct the input file.')
361 SELECT CASE(des_interp_scheme_enum)
364 WRITE(
err_msg,2000) trim(adjustl(des_interp_scheme))
368 2000
FORMAT(
'WARNING 2000: The selected interpolation scheme (',a, &
369 ') is not',/
'supported by the DES Species equation implemen', &
370 'tation. All energy',/
'equation variables will use the ', &
371 'centroid method for interphase',/
'data exchange.')
373 IF(des_explicitly_coupled)
THEN 378 2100
FORMAT(
'Error 2100: The DES Species equation implementation ', &
379 'does not',/
'currently support explicit coupling (DES_', &
380 'EXPLICITLY_COUPLED).',/
'Please correct the mfix.dat file.')
407 USE discretelement
, only: des_continuum_coupled
408 USE discretelement
, only: max_radius
417 DOUBLE PRECISION :: MIN_DEPTH
423 CALL init_err_msg(
"CHECK_SOLIDS_COMMON_DISCRETE_GEOMETRY")
427 IF(coordinates ==
'CYLINDRICAL')
THEN 432 1100
FORMAT(
'Error: 1100: DES and MPPIC models only support ', &
433 'CARTESIAN coordinates.')
437 IF(no_i .OR. no_j)
THEN 442 1200
FORMAT(
'Error 1200: Illegal geometry for DEM/MPPIC. 2D ', &
443 'simulations are',/
'restricted to the XY plane. Please ', &
444 'correct the mfix.dat file.')
447 IF(des_continuum_coupled)
THEN 451 min_depth = 2.0d0*max_radius
458 1300
FORMAT(
'Error 1300: The maximum particle diameter exceeds the ', &
459 'simulation',/
'depth (ZLENGTH). Please correct the mfix.dat ',&
463 IF(cartesian_grid .AND. .NOT.
use_stl)
THEN 468 1400
FORMAT(
'Error 1400: Cartesian grid and discrete models (DEM or ',&
469 'PIC) only',/
'support STL wall representations. Quadrics ', &
470 'and polygons are not',/
'supported.')
492 use discretelement
, only: des_continuum_coupled
526 CALL init_err_msg(
"CHECK_SOLIDS_COMMON_DISCRETE_INTERP")
529 des_diffuse_mean_fields = (des_diffuse_width /=
undefined)
532 SELECT CASE(trim(adjustl(des_interp_scheme)))
534 des_interp_scheme_enum = des_interp_none
536 IF(des_interp_on)
THEN 537 WRITE(
err_msg,2001)
'DES_INTERP_ON' 539 ELSEIF(des_interp_mean_fields)
THEN 540 WRITE(
err_msg,2001)
'DES_INTERP_MEAN_FIELDS' 543 ELSEIF(des_continuum_coupled)
THEN 545 WRITE(
err_msg,2002)
'MPPIC solids' 548 WRITE(
err_msg,2002)
'Cartesian grid cut-cells' 554 des_interp_scheme_enum = des_interp_garg
557 des_interp_scheme_enum = des_interp_dpvm
560 des_interp_scheme_enum = des_interp_gauss
563 des_interp_scheme_enum = des_interp_lhat
566 WRITE(
err_msg,2000) trim(adjustl(des_interp_scheme))
570 2000
FORMAT(
'Error 2000: Invalid DES_INTERP_SCHEME: ',a,/
'Please ', &
571 'correct the mfix.dat file.')
573 2001
FORMAT(
'Error 2001: No interpolation scheme specified when ',a,/ &
574 'is enabled. Please correct the mfix.dat file.')
576 2002
FORMAT(
'Error 2002: DES simulations utilizing ',a,
' require',/ &
577 'interpolation (DES_INTERP_ON and DES_INTERP_MEANFIELDS). ',/ &
578 'Please correct the mfix.dat file.')
581 SELECT CASE(des_interp_scheme_enum)
583 CASE(des_interp_none)
586 WRITE(
err_msg,2100) trim(adjustl(des_interp_scheme))
590 2100
FORMAT(
'Error 2100: The selected interpolation scheme (',a,
') ', &
591 'does',/
'not support an adjustable interpolation width.',/ &
592 'Please correct the input file.')
595 CASE(des_interp_garg)
596 des_interp_mean_fields= .true.
599 WRITE(
err_msg,2100) trim(adjustl(des_interp_scheme))
603 IF(des_diffuse_mean_fields)
THEN 604 WRITE(
err_msg,2110) trim(adjustl(des_interp_scheme))
608 2110
FORMAT(
'Error 2110: The selected interpolation scheme (',a,
') ', &
609 'does not',/
'support diffusive filtering of mean field ', &
610 'quantities. Please correct',/
'the input file.')
612 CASE(des_interp_dpvm, des_interp_gauss)
618 WRITE(
err_msg,2120) trim(adjustl(des_interp_scheme))
622 2120
FORMAT(
'Error 2120: The selected interpolation scheme (',a,
') ', &
623 'requires',/
'a DES_INTERP_WIDTH. Please correct the ', &
627 CASE(des_interp_lhat)
633 WRITE(
err_msg,2100) trim(adjustl(des_interp_scheme))
character(len=16) coordinates
logical, dimension(0:dim_m) momentum_y_eq
logical des_diffuse_mean_fields
integer, parameter des_interp_gauss
double precision, dimension(dim_m) d_p0
character(len=32) function ivar(VAR, i1, i2, i3)
double precision sb_const
integer, parameter des_interp_garg
integer, parameter ranz_1952
logical, dimension(dim_m) calc_cond_des
logical, dimension(dim_m) calc_radt_des
subroutine check_solids_common_discrete_thermo
logical, dimension(0:dim_m) momentum_x_eq
logical, dimension(0:dim_m) momentum_z_eq
logical, dimension(dim_m) solve_ros
double precision, dimension(dim_m) des_em
character(len=3), dimension(dim_m) solids_model
double precision, parameter undefined
logical, dimension(dim_m) close_packed
logical des_interp_mean_fields
double precision des_interp_width
integer des_conv_corr_enum
integer, parameter des_interp_lhat
subroutine init_err_msg(CALLER)
character(len=32) des_interp_scheme
integer, parameter des_interp_none
character(len=16) run_type
subroutine check_solids_common_discrete
double precision, dimension(dim_m) k_s0
integer, parameter des_interp_dpvm
subroutine check_solids_common_discrete_energy
double precision des_diffuse_width
integer des_interp_scheme_enum
character(len=line_length), dimension(line_count) err_msg
subroutine check_solids_common_discrete_interp
double precision, dimension(dim_m) ro_s0
character(len=24) des_conv_corr
double precision, parameter zero
subroutine flush_err_msg(DEBUG, HEADER, FOOTER, ABORT, LOG, CALL_TREE)
character, parameter undefined_c
subroutine check_solids_common_discrete_geometry