前面的准备工作完成了,INCAR
,KPOINTS
,POSCAR
(IMAGES), POTCAR
也检查完了。剩下的就是准备脚本提交文件了。本节主要是在天河II号超算中心上给大家简单示范一下:
1)准备脚本,提交任务;
2)过渡态任务运行时候的查看;
3) VTST
脚本nebresults.pl
的安装和使用。
提交任务 首先通过命令操作,熟悉下天河II号超算中心提交NEB计算的流程。
1 2 3 4 5 6 7 8 9 10 iciq-lq@ln3:/THFS/home/iciq-lq/LVASPTHW/ex77$ ls 00 01 02 03 04 05 06 07 08 09 INCAR job_sub KPOINTS POTCAR iciq-lq@ln3:/THFS/home/iciq-lq/LVASPTHW/ex77$ iciq-lq@ln3:/THFS/home/iciq-lq/LVASPTHW/ex77$ cat job_sub # export LD_LIBRARY_PATH=/THFS/opt/intel/composer_xe_2013_sp1.3 .174 /mkl/lib/intel64:$LD_LIBRARY_PATH yhrun -p gsc -n 24 /THFS/opt/vasp/5.4 .4_neb /vasp.5 .4 .4 /bin/vasp_std iciq-lq@ln3:/THFS/home/iciq-lq/LVASPTHW/ex77$ iciq-lq@ln3:/THFS/home/iciq-lq/LVASPTHW/ex77/$ yhbatch -p gsc -N 2 -J test job_sub Submitted batch job 1004311
查看NEB计算 NEB一般收敛的很慢,需要跑很多离子步才会收敛,所以大家要心里有个准备,这也是为什么我们先用gamma点粗算一下,再用高密度的K点计算的原因,总之就是节约时间。虽然NEB要花很长时间才收敛,但提交任务后,我们不能守株待兔似的等着NEB
算完,而是要勤检查结果,因为NEB的计算中,也会经常出现结构跑乱的情况。那么该怎么检查呢? 一看能量,二看结构,三看能量和结构。
一看能量: 主要是因为在terminal
下面,相对于打开可视化软件查看结构来说,我们通过命令提取每个IMAGE
中OUTCAR
能量信息的操作更加方便些而已。更重要的其实还是结构的变化,也就是你的反应路径。查看能量有2个办法:
自己用脑子想象或者写脚本: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 iciq-lq@ln3:/THFS/home/iciq-lq/LVASPTHW/ex77$ ls 00 01 02 03 04 05 06 07 08 09 INCAR job_sub KPOINTS NEB.pdb POTCAR slurm-995085.out vasprun.xml iciq-lq@ln3:/THFS/home/iciq-lq/LVASPTHW/ex77$ ta.sh 01 -298.00705385 02 -297.96462657 03 -297.92754864 04 -297.90142637 05 -297.88475532 06 -297.87681445 07 -297.89025285 08 -297.93374021 iciq-lq@ln3:/THFS/home/iciq-lq/LVASPTHW/ex77$ cat ~/bin/ta.sh for i in *; do if [ -e $i /OUTCAR ]; then echo -e $i "\t" $(grep ' without' $i /OUTCAR |tail -n 1 | awk '{print $7}' )fi done iciq-lq@ln3:/THFS/home/iciq-lq/LVASPTHW/ex77$
用脑子想象:
在ts.sh
脚本的输出中,从01的能量一直往下看,自己脑子里面自带一个xy的坐标系,将这些能量填到坐标系中,直至08。你会想象得到这样的一个曲线: 能量从01的-298.007慢慢上升到06的-297.87,然后再下降到08的-297.934。这个曲线的顶点再06处,也就是我们粗算得到的过渡态。
当然,你也写个小脚本提取每个IMAGE
中的能量信息,然后画图即可。
使用VTST的脚本:nebresults.pl
前面Ex72中,我们讲过了怎么准备VTST的那些脚本,这一节,我们讲另外一个办法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 iciq-lq@ln3:/THFS/home/iciq-lq/bin$ cd vtst/ iciq-lq@ln3:/THFS/home/iciq-lq/bin/vtst$ ls vtstscripts.tgz iciq-lq@ln3:/THFS/home/iciq-lq/bin/vtst$ tar -zxvf vtstscripts.tgz vtstscripts-937/ vtstscripts-937/pos2xyz.py vtstscripts-937/sum_dos_np vtstscripts-937/chg2cube.pl vtstscripts-937/chgsplit.sh vtstscripts-937/akmcprocess.pl * * * vtstscripts-937/nebbarrier.pl iciq-lq@ln3:/THFS/home/iciq-lq/bin/vtst$ ls vtstscripts-937 vtstscripts.tgz iciq-lq@ln3:/THFS/home/iciq-lq/bin/vtst$ cd vtstscripts-937/ iciq-lq@ln3:/THFS/home/iciq-lq/bin/vtst/vtstscripts-937$ ls 2con.py center.py diffcon.pl dymanalyze.pl dymseldsp.pl insplot.pl ....
使用vim
打开nebresults.pl
文件,将58-71
行注释掉,或者可以使用sed
命令:
1 sed -i '58,71s/^/#/g' nebresults.pl
效果如下图:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 57 # Zip the OUTCARs again 58 #print 'Zipping the OUTCARs again ... ' ; 59 #$zip = $ENV{'VTST_ZIP'}; 60 #if($zip eq ''){ $zip = 'gzip'; } 61 # 62 #$i = 0; 63 #$string = "00"; 64 #while(chdir $string) { 65 # system "$zip OUTCAR"; 66 # $i++; 67 # if($i < 10) { $string = "0$i"; } 68 # elsif($i < 100) { $string = "$i"; } 69 # chdir $dir; 70 #} 71 #print "done\n";
1 2 iciq-lq@ln3:/THFS/home/iciq-lq/bin/vtst/vtstscripts-937$ pwd /THFS/home/iciq-lq/bin/vtst/vtstscripts-937
复制上面pwd
命令的目录,打开~/.bashrc
文件,添加这一行:
1 export PATH=$PATH:/THFS/home/iciq-lq/bin/vtst/vtstscripts-937
1 iciq-lq@ln3:/THFS/home/iciq-lq/bin/vtst/vtstscripts-937$ . ~/.bashrc
进入计算的目录下,运行nebresults.pl
命令,操作如下图:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 iciq-lq@ln3:/THFS/home/iciq-lq/LVASPTHW/ex77$ ls 00 01 02 03 04 05 06 07 08 09 INCAR job_sub KPOINTS NEB.pdb POTCAR slurm-995085.out vasprun.xml iciq-lq@ln3:/THFS/home/iciq-lq/LVASPTHW/ex77$ nebresults.pl No OUTCAR in 00 Unziping the OUTCARs ... iciq-lq@ln3:/THFS/home/iciq-lq/LVASPTHW/ex77$ cp 01/OUTCAR 00 iciq-lq@ln3:/THFS/home/iciq-lq/LVASPTHW/ex77$ nebresults.pl No OUTCAR in 09 Unziping the OUTCARs ... iciq-lq@ln3:/THFS/home/iciq-lq/LVASPTHW/ex77$ cp 08/OUTCAR 09 iciq-lq@ln3:/THFS/home/iciq-lq/LVASPTHW/ex77$ nebresults.pl Unziping the OUTCARs ... done Do nebbarrier.pl ; nebspline.pl Do nebef.pl Do nebmovie.pl Do nebjmovie.pl Do nebconverge.pl Forces and Energy: 0 0.003505 -298.009300 0.000000 1 0.003505 -298.009300 0.000000 2 0.008701 -297.969500 0.039800 3 0.015508 -297.932900 0.076400 4 0.018300 -297.905700 0.103600 5 0.016765 -297.887500 0.121800 6 0.011627 -297.877000 0.132300 7 0.007293 -297.885300 0.124000 8 0.003607 -297.929100 0.080200 9 0.003607 -297.929100 0.080200 Extremum 1 found at image 0.210729 with energy: 0.002874 Extremum 2 found at image 0.788081 with energy: -0.002910 Extremum 3 found at image 6.265931 with energy: 0.132792 Extremum 4 found at image 8.211450 with energy: 0.074781 Extremum 5 found at image 8.788801 with energy: 0.085561 iciq-lq@ln3:/THFS/home/iciq-lq/LVASPTHW/ex77$
上面的那个图在Ubuntu的终端里面,通过gs mep.eps
命令可以直接打开。
解释:
1) 使用nebresults.pl
脚本的时候,我们需要在00
和09
的文件夹中分别放上初始结构和末态结构所对应的OUTCAR
。上面操作中,大师兄把01
和08
中的OUTCAR
分别复制到了00
和09
中。
为什么这么做呢?
答:偷懒。原因有2个:
A)之前优化结构都是用到的高密度的K点,直接把OUTCAR
拿过来用的话,会出现能量差别很大。做出图来能量很奇怪的样子。如下面的例子所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 iciq-lq@ln3:/THFS/home/iciq-lq/LVASPTHW/ex77/high_k$ ta.sh 00 -321.15187450 01 -298.00935617 02 -297.96955082 03 -297.93296493 04 -297.90579729 05 -297.88754704 06 -297.87700139 07 -297.88531984 08 -297.92917858 09 -321.09850728 iciq-lq@ln3:/THFS/home/iciq-lq/LVASPTHW/ex77/high_k$ nebresults.pl Unziping the OUTCARs ... done Do nebbarrier.pl ; nebspline.pl Do nebef.pl Do nebmovie.pl Do nebjmovie.pl Do nebconverge.pl Forces and Energy: 0 0.023782 -321.151800 0.000000 1 0.003505 -298.009300 23.142500 2 0.008701 -297.969500 23.182300 3 0.015508 -297.932900 23.218900 4 0.018300 -297.905700 23.246100 5 0.016765 -297.887500 23.264300 6 0.011627 -297.877000 23.274800 7 0.007293 -297.885300 23.266500 8 0.003607 -297.929100 23.222700 9 0.011589 -321.098500 0.053300 Extremum 1 found at image 0.000009 with energy: -0.000000 Extremum 2 found at image 6.265997 with energy: 23.275310 iciq-lq@ln3:/THFS/home/iciq-lq/LVASPTHW/ex77$
看到了没有,上面例子中01
到08
结构的能量很大。这是因为参考的能量是00
的。对于同一个体系,K点大的话,绝对能量更负一些。能量差别太大,导致过渡态的能量变化都可以忽略掉了。
B)当然我们也可以分别对00
和09
对应对的机构算个单点。生成各自对应的OUTCAR
,然后再使用nebresults.pl
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 iciq-lq@ln3:/THFS/home/iciq-lq/LVASPTHW/ex77$ ta.sh 00 -298.03233582 01 -298.00705385 02 -297.96462657 03 -297.92754864 04 -297.90142637 05 -297.88475532 06 -297.87681445 07 -297.89025285 08 -297.93374021 09 -297.97265721 iciq-lq@ln3:/THFS/home/iciq-lq/LVASPTHW/ex77$ iciq-lq@ln3:/THFS/home/iciq-lq/LVASPTHW/ex77$ nebresults.pl Unziping the OUTCARs ... done Do nebbarrier.pl ; nebspline.pl Do nebef.pl Do nebmovie.pl Do nebjmovie.pl Do nebconverge.pl Forces and Energy: 0 0.100196 -298.032300 0.000000 1 0.003505 -298.009300 0.023000 2 0.008701 -297.969500 0.062800 3 0.015508 -297.932900 0.099400 4 0.018300 -297.905700 0.126600 5 0.016765 -297.887500 0.144800 6 0.011627 -297.877000 0.155300 7 0.007293 -297.885300 0.147000 8 0.003607 -297.929100 0.103200 9 0.084593 -297.972600 0.059700 Extremum 1 found at image 0.057295 with energy: -0.000155 Extremum 2 found at image 6.265997 with energy: 0.155771 iciq-lq@ln3:/THFS/home/iciq-lq/LVASPTHW/ex77$
仔细观察,你会发现,00
和 01
, 08
和 09
的能量差别基本不大。所以上面我们的偷懒做法也是可取的。
敲黑板:
一般在粗算的时候,不用考虑那么多细节,怎么粗怎么弄。所以,我们前面讲的这个懒办法是在粗算情况下的操作。由于高K点的计算我们在优化初末态结构的时候已经有了,所以提高精度的时候就可以直接用了。
本节要求 1) 会提交NEB的计算任务
2) 会使用自己写的或者nebresults.pl
脚本查看能量信息。
下一节,我们学习怎么分析这些能量。