24小时热门版块排行榜    

CyRhmU.jpeg
查看: 25390  |  回复: 142
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

[交流] 【活动or资源】vasp晶体结构优化

结构优势是我们做计算的的第一步,往往也是最重要的一步,一个不合理的结够优化可能导致错误的结果。在论坛里面也有很多虫子们问关于结构优化的问题,貌似大家对结构优化不是很有把握。我在这里开贴只是抛砖引玉,希望大家积极交流。下面是我的结构优化的一些经验,希望对大家有点用


第一步:
可以用VESTA打开cif文件直接保存为vasp格式就可以,三楼youzhizhe
另一种方法:
建模一般都是MS建好之后 修改*.cell文件得到POSCAR具体的方法参考站内的信息(没找到最开始的网页,谁找到了贴上来)
这是*.cell文件的内容
%BLOCK LATTICE_CART   
7.365858463230930       0.816888331419153       1.518567634398170   
0.000000000000000       7.749147189276010       0.114969347281651
0.000000000000000       0.000000000000000      16.835000015679299
%ENDBLOCK LATTICE_CART  
%BLOCK POSITIONS_FRAC
   H   0.1045034131293120   0.0506482790444403   0.1503325580937660
   H  -0.2037023292911190   0.2015583952382200   0.1604502537744340
   H  -0.4269999607791240   0.3837162987940400   0.0980194481736503
   H  -0.3453870956286900   0.4791801646100701  -0.0460018173909388
   H   0.2784615598004869   0.2515795170279700  -0.1346530187895070
   H   0.2619963944132780  -0.5890935655390530   0.3725661174512691
   H   0.2595685601772050  -0.5519954246490220   0.1897443712411160
   H   0.0767881789054980  -0.6048204220967270   0.2666625899874510
   H   0.2771409424864049  -0.7522385903899170   0.2411634679797081
   H   0.5634931211089379  -0.7084903644666670   0.2828144510356441
   H   0.5814851393159790  -0.5287740945641601   0.3433449582781520
   H   0.5793331415735910  -0.5003094920852541   0.2386888180011851
   H   0.4946819829083929  -0.2212541120652400   0.3755202742234630
……………………
%ENDBLOCK POSITIONS_FRAC  
%BLOCK KPOINTS_LIST
    0.0000000000000000   0.0000000000000000   
   0.2500000000000000       1.000000000000000
%ENDBLOCK KPOINTS_LIST  
%BLOCK CELL_CONSTRAINTS        
1       2       3
………………………………

把第一行
%BLOCK LATTICE_CART
改成SYSTEM=GRPHENE(你体系的名称 可以随便写)
然后后面填一行1

再把
%ENDBLOCK LATTICE_CART

%BLOCK POSITIONS_FRAC
改为
   H    C    N    Si  (原子的类型)
  52  42   2   2  (原子的数目)
Direct   (坐标表示的方式,对于这种方法,只能用D)

然后把后面的原子符号H C 等去掉
  H  -0.0000000000000000  -0.0000000000000001   0.7500000000000000
  C   0.1666666666666668   0.0833333333333332   0.7500000000000000


%ENDBLOCK POSITIONS_FRAC以后的全部删掉就行了
保存为POSCAR 就可以了
此时要注意保存的格式使用unix格式,ultredit可以选择保存格式,如果用记事本编辑的话,所有的行前不能有空格(从*.cell里面复制过来的空格,自己加的没关系)否则提示找不到原子,论坛里面有很多这样的问题

第二步:
开始结构优化了,我们一般使用脚本来实现,这里使用的是侯老师所说的方法,体积与能量的曲线然后拟合去能量最小的体积进行进一步优化。先讲能量与体积的曲线怎么得来的。

INCAR最主要是设置
PREC =  M # medium, high low
ISTART = 0 # job : 0-new 1-cont 2-samecut
ICHARG =2 # charge: 1-file 2-atom 10-const
EDIFF = 0.1E-04 # stopping-criterion for ELM(对于大的体系是设置0.1E-03)
NSW = 1000 # number of steps for IOM
IBRION = 2 # ionic relax: 0-MD 1-quasi-New 2-CG
ISIF = 4 # stress and relaxation

对于大的体系可以设置
IALGO=48
ALGO= Very Fast
如果速度还不行可以设置POTIM= 0.1

