24小时热门版块排行榜    

查看: 7377  |  回复: 24

从心而觅

新虫 (小有名气)

[交流] 侯老师脚本测试K点、截断能详解,适合零基础! 已有8人参与

学vasp的童鞋估计都知道侯老师,很多童鞋对他教程里面的脚本也略有耳闻,估计也有不少被这些脚本绊住脚,当然也包括我。今天正好有时间,在这里跟大家聊聊侯老师的脚本。这里以K点的测试脚本为例。
1:脚本说明
脚本就像是一句话,把话传给服务器,然后服务器就照着话做,在这里用脚本的目的无非就是省时省力,对于机械的重复性动作,让脚本会省力一下。但是别担心,即使自己对脚本一窍不通,一个个算就可以了,无非多费点劲而已。
2:文件准备
我们都知道提交VASP作业需要四个基本文件,INCAR、KPOINTS、POSTAR、POTCAR,这里我们讲测试K点,也就是KPOINTS里面的内容。所以这时建立脚本文件rvasp.pbs.sh,提交作业时准备这个文件和其它三个,而KPOINTS文件就不必要了。
3:rvasp.pbs.sh脚本内容
这个脚本两个作用,一是充当KPOINTS文件,二是完成提交作业的任务。具体内容如下。

#!/bin/sh
rm WAVECAR
for  i  in  1  2  3
do
cat>KPOINTS<<!
Si-
0
Monkhorst-pack
$i     $i      $i
0.0  0.0    0.0
!
echo "k mesh = $i x $i x $i"
time vasp
E=`grep "TOTEN" OUTCAR | tail -1 | awk '{printf "%12.6f \n", $5 }'`
KP=`grep "irreducible" OUTCAR | tail -1 | awk '{printf "%5i \n", $2 }'`
echo $i $KP $E >>comment
done

下面是脚本说明:

#!/bin/sh                 说明命令类型,使用的shell是bash
rm WAVECAR  删掉波函数,如果INCAR中设置ISTART=0,即重新开始弛豫,这一行需要删除。
for  i  in  1  2  3    for……do……done是循环的整套命令  i是变量
do
cat>KPOINTS<<!   生成KPOINTS文件,而文件的内容为两个!之间的内容
Si-               从此行到下面!号前,是KPOINTS内容,不再详述
0
Monkhorst-pack
$i     $i      $i    $i读入i的数值,也就是从1再2再3
0.0  0.0    0.0
!   与上一个!相应
echo "k mesh = $i x $i x $i"    屏幕上打印引号内的内容
time vasp        运行vas,并在程序跑完后打印时间
E=`grep "TOTEN" OUTCAR | tail -1 | awk '{printf "%12.6f \n", $5 }'`
提取OUTCAR中含有TOTEN的行且最后一行赋值为E  awk后是一些输出格式
KP=`grep "irreducible" OUTCAR | tail -1 | awk '{printf "%5i \n", $2 }'`
提取OUTCAR中含有irreducible的行且最后一行赋值为KP
echo $i $KP $E >>comment   将两个变量输出到comment文件
done  与for do done 配套

4.提交作业
做好INCAR、POSTAR、POTCAR,再加上上面的脚本rvasp.pbs.sh,然后提交脚本即可。

5.特别说明
1:如果作业错误,并显示找不到WAVECAR,那就把rm WAVECAR这一行删除。
2:作业错误,先检查脚本有没有问题,没有问题,注意time vasp
这一行,这个提交作业的命令可能对你的服务器不适用,那你用自己提交作业的命令替换掉这个。
3:2不成功的情况下,如果你本来有提交作业的脚本,找到mpirun这一行(这一行的作用是提交作业),将上面rvasp的所有内容粘贴到这一行的后面,然后剪切mpirun这一行进而替换掉time vasp。再正常提交脚本即可。

完毕。
本教程综合很多前辈的方法,基本是一个整合,感谢他们!对于本教程有错误的地方,请批评指正!
回复此楼

» 收录本帖的淘帖专辑推荐

