# 监控CP2K优化收敛情况 > 由sob编写 运行方式:`monopt.sh **.opt` 将下面内容写入文本文件,保存为 `monopt.sh` ```bash #moncp: Monitoring CP2K convergence of optimization task #Written by Tian Lu (sobereva@sina.com, Beijing Kein Research Center for Natural Sciences) #!/bin/bash nstep=$(grep -c 'Informations at step' $1) echo "Number of steps already run: $nstep" echo grep "Total Energy" $1|cut -d= -f 2 > Total_E.txt echo > delta_E.txt grep "Real energy change" $1|cut -d= -f 2 >> delta_E.txt echo > MAX_D.txt grep "Max. step size" $1|cut -d= -f 2 >> MAX_D.txt echo > RMS_D.txt grep "RMS step size" $1|cut -d= -f 2 >> RMS_D.txt echo > MAX_F.txt grep "Max. gradient" $1|cut -d= -f 2 >> MAX_F.txt echo > RMS_F.txt grep "RMS gradient =" $1|cut -d= -f 2 >> RMS_F.txt NPRES=$(grep -c 'Pressure Deviation' $1) if [ $NPRES -gt 0 ];then echo " Step E(Hartree) delta E MAX D RMS D MAX F RMS F Pres. Dev." echo > PresDev.txt grep "Pressure Deviation" $1|cut -d= -f 2 >> PresDev.txt paste Total_E.txt delta_E.txt MAX_D.txt RMS_D.txt MAX_F.txt RMS_F.txt PresDev.txt> mon_all.txt awk '{printf ("%4d %16.8f %12.8f %9.6f %9.6f %9.6f %9.6f %10.1f\n",NR-1,$1,$2,$3,$4,$5,$6,$7)}' mon_all.txt rm -f Total_E.txt delta_E.txt MAX_D.txt RMS_D.txt MAX_F.txt RMS_F.txt mon_all.txt PresDev.txt else echo " Step E(Hartree) delta E MAX D RMS D MAX F RMS F" paste Total_E.txt delta_E.txt MAX_D.txt RMS_D.txt MAX_F.txt RMS_F.txt > mon_all.txt awk '{printf ("%4d %16.8f %12.8f %9.6f %9.6f %9.6f %9.6f\n",NR-1,$1,$2,$3,$4,$5,$6)}' mon_all.txt rm -f Total_E.txt delta_E.txt MAX_D.txt RMS_D.txt MAX_F.txt RMS_F.txt mon_all.txt fi ```