CFDEM中的cleanCFDEMcase函数
在CFDEM的case中的parCFDDEMrun.sh中,有这么一段代码:
#--------------------------------------------------------------------------------# #- define variables casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" logpath=$casePath headerText="run_parallel_cfdemSolverPiso_settlingTestMPI_CFDDEM" logfileName="log_$headerText" solverName="cfdemSolverPisoNew" nrProcs="9" machineFileName="none" # yourMachinefileName | none debugMode="off" # on | off| strict testHarnessPath="$CFDEM_TEST_HARNESS_PATH" runOctave="true" cleanUp="true" postproc="false" #--------------------------------------------------------------------------------#
其中的 cleanUp="true" 可以让我们在计算完case之后,通过回车键来删除计算过的内容,或者是通过“Ctrl+C”来关掉进程保存计算结果。在parCFDDEMrun.sh的最后,给出了cleanUp的执行过程为:
#- clean up case if [ $cleanUp == "true" ] then keepDEMrestart="false" cleanCFDEMcase $casePath/CFD $keepDEMrestart fi
关于 keepDEMrestart 和 cleanCFDEMcase 的详细内容在 $CFDEM_SRC_DIR/lagrangian/cfdemParticle/etc/functions.sh 中,相关代码具体如下:
1 cleanCFDEMcase() 2 { 3 #--------------------------------------------------------------------------------# 4 #- define variables 5 casepath="$1" 6 keepDEMrestart="$2" 7 keepCFDmesh="$3" 8 #--------------------------------------------------------------------------------# 9 10 echo "deleting data at: $casePath ? otherwise press Ctrl-C:\n" 11 read 12 source $WM_PROJECT_DIR/bin/tools/CleanFunctions 13 #CFD 14 cd $casePath/CFD 15 if [[ $keepCFDmesh == true ]]; then 16 echo "keeping CFD mesh files" 17 cp -r constant/polyMesh constant/polyMesh_backup 18 cleanCase 19 mv constant/polyMesh_backup/* constant/polyMesh 20 rm -r constant/polyMesh_backup 21 else 22 echo "deleting CFD mesh files" 23 cleanCase 24 fi 25 26 #CFDEM 27 rm -r $casePath/CFD/clockData 28 rm -r $casePath/CFD/particleProbes 29 rm -r $casePath/CFD/averageProps/ 30 rm -r $casePath/CFD/octave/octave-core 31 rm -r $casePath/CFD/octave/octave-workspace 32 rm -r $casePath/remotePlace 33 rm -r $casePath/CFD/oldProcDirs 34 rm -r $casePath/CFD/tmp.balance 35 rm $casePath/CFD/callgrind.out.* 36 rm -r $casePath/CFD/hpctoolkit-* 37 rm $casePath/log_* 38 #DEM 39 rm $casePath/DEM/post/* 40 touch $casePath/DEM/post/.gitignore 41 if [[ $keepDEMrestart == true ]]; then 42 echo "keeping DEM restart files" 43 else 44 rm $casePath/DEM/post/restart/* 45 fi 46 touch $casePath/DEM/post/restart/.gitignore 47 rm $casePath/DEM/tmp.lammps.variable 48 rm $casePath/DEM/log* 49 #ParScale 50 rm $casePath/CFD/*.dat 51 rm $casePath/CFD/*.pascal 52 rm $casePath/CFD/*.profile 53 rm -r $casePath/CFD/pascal/0.* 54 rm -r $casePath/CFD/pascal/1 55 rm -r $casePath/CFD/pascal/1.* 56 rm -r $casePath/CFD/pascal/2 57 rm -r $casePath/CFD/pascal/2.* 58 rm -r $casePath/CFD/pascal/3 59 rm -r $casePath/CFD/pascal/3.* 60 rm -r $casePath/CFD/pascal/4 61 rm -r $casePath/CFD/pascal/4.* 62 rm -r $casePath/CFD/pascal/5 63 rm -r $casePath/CFD/pascal/5.* 64 rm -r $casePath/CFD/pascal/6 65 rm -r $casePath/CFD/pascal/6.* 66 rm -r $casePath/CFD/pascal/7 67 rm -r $casePath/CFD/pascal/7.* 68 rm -r $casePath/CFD/pascal/8 69 rm -r $casePath/CFD/pascal/8.* 70 rm -r $casePath/CFD/pascal/9 71 rm -r $casePath/CFD/pascal/9.* 72 rm -r $casePath/CFD/pascal/10 73 rm -r $casePath/CFD/pascal/10.* 74 cd $casePath 75 echo "done" 76 }
我们从上面的41行到44行中可以发现, keepDEMrestart=“true” 的话,就会删除 $casePath/DEM/post/restart/ 路径下面保存的文件,而这些文件则是在in.liggghts文件中通过 restart 命令保存的文件。因此,我们要想在计算完成后,通过回车键来删除这些文件的话,就需要注意下restart文件夹的保存路径。