KPOINTS
A
0
M
4 4 4
(体积大的可以弄小一点,这个没试过,但是感觉一个点可能有点问题)

下面开始POSCAR
侯老师也说过这个方法,在手册里面这也是有的
其实就是通过取不同大小的晶胞分别优化,取能量做图。很多虫子们总是在问怎么建立,还有说对于,有三个轴的怎么取晶格常数,在这里如果你采用我这里的方法就不用了(但是在INCAR里面必须设置ISIF=4),为什么呢?我们通过刚才建立POSCAR 里面晶格常数1来实现,改变晶胞的大小就可以了。
有脚本,POSCAR 就不需要了,但是刚才编辑的POSCAR 还是有用的(其实这就是产生POSCAR 的脚本),这个脚本是vasp的说明书里面的
写脚本rvasp
内容如下:
for i in  1.00 1.01  1.02 0.99 0.98
do
cat >POSCAR <                             $i      
7.365858463230930       0.816888331419153       1.518567634398170
0.000000000000000       7.749147189276010       0.114969347281651  
0.000000000000000       0.000000000000000      16.835000015679299
   H    C    N    Si
  52  42   2   2
Direct   
0.1045034131293120   0.0506482790444403   0.1503325580937660   
-0.2037023292911190   0.2015583952382200   0.1604502537744340   
-0.4269999607791240   0.3837162987940400   0.0980194481736503   
-0.3453870956286900   0.4791801646100701  -0.0460018173909388     
0.2784615598004869   0.2515795170279700  -0.1346530187895070     
0.2619963944132780  -0.5890935655390530   0.3725661174512691     
0.2595685601772050  -0.5519954246490220   0.1897443712411160     
0.0767881789054980  -0.6048204220967270   0.2666625899874510     
0.2771409424864049  -0.7522385903899170   0.2411634679797081     
0.5634931211089379  -0.7084903644666670   0.2828144510356441     
0.5814851393159790  -0.5287740945641601   0.3433449582781520     
0.5793331415735910  -0.5003094920852541   0.2386888180011851     
0.4946819829083929  -0.2212541120652400   0.3755202742234630
……………………
!
echo "a= $i" ;mpirun -np 24  vasp
E=`tail -1 OSZICAR`;
echo $i $E >>SUMMARY
cp CONTCAR CONTCAR$i
done


最前面
for i in  1.01 1.01  1.02 0.99 0.98 (设置的体积比例,体积比例是 i 的3次方)
do
cat >POSCAR <

这里面
SYSTEM=TN-PEN                          
   $i
       7.365858463230930       0.816888331419153       1.518567634398170
       0.000000000000000       7.749147189276010       0.114969347281651
       0.000000000000000       0.000000000000000      16.835000015679299
   H    C    N    Si
  52  42   2   2
Direct
   0.1045034131293120   0.0506482790444403   0.1503325580937660
   -0.2037023292911190   0.2015583952382200   0.1604502537744340
   -0.4269999607791240   0.3837162987940400   0.0980194481736503
   -0.3453870956286900   0.4791801646100701  -0.0460018173909388
    0.2784615598004869   0.2515795170279700  -0.1346530187895070
    0.2619963944132780  -0.5890935655390530   0.3725661174512691
    0.2595685601772050  -0.5519954246490220   0.1897443712411160
    0.0767881789054980  -0.6048204220967270   0.2666625899874510
    0.2771409424864049  -0.7522385903899170   0.2411634679797081
    0.5634931211089379  -0.7084903644666670   0.2828144510356441
    0.5814851393159790  -0.5287740945641601   0.3433449582781520
    0.5793331415735910  -0.5003094920852541   0.2386888180011851
    0.4946819829083929  -0.2212541120652400   0.3755202742234630
