24小时热门版块排行榜    

查看: 25419  |  回复: 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 ]
回复此楼

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

纳米技术与能源及模拟 仿真建模与计算 VASP and MS VASP
第一原理资料汇编 第一性原理相关文档 第一性原理计算-tg 第一性原理计算经验
计算-vasp VASP @个人收集@ Photochemistry
光催化及vasp计算 纳米及第一性原理方向 E-book 好东西啊
vasp从结构优化到光学性质 initio vasp 科研
量子化学理论及量化软件专辑 第一性原理 vasp 收藏

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

» 本帖@通知

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

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

查看全部散金贴

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

夕阳西下

金虫 (著名写手)


脚本 如下:
# !/bin/sh
rm WAVECAR
for i in  4.05 4.10 4.15 4.20 4.25 4.30 4.35 4.40 4.45 4.50
do
cat >POSCAR < SiC-fcc
$i
8.6959999999999997    0.0000000000000000    0.0000000000000000
0.0000000000000000    8.6959999999999997    0.0000000000000000
0.0000000000000000    0.0000000000000000   13.0440000000000005
C  Si
48  48
Direct
  0.1250000000000000  0.1250000000000000  0.0833333333333357
  0.3750000000000000  0.3750000000000000  0.0833333333333357
  0.3750000000000000  0.1250000000000000  0.2500000000000000
  0.1250000000000000  0.3750000000000000  0.2500000000000000
  0.6250000000000000  0.1250000000000000  0.0833333333333357
  0.8750000000000000  0.3750000000000000  0.0833333333333357
  0.8750000000000000  0.1250000000000000  0.2500000000000000
  0.6250000000000000  0.3750000000000000  0.2500000000000000
  0.1250000000000000  0.6250000000000000  0.0833333333333357
  0.3750000000000000  0.8750000000000000  0.0833333333333357
  0.3750000000000000  0.6250000000000000  0.2500000000000000
  0.1250000000000000  0.8750000000000000  0.2500000000000000
  0.6250000000000000  0.6250000000000000  0.0833333333333357
  0.8750000000000000  0.8750000000000000  0.0833333333333357
  0.8750000000000000  0.6250000000000000  0.2500000000000000
  0.6250000000000000  0.8750000000000000  0.2500000000000000
  0.1250000000000000  0.1250000000000000  0.4166666666666643
  0.3750000000000000  0.3750000000000000  0.4166666666666643
  0.3750000000000000  0.1250000000000000  0.5833333333333357
  0.1250000000000000  0.3750000000000000  0.5833333333333357
  0.6250000000000000  0.1250000000000000  0.4166666666666643
  0.8750000000000000  0.3750000000000000  0.4166666666666643
  0.8750000000000000  0.1250000000000000  0.5833333333333357
  0.6250000000000000  0.3750000000000000  0.5833333333333357
  0.1250000000000000  0.6250000000000000  0.4166666666666643
  0.3750000000000000  0.8750000000000000  0.4166666666666643
  0.3750000000000000  0.6250000000000000  0.5833333333333357
  0.1250000000000000  0.8750000000000000  0.5833333333333357
  0.6250000000000000  0.6250000000000000  0.4166666666666643
  0.8750000000000000  0.8750000000000000  0.4166666666666643
  0.8750000000000000  0.6250000000000000  0.5833333333333357
  0.6250000000000000  0.8750000000000000  0.5833333333333357
  0.1250000000000000  0.1250000000000000  0.7500000000000000
  0.3750000000000000  0.3750000000000000  0.7500000000000000
  0.3750000000000000  0.1250000000000000  0.9166666666666643
  0.1250000000000000  0.3750000000000000  0.9166666666666643
  0.6250000000000000  0.1250000000000000  0.7500000000000000
  0.8750000000000000  0.3750000000000000  0.7500000000000000
  0.8750000000000000  0.1250000000000000  0.9166666666666643
  0.6250000000000000  0.3750000000000000  0.9166666666666643
  0.1250000000000000  0.6250000000000000  0.7500000000000000
  0.3750000000000000  0.8750000000000000  0.7500000000000000
  0.3750000000000000  0.6250000000000000  0.9166666666666643
  0.1250000000000000  0.8750000000000000  0.9166666666666643
  0.6250000000000000  0.6250000000000000  0.7500000000000000
  0.8750000000000000  0.8750000000000000  0.7500000000000000
  0.8750000000000000  0.6250000000000000  0.9166666666666643
  0.6250000000000000  0.8750000000000000  0.9166666666666643
  0.0000000000000000  0.0000000000000000  0.0000000000000000
  0.0000000000000000  0.2500000000000000  0.1666666666666643
  0.2500000000000000  0.0000000000000000  0.1666666666666643
  0.2500000000000000  0.2500000000000000  0.0000000000000000
  0.5000000000000000  0.0000000000000000  0.0000000000000000
  0.5000000000000000  0.2500000000000000  0.1666666666666643
  0.7500000000000000  0.0000000000000000  0.1666666666666643
  0.7500000000000000  0.2500000000000000  0.0000000000000000
  0.0000000000000000  0.5000000000000000  0.0000000000000000
  0.0000000000000000  0.7500000000000000  0.1666666666666643
  0.2500000000000000  0.5000000000000000  0.1666666666666643
  0.2500000000000000  0.7500000000000000  0.0000000000000000
  0.5000000000000000  0.5000000000000000  0.0000000000000000
  0.5000000000000000  0.7500000000000000  0.1666666666666643
  0.7500000000000000  0.5000000000000000  0.1666666666666643
  0.7500000000000000  0.7500000000000000  0.0000000000000000
  0.0000000000000000  0.0000000000000000  0.3333333333333357
  0.0000000000000000  0.2500000000000000  0.5000000000000000
  0.2500000000000000  0.0000000000000000  0.5000000000000000
  0.2500000000000000  0.2500000000000000  0.3333333333333357
  0.5000000000000000  0.0000000000000000  0.3333333333333357
  0.5000000000000000  0.2500000000000000  0.5000000000000000
  0.7500000000000000  0.0000000000000000  0.5000000000000000
  0.7500000000000000  0.2500000000000000  0.3333333333333357
  0.0000000000000000  0.5000000000000000  0.3333333333333357
  0.0000000000000000  0.7500000000000000  0.5000000000000000
  0.2500000000000000  0.5000000000000000  0.5000000000000000
  0.2500000000000000  0.7500000000000000  0.3333333333333357
  0.5000000000000000  0.5000000000000000  0.3333333333333357
  0.5000000000000000  0.7500000000000000  0.5000000000000000
  0.7500000000000000  0.5000000000000000  0.5000000000000000
  0.7500000000000000  0.7500000000000000  0.3333333333333357
  0.0000000000000000  0.0000000000000000  0.6666666666666643
  0.0000000000000000  0.2500000000000000  0.8333333333333357
  0.2500000000000000  0.0000000000000000  0.8333333333333357
  0.2500000000000000  0.2500000000000000  0.6666666666666643
  0.5000000000000000  0.0000000000000000  0.6666666666666643
  0.5000000000000000  0.2500000000000000  0.8333333333333357
  0.7500000000000000  0.0000000000000000  0.8333333333333357
  0.7500000000000000  0.2500000000000000  0.6666666666666643
  0.0000000000000000  0.5000000000000000  0.6666666666666643
  0.0000000000000000  0.7500000000000000  0.8333333333333357
  0.2500000000000000  0.5000000000000000  0.8333333333333357
  0.2500000000000000  0.7500000000000000  0.6666666666666643
  0.5000000000000000  0.5000000000000000  0.6666666666666643
  0.5000000000000000  0.7500000000000000  0.8333333333333357
  0.7500000000000000  0.5000000000000000  0.8333333333333357
  0.7500000000000000  0.7500000000000000  0.6666666666666643
!
cecho "a= $i" ;mpirun -np 2  vasp  
E=`tail -1 OSZICAR`; echo $i $E >>SUMMARY
cp CONTCAR CONTCAR$i  
done
18楼2011-05-27 15:57:30
已阅   回复此楼   关注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的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见