第一性原理计算-tg 量化软件 第一原理 计算化学
科研

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

一切有为法,如梦幻泡影!如露亦如电,应作如是观!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

maoxinxina

银虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
你好,就是我按这种方法输进去之后,然后运行脚本。系统会提醒我这样的错误,我想请教下你也遇到过吗?
line 16: warning: here-document at line 5 delimited by end-of-file (wanted `!')
line 17: syntax error: unexpected end of file
16行是最后一行
4楼2016-10-09 09:32:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

匿名

本帖仅楼主可见
2楼2016-09-05 21:51:44
已阅   申请1ST强帖   回复此楼   编辑   查看我的主页
送红花一朵
本帖仅楼主可见
3楼2016-09-05 21:52:17
已阅   申请1ST强帖   回复此楼   编辑   查看我的主页

从心而觅

新虫 (小有名气)

引用回帖:
4楼: Originally posted by maoxinxina at 2016-10-09 09:32:53
你好,就是我按这种方法输进去之后,然后运行脚本。系统会提醒我这样的错误,我想请教下你也遇到过吗?
line 16: warning: here-document at line 5 delimited by end-of-file (wanted `!')
line 17: syntax erro ...

注意!号需要顶格写,你最好贴上自己的脚本。
一切有为法,如梦幻泡影!如露亦如电,应作如是观!
5楼2016-10-09 19:46:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tsglss

铁杆木虫 (著名写手)

学习了

[ 发自手机版 http://muchong.com/3g ]
做好自己
6楼2016-10-09 22:25:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chally123

铁虫 (著名写手)

学习了

[ 发自手机版 http://muchong.com/3g ]
7楼2016-10-10 00:12:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

maoxinxina

银虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
4楼: Originally posted by maoxinxina at 2016-10-09 09:32:53
你好,就是我按这种方法输进去之后,然后运行脚本。系统会提醒我这样的错误,我想请教下你也遇到过吗?
line 16: warning: here-document at line 5 delimited by end-of-file (wanted `!')
line 17: syntax erro ...

哥:这是我的东西
#!/bin/sh
rm WAVECAR
for  i  in  150   200   250  300   350   400
do
cat > INCAR <<!
SYSTEM = Si-Diamond
ENCUT = $i
ISTART = 0 ; ICHARG = 2
ISMEAR = -5
PREC = Accurate
!
echo "ENCUT = $i eV" ;    time vasp
E=`grep "TOTEN" OUTCAR | tail -1 | awk    '{printf    "%12.6f \n",    $5 }'`
echo $i   $E  >>comment
done
然后我把这个放在根目录下~/bin
执行chmode +x run_ecut.sh
然后放在我的文件夹下执行


提示错误如下:
[lyj@cluster si]$ run_ecut.sh
rm: cannot remove `WAVECAR': No such file or directory
/home/lyj/bin/run_ecut.sh: line 16: warning: here-document at line 5 delimited by end-of-file (wanted `!')
/home/lyj/bin/run_ecut.sh: line 17: syntax error: unexpected end of file
想知道怎么弄才能消除这些错误
8楼2016-10-10 10:23:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

从心而觅

新虫 (小有名气)

引用回帖:
8楼: Originally posted by maoxinxina at 2016-10-10 10:23:14
哥:这是我的东西
#!/bin/sh
rm WAVECAR
for  i  in  150   200   250  300   350   400
do
cat > INCAR <<!
SYSTEM = Si-Diamond
ENCUT = $i
ISTART = 0 ; ICHARG = 2
ISMEAR = -5
P ...

把rm WAVECAR这一行注释掉
一切有为法,如梦幻泡影!如露亦如电,应作如是观!
9楼2016-10-10 10:29:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

maoxinxina

银虫 (小有名气)

引用回帖:
9楼: Originally posted by 从心而觅 at 2016-10-10 10:29:56
把rm WAVECAR这一行注释掉...

删了也没用,
10楼2016-10-10 10:32:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 从心而觅 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见