计算化学公社

 找回密码 Forget password
 注册 Register
Views: 4600|回复 Reply: 2
打印 Print 上一主题 Last thread 下一主题 Next thread

[CP2K] 监控dimer方法优化TS能量变化的一个小脚本

[复制链接 Copy URL]

496

帖子

11

威望

4275

eV
积分
4991

Level 6 (一方通行)

跳转到指定楼层 Go to specific reply
楼主
本帖最后由 丁越 于 2025-3-19 15:53 编辑

监控dimer方法优化TS能量变化的一个小脚本

  ***************
2025.3.19 注: 重新修改了脚本
****************
  最近坛友djjj148分享了CP2K中使用dimer方法时找过渡态的经验(http://bbs.keinsci.com/thread-23516-1-1.html),使得寻找过渡态一下子方便了太多,非常nice!但是我个人觉得在监控能量变化那块Python脚本使用起来有点不方便,有点长,老是记不住,尽管我写了alias。  于是写了shell小脚本来方便监控DM优化过程中能量变化(初次写脚本,写的不对的地方请各位坛友多多批评指正)

  1. #!/bin/bash
  2. #This script is used to monitor energy change during TS optimization with dimer method.

  3. function help() {
  4.         echo "Usage: DMmonitor.sh [output file of cp2k]"
  5. }

  6. if [[ $# -lt 1 ]]; then
  7.         help; exit 1
  8. fi

  9. inf=$1
  10. grep "ENERGY" ${inf} |head -1|awk '{print NR-1,"\t",$9}' > energy.txt
  11. grep "Informations at step" ${inf} -B 12|grep "ENERGY" |awk '{print NR,"\t",$9}' >> energy.txt
  12. cat energy.txt | awk 'NR==1{a=$2} NR>1{print NR-1,"\t",($2-a)*27.2114}' > deltaE.txt
  13. tail -10 deltaE.txt > last10E.txt

  14. gnuplot -p << EOF
  15. set multiplot layout 2,1
  16. set grid
  17. set xlabel "steps"
  18. set ylabel "Energy Variation (eV)"
  19. plot "deltaE.txt" u 1:2 w lp lw 1 lc rgb "dark-blue" ps 1 pt 7 t "total variation"
  20. plot "last10E.txt" u 1:2 w lp lw 1 lc rgb "dark-blue" ps 1 pt 7 t "last 10 steps variation"
  21. EOF

  22. rm -f energy.txt
  23. rm -f deltaE.txt
  24. rm -f last10E.txt
复制代码

  使用脚本时需要调用gnuplot画图,CentOS8中可以直接使用yum安装该软件。另外满分推荐MobaXterm这个免费的win下远程软件,这个软件可以直接调用Linux下的图形窗口如gnuplot、VMD、以及Multiwfn的一些绘图窗口等。所以Xshell之类的软件也就再无用武之地了。
使用:将脚本放到如~/script的目录下,然后在./bashrc中设置export PATH=$PATH:/home/xxx/script,之后就可以在任何目录下输入DMmonitor.sh使用脚本了。

  下面简单说明一下脚本的运行流程:

grep ENERGY ${inf} |head -1|awk '{print NR-1,"\t",$9}' > energy.txt  是提取out文件中第一个SCF结束后的能量来作为体系的初始能量。这里与坛友djjj148的设置有所不同,他是设置了第一个rotation步骤结束后的能量为体系的初始能量,也无所谓,想用这个能量的改一下这一行就可以了。
grep "Informations at step" ${inf} -B 12|grep ENERGY |awk '{print NR,"\t",$9}' >> energy.txt  Dimer 算法的运行流程有两步,旋转和平移过程。具体介绍阅读sob老师的(http://sobereva.com/44)博文。grep "Informations at step" ${inf} -B 12|head -1 这步是抓取每次dimer优化后当前体系的总能量,-B,berfoe,即向上抓取n行;awk '{print NR,"\t",$9}' 中 NR代表行号,这里面print NR就代表输出过渡态优化步数了。\t代表tab分隔。
cat energy.txt | awk 'NR==1{a=$2} NR>1{print NR-1,"\t",($2-a)*27.2114}' > deltaE.txt  这步就是将每步过渡态优化后的能量与体系的初始能量相减。energy.txt文件中第一行是体系的初始能量,NR==1{a=$2}是将体系的初始能量赋给变量a;NR>1{print NR-1,"\t",($2-a)*27.2114}表示将每步的过渡态能量与初始能量求差并且转化成以eV为单位输出,并且只打印第1,2,3。。。步过渡态能量的差值。

gnuplot 作图时支持交互模式输入,-p,persist,代表告诉程序在退出时不要关闭作图窗口。EOF是什么在sob老师博文(http://bbs.keinsci.com/thread-24929-1-1.html)说的很清楚了。
set grid 设置作图区域的网格线
set xlabel "steps" 设置x轴标签
set ylabel "Energy Variation (eV)" 设置y轴标签
unset key 取消显示图例
plot "deltaE.txt" u 1:2 w lp lw 1 lc rgb "dark-blue" ps 1 pt 7   u,using;1:2,代表作图的x、y轴数据是第几列;lp,linepoint的简写,点线样式;lw,line wides,线宽;lc,line color。这里如果不知道要用什么线型以及颜色,可以在输入gnuplot进入绘图模式后再输入test查看线的样式。另外也可以参照这篇文章设置线颜色(http://t066v5.coding-pages.com/2014/04/06/gnuplot%E9%A2%9C%E8%89%B2%E8%AE%BE%E7%BD%AE/);ps,pointsize,点的尺寸;pt,pointtype,点的类型;
rm两个文件确保下次使用脚本时产生的数据不会累加到当前的文件中。







DMmonitor.sh

843 Bytes, 下载次数 Times of downloads: 28

评分 Rate

参与人数
Participants 3
威望 +1 eV +10 收起 理由
Reason
sobereva + 1
zsu007 + 5
Aridea + 5 好物!

查看全部评分 View all ratings

自由发挥,野蛮生长

148

帖子

0

威望

888

eV
积分
1036

Level 4 (黑子)

2#
发表于 Post on 2021-11-23 19:52:24 | 只看该作者 Only view this author
好物,感谢分享~

172

帖子

0

威望

3441

eV
积分
3613

Level 5 (御坂)

3#
发表于 Post on 2022-5-15 23:10:23 | 只看该作者 Only view this author
本帖最后由 neocc 于 2022-5-15 23:13 编辑

如果是在超算没有图形化界面的环境中,推荐 dumb 和 replot


  1. # $1 = out file
  2. # $2 = delay in seconds

  3. gnuplot -p <<EOF
  4. reset session
  5. set term dumb 120,30
  6. set tics nomirror scale 0.5
  7. set grid
  8. set xlabel "steps"
  9. set ylabel "Energy Variation (a.u.)"
  10. unset key
  11. plot '$1-data.txt' u 1:2  w l

  12. stop = 0

  13. while !stop {
  14.     pause $2     # delay in seconds
  15.     replot
  16. }
  17. EOF
复制代码


本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-2-19 02:58 , Processed in 0.321353 second(s), 24 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list