……………………
这些都是刚才制作的POSCAR ,只有那个第二行$i 改了一下
后面这些
!
echo "a= $i" ;mpirun -np 24  vasp  (24 是核数)
E=`tail -1 OSZICAR`; echo $i $E >>SUMMARY (注意那个`是tab键上的那个,非单引号
cp CONTCAR CONTCAR$i  (这一步是我加的,把优化好的复制出来,为了下一步优化节省时间)
done

脚本rvasp写好以后,最好dos2unix一下  再改变一下权限chmod +x rvasp ,最后运行./rvasp 即可

第三步
运行脚本以后在SUNMMRY可以找到体积比例与对应的能量,我们未必一定把体积算出来,用体积比例可以得到拟合曲线,具体做法,把数据放入origin,然后选中数据在analysis里面,选择fiting,一般设置二次项拟合,找到能量最小值


第四步
把能量最小值对应的体积比例找出来,把得到的类似CONTCAR1.01(后面那个数据是体积比例,选择一个离你拟合相差最小的一个)放到POSCAR中(cp CONTCAR1.01 POSCAR),(如果你最开始选择的体积比例间隔比较大的大,想得到更加精确的体积比例,就把CONTCAR1.01的内容复制到rvasp脚本,替换掉中间部分,然后再在for i in 后面设置你的体积比例,一般两次都能找到比较好的体积比例)

第五步
设置INCAR如下
PREC =  M # medium, high low
ISTART = 0 # job : 0-new 1-cont 2-samecut
ICHARG =2 # charge: 1-file 2-atom 10-const
EDIFF = 0.1E-05 # stopping-criterion for ELM
(对于大的体系是设置0.1E-03)
EDIFFG= -0.001
NSW = 1000 # number of steps for IOM
IBRION = 2 # ionic relax: 0-MD 1-quasi-New 2-CG
ISIF = 3 # stress and relaxation
(这里变为3,是因为我们拟合的未必是最合适的,通过这个参数可以适当调节到更好)
后面的可以不要了,如果算不动加上也无妨,但是最后一次优化精确点好。里面的收敛标准看你自己定,上面的可以满足大部分的要求,但是如果对构型要求不严格的话可以适当调低点收敛标准(EDIFF = 0.1E-04 EDIFFG= 0.01),具体的收敛标准可以查看http://muchong.com/bbs/viewthread.php?tid=2512497

KPOINTS 可以加大数量,但是也没什么太大的必要
A
0
M
4 4 4


POSCAR 就是第四步得到的
输入vasp计算
这一步运行结构优化就可以!但是一定要查看OUTCAR中关于原子受力的信息,如果有个别受力太大的话还是不行的,要继续优化,使用最后一步就行了。
如果有什么意见或者错误,欢迎大家指正!也希望大家能够积极参与讨论!

[ Last edited by 贺仪 on 2012-5-11 at 22:03 ]
回复此楼

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

» 本帖@通知

» 猜你喜欢

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sjzxbe

木虫 (小有名气)



小木虫(金币+0.5):给个红包,谢谢回帖
送鲜花一朵
版主您好,谢谢回复。
  还是不明白?  对同一体系,在INCAR,POTCAR,KPOINTS不变的情况下,只是将前次优化好的CONTCAR转化为新的POSCAR,而INCAR中的参数不变,与前相同,再重新计算一次,它的能量、构型应与上一次相同,应是当前参数设置下的稳定构型,但从84楼所列数据的确不一样?
   如用Gaussian优化某一体系,在某一方法下找到稳定构型后,对优化后构型用相同方法你优化多少次,其能量和构型都是一样的?而VASP确不一样,请指导?
86楼2012-02-21 07:57:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 143 个回答

贺仪(金币+1):谢谢参与
贺仪(金币+2): 谢谢补充! 2011-05-26 20:17:47
总结得不错,欢迎广大虫友积极学习,欢迎纠错,欢迎更好的计算方法建议。


附:其他相关的交流学习贴
引用回帖:
【原创】关于结构弛豫设置及收敛判据选择的一点体会
http://muchong.com/bbs/viewthread.php?tid=2512497

【原创】关于结构优化的总结,体会
http://muchong.com/bbs/viewthread.php?tid=2762758

[ Last edited by youzhizhe on 2011-5-26 at 14:40 ]
2楼2011-05-26 14:35:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
★ ★
zzy870720z(金币+2): 鼓励交流讨论 2011-05-26 17:10:03
贺仪(金币+5): 这样就方便很多了! 2011-05-26 20:18:18
建立POSCAR时可以借助VESTA打开CIF文件,直接保存为vasp文件,改名为POSCAR即可。更加简单实用。
3楼2011-05-26 14:42:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
呵呵 是吗?那就更方便了!
我这么做其实还有一个好处就是后面写脚本的时候那个比例比较好
4楼2011-05-26 14:47:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见