echo both log ../DEM/log.liggghts atom_style granular atom_modify map array boundary m m m newton off communicate single vel yes units si processors 2 8 2 #4 4 4 #2 4 2 # 1 1 2 #processors * * * region reg block -0.1 0.1 0. 4.0 -0.1 0.1 units box #region reg cylinder y 0. 0. 0.1 0.0 4.0 units box create_box 1 reg neighbor 0.001 bin # 0.0065 bin # 0.02 0.002 bin neigh_modify delay 0 ## Variables variable theta equal 4 # angle in degrees variable IV equal 1 # insertion velocity in m/s variable rpm equal 3 # rpm of the revolution of rotary kiln variable YM_P equal 5.e6 # Young's modulus variable PR_P equal 0.45 # Poisson's ratio variable CoR equal 0.3 # Coefficient of restituion variable CoF equal 0.5 # Coefficienct of friction variable RF equal 0.2 # Rayleigh time factor variable rho equal 4000 # particle density variable mps equal 0.0003 # minimum particle radius variable massrate_value equal 0.017 # massrate to be fed, 60 kg/hr = 10/3600 = 0.017 kg/sec variable feeding_time equal 2.5 # 3 # time to feed or run the liggghts_init simulation variable ins_every_sec equal 0.25 # insert particles at the gap of this time ## Calculations variable cos_angle equal cos(${theta}*PI/180) variable sin_angle equal sin(${theta}*PI/180) variable IV_z equal -${IV}*${cos_angle} variable IV_y equal ${IV}*${sin_angle} #variable mass_value equal 1 # Material properties required for granular pair styles fix m1 all property/global youngsModulus peratomtype ${YM_P} fix m2 all property/global poissonsRatio peratomtype ${PR_P} fix m3 all property/global coefficientRestitution peratomtypepair 1 ${CoR} fix m4 all property/global coefficientFriction peratomtypepair 1 ${CoF} # pair style pair_style gran model hertz tangential history # Hertzian without cohesion pair_coeff * * print "******************************************timestep order calculation purpose only****************************************************" variable SM equal ${YM_P}/2.0/(1+${PR_P}) # Shear modulus variable timestep_size equal ${RF}*PI*(${mps})*sqrt(${rho}/${SM})/(0.163*${PR_P}+0.8766) # fraction of Rayleigh timestep print "timestep = ${timestep_size}" # timestep, gravity variable timestep_size equal 0.00001 timestep ${timestep_size} fix gravi all gravity 9.81 vector 0.0 ${sin_angle} -${cos_angle} # walls fix ywalls1 all wall/gran model hertz tangential history primitive type 1 yplane 0. #fix ycylwall all wall/gran model hertz tangential history primitive type 1 ycylinder 0.1 0.0 0.0 shear y 0.5 # Please see shear option to rotate cylindrical wall with given vshear magnitude (+ve vshear for clockwise rotation and otherwise) # https://www.cfdem.com/media/DEM/docu/fix_wall_gran.html?highlight=xplane fix rotaryKiln all mesh/surface file geometry/Rotary_Kiln.stl type 1 #fix ins_mesh all mesh/surface/planar file geometry/ins_face.stl type 1 scale 1.0 fix granwalls all wall/gran model hertz tangential history mesh n_meshes 1 meshes rotaryKiln # heat transfer fix ftco all property/global thermalConductivity peratomtype 0.89 # lambda in [W/(K*m)] # (1.2+0.58)/2 fix ftca all property/global thermalCapacity peratomtype 775 # cp in [J/(kg*K)] # (980+570)/2 # Ref: # 1. Heat transfer analysis of iron ore spherical pellet in the direct reduction process # 2. Effect of iron (III) oxide powder on thermal conductivity and diffusivity of lime mortar # initial temperature fix heattransfer all heat/gran initial_temperature 673 # 263. # region for particle insertion region bc block -0.07 0.07 0. 1.0 -0.07 0.07 units box ##PSD ##Sachi's feed distribution #31% : -10+3 mm : 6.5 mm : 0.00650 m : 0.00325 m #19% : -3+1 mm : 2 mm : 0.00200 m : 0.00100 m #12% : -1+0.3 mm : 0.65 mm : 0.00065 m : 0.000325 m #5% : -0.3+0.15 mm : 0.225 mm : 0.000225 m : 0.0001125 m #5% : -0.15+0.045 mm : 0.0975 mm : 0.0000975 m : 0.00004875 m #28% : -0.045 mm : 0.0225 mm : 0.0000225 m : 0.00001125 m # particle distributions and insertion fix pts1 all particletemplate/sphere 15485863 atom_type 1 density constant ${rho} radius constant 0.00325 fix pts2 all particletemplate/sphere 15485867 atom_type 1 density constant ${rho} radius constant 0.001 fix pts3 all particletemplate/sphere 838041641 atom_type 1 density constant ${rho} radius constant 0.000500 fix pts4 all particletemplate/sphere 797003437 atom_type 1 density constant ${rho} radius constant 0.000300 fix pdd1 all particledistribution/discrete 32452843 4 pts1 0.31 pts2 0.19 pts3 0.12 pts4 0.38 #insert_every variable variable ins_every_step equal round(${ins_every_sec}/${timestep_size}) # number of steps each half second variable mass_every equal ${massrate_value}*${ins_every_sec} # mass to be fed every round of feeding # particle insertion fix ins all insert/pack seed 324528437 distributiontemplate pdd1 maxattempt 10000 insert_every ${ins_every_step} overlapcheck yes vel constant 0. ${IV_y} ${IV_z} mass_in_region ${mass_every} region bc # all_in yes ntry_mc 10000 #fix ins all insert/pack seed 32452843 distributiontemplate pdd1 insert_every 10000 vel constant 0. ${IV_y} ${IV_z} overlapcheck yes all_in yes particles_in_region 1005 region bc #fix ins all insert/pack seed 32452843 distributiontemplate pdd1 maxattempt 1000 insert_every 10000 overlapcheck yes all_in yes vel constant 0. ${IV_y} ${IV_z} region bc mass_in_region ${mass_value} ntry_mc 10000 #fix ins all insert/stream seed 123457 distributiontemplate pdd1 mass 0.1 vel constant 0. ${IV_y} ${IV_z} massrate 0.01 overlapcheck yes insertion_face ins_mesh extrude_length 0.3 #fix ins all insert/rate/region seed 123457 distributiontemplate pdd1 mass 0.1 massrate 0.1 insert_every 10000 overlapcheck yes vel constant 0. ${IV_y} ${IV_z} region bc ntry_mc 10000 # Variable total mass variable mass_total equal mass(all) # apply nve integration to all particles that are inserted as single particles fix integr all nve/sphere # output settings, include total thermal energy compute rke all erotate/sphere thermo_style custom step atoms v_mass_total ke c_rke f_heattransfer vol thermo 1000 thermo_modify lost ignore norm no compute_modify thermo_temp dynamic yes #insert the first particles run 1 # dump commands dump dmp all custom 1000 post/dump.liggghts_init id type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius f_heattransfer[0] f_heatFlux[0] #dump dumpKiln all mesh/stl 1000 post/kiln*.stl # rotating the rotary kiln variable time_period equal 60/${rpm} fix moveKiln all move/mesh mesh rotaryKiln rotate origin 0. 0. 0. axis 0. 1. 0. period ${time_period} variable feeding_steps equal ${feeding_time}/${timestep_size} run ${feeding_steps} #150000 write_restart restart/liggghts.restart