计算化学公社

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

[VASP] 如何优化TiO2_anatase晶格常数(a, c)?

[复制链接 Copy URL]

20

帖子

0

威望

4592

eV
积分
4612

Level 6 (一方通行)

本帖最后由 去离子水 于 2015-10-27 19:15 编辑

对一系列固定体积的结构进行弛豫,然后根据birch-murnaghan拟合E-V曲线,得到基态的平衡体积V0。知道平衡体积之后何获得a和c的值呢?用到的脚本如下,采用PBE泛函。

INCAR.relax
  1. ENCUT = 520 eV # energy cut-off for the calculation
  2. PREC = High
  3. LREAL = .FALSE # real space projection .FALSE. or Auto
  4. NSW = 999
  5. IBRION = 2 # CG algorithm
  6. ISIF = 4 # forces and stress are optimized
复制代码
INCAR.static
  1. PREC = High

  2. ISTART = 0
  3. ICHARG = 2
  4. ISMEAR = -5

  5. ENCUT = 520 eV
复制代码
KPOINTS
  1. Automatic mesh
  2.   0
  3. Gamma
  4.   5  5  5
  5.   0  0  0
复制代码
vasp.pbs
  1. #!/bin/bash
  2. #$ -S /bin/bash
  3. #$ -cwd
  4. #$ -j y
  5. #$ -N test_opt
  6. #$ -pe make 12

  7. source /share/apps/intel/Compiler/11.1/073/bin/iccvars.sh intel64
  8. source /share/apps/intel/Compiler/11.1/073/bin/ifortvars.sh intel64
  9. source /share/apps/intel/impi/3.2.0.011/bin64/mpivars.sh

  10. for a in 3.74 3.75 3.76 3.78 3.79 3.80 3.81 3.82 3.83 3.84
  11. do
  12. cat > POSCAR <<!
  13. Anatase
  14. 1.0
  15.         $a         0.0000000000         0.0000000000
  16.         0.0000000000         $a         0.0000000000
  17.         0.0000000000         0.0000000000         9.737
  18.    Ti    O
  19.     4    8
  20. Direct
  21.      0.000000000         0.000000000         0.000000000
  22.      0.500000000         0.500000000         0.500000000
  23.      0.000000000         0.500000000         0.250000000
  24.      0.500000000         0.000000000         0.750000000
  25.      0.000000000         0.000000000         0.208059996
  26.      0.500000000         0.500000000         0.708060026
  27.      0.000000000         0.500000000         0.458059996
  28.      0.500000000         0.000000000         0.958060026
  29.      0.500000000         0.000000000         0.541939974
  30.      0.000000000         0.500000000         0.041940004
  31.      0.500000000         0.500000000         0.291940004
  32.      0.000000000         0.000000000         0.791939974
  33. !
  34. cp INCAR.relax INCAR
  35. echo "a = $a"; mpirun -r ssh -np 12 ~/bin/vasp5.3.3

  36. cp CONTCAR POSCAR
  37. cp INCAR.static INCAR
  38. echo "a = $a"; mpirun -r ssh -np 12 ~/bin/vasp5.3.3

  39. E=`grep "TOTEN" OUTCAR | tail -1 | awk '{printf "%12.6f \n", $5 }'`
  40. V=`grep "volume" OUTCAR | tail -1 | awk '{printf "%12.4f \n" , $5}'`
  41. echo $a $V $E >> SUMMARY.dat

  42. done
复制代码


得到的结果
SUMMARY.dat
  1. 3.74 136.2000 -105.833996
  2. 3.75 136.9300 -105.865334
  3. 3.76 137.6600 -105.892136
  4. 3.78 139.1300 -105.928546
  5. 3.79 139.8600 -105.944722
  6. 3.80 140.6000 -105.955402
  7. 3.81 141.3400 -105.960574
  8. 3.82 142.0900 -105.960563
  9. 3.83 142.8300 -105.954437
  10. 3.84 143.5800 -105.949877
复制代码


根据birch-murnaghan状态方程拟合的曲线

V0=141.863A^3


1. Select one volume and relax from starting structure keeping the volume fixed (ISIF=4 see sec. 6.24; ISMEAR=0 or 1, see section 6.38).
2. Start a second relaxation from previous CONTCAR file (if the initial cell shape was reasonable this step can be skipped, if the cell shape is kept fixed, you never have run VASP twice).
3. As a final step perform one more energy calculation with the tetrahedron method switched on (ISMEAR=-5), to get very accurate unambiguous energies (no relaxation for the final run).

计算流程参考:http://cms.mpi.univie.ac.at/vasp/vasp/Accurate_bulk_relaxations_with_internal_parameters_two.html
脚本文件参考:http://cms.mpi.univie.ac.at/vasp/vasp/Bulk_calculations_with_internal_parameters.html & 侯老师VASP入门教程



得到平衡体积V0=141.863A^3,在POSCAR里面如果第二行为负,则代表体积,所以我又这样试了一下:

INCAR
  1. ENCUT = 520 eV # energy cut-off for the calculation
  2. PREC = High
  3. LREAL = .FALSE # real space projection .FALSE. or Auto
  4. NSW = 999
  5. IBRION = 2 # CG algorithm
  6. ISIF = 4 # forces and stress are optimized
复制代码

POSCAR
  1. Anatase
  2. -141.863
  3.         3.7844998837         0.0000000000         0.0000000000
  4.         0.0000000000         3.7844998837         0.0000000000
  5.         0.0000000000         0.0000000000         9.5143003464
  6.    Ti    O
  7.     4    8
  8. Direct
  9.      0.000000000         0.000000000         0.000000000
  10.      0.500000000         0.500000000         0.500000000
  11.      0.000000000         0.500000000         0.250000000
  12.      0.500000000         0.000000000         0.750000000
  13.      0.000000000         0.000000000         0.208059996
  14.      0.500000000         0.500000000         0.708060026
  15.      0.000000000         0.500000000         0.458059996
  16.      0.500000000         0.000000000         0.958060026
  17.      0.500000000         0.000000000         0.541939974
  18.      0.000000000         0.500000000         0.041940004
  19.      0.500000000         0.500000000         0.291940004
  20.      0.000000000         0.000000000         0.791939974
复制代码

KPOINTS
  1. Automatic mesh
  2.   0
  3. Gamma
  4.   5  5  5
  5.   0  0  0
复制代码

vasp.pbs
  1. #!/bin/bash
  2. #$ -S /bin/bash
  3. #$ -cwd
  4. #$ -j y
  5. #$ -N isif4
  6. #$ -pe make 12

  7. source /share/apps/intel/Compiler/11.1/073/bin/iccvars.sh intel64
  8. source /share/apps/intel/Compiler/11.1/073/bin/ifortvars.sh intel64
  9. source /share/apps/intel/impi/3.2.0.011/bin64/mpivars.sh


  10. mpirun -r ssh -np 12 ~/bin/vasp5.3.3
复制代码
最后得到的CONTCAR
  1. Anatase                                 
  2.    1.01350313575973     
  3.      3.7709606715685475    0.0000000000000000    0.0000000000000000
  4.      0.0000000000000000    3.7709606715685475    0.0000000000000000
  5.      0.0000000000000000    0.0000000000000000    9.5827430546962322
  6.    Ti   O
  7.      4     8
  8. Direct
  9.   0.0000000000000000  0.0000000000000000  0.0000000000000000
  10.   0.5000000000000000  0.5000000000000000  0.5000000000000000
  11.   0.0000000000000000  0.5000000000000000  0.2500000000000000
  12.   0.5000000000000000  0.0000000000000000  0.7500000000000000
  13.   0.0000000000000000  0.0000000000000000  0.2066888233929389
  14.   0.5000000000000000  0.5000000000000000  0.7066888533929343
  15.   0.0000000000000000  0.5000000000000000  0.4566888233929389
  16.   0.5000000000000000  0.0000000000000000  0.9566888533929343
  17.   0.5000000000000000  0.0000000000000000  0.5433111466070657
  18.   0.0000000000000000  0.5000000000000000  0.0433111766070611
  19.   0.5000000000000000  0.5000000000000000  0.2933111766070611
  20.   0.0000000000000000  0.0000000000000000  0.7933111466070657

  21.   0.00000000E+00  0.00000000E+00  0.00000000E+00
  22.   0.00000000E+00  0.00000000E+00  0.00000000E+00
  23.   0.00000000E+00  0.00000000E+00  0.00000000E+00
  24.   0.00000000E+00  0.00000000E+00  0.00000000E+00
  25.   0.00000000E+00  0.00000000E+00  0.00000000E+00
  26.   0.00000000E+00  0.00000000E+00  0.00000000E+00
  27.   0.00000000E+00  0.00000000E+00  0.00000000E+00
  28.   0.00000000E+00  0.00000000E+00  0.00000000E+00
  29.   0.00000000E+00  0.00000000E+00  0.00000000E+00
  30.   0.00000000E+00  0.00000000E+00  0.00000000E+00
  31.   0.00000000E+00  0.00000000E+00  0.00000000E+00
  32.   0.00000000E+00  0.00000000E+00  0.00000000E+00
复制代码
体积是能对上的:V0=141.863=1.01350313575973^3 * 3.7709606715685475 * 3.7709606715685475 * 9.5827430546962322

所以最后a=1.013*3.771=3.820, c=1.013*9.583=9.707
文献计算值a=3.786, c=9.737(Phys. Rev. B 2001, 63 (15), 155409.)
实验值a=3.782, c=9.502(J. Am. Chem. Soc. 1987, 109 (12), 3639–3646.)
这样对吗?






补充:侯老师VASP入门教程里得到平衡体积之和,不知如何得到循环变量$i的值??










3753

帖子

3

威望

1万

eV
积分
19671

Level 6 (一方通行)

围观吃瓜群众

2#
发表于 Post on 2015-10-27 23:44:18 | 只看该作者 Only view this author
本帖最后由 卡开发发 于 2015-10-27 23:45 编辑

差不多,一般这样的精度也就行了。其实EOS也只是个近似,晶体内部的实际变量应该不止三个晶格常数这样,说白了就是做不同的晶格常数下晶格的能量,然后找能量极小点,fitting EOS相当于对这些点内插得到极值点而已(dE/dΩ=0)。

原则上来说isif当中isif=3涉及到的优化方式可靠的话能够得到准确的结构而不必fitting EOS,前提是stress和force在几个参数的收敛性测试条件下(通常参考能量,但实际远远不够),当然这有可能也只是理论上讲讲,实际可能影响的因素很复杂。如果再考虑这么复杂的收敛性测试,看起来反而fitting EOS更加省力一些。

评分 Rate

参与人数
Participants 1
eV +3 收起 理由
Reason
sobereva + 3

查看全部评分 View all ratings

日常打哑谜&&探寻更多可能。
原理问题不公开讨论,非商业性质讨论欢迎私聊。不做培*,不接代*,不接*发谢谢。

20

帖子

0

威望

4592

eV
积分
4612

Level 6 (一方通行)

3#
 楼主 Author| 发表于 Post on 2015-10-28 09:54:34 | 只看该作者 Only view this author
卡开发发 发表于 2015-10-27 23:44
差不多,一般这样的精度也就行了。其实EOS也只是个近似,晶体内部的实际变量应该不止三个晶格常数这样,说 ...

拟合eos得到平衡体积后,在POSCAR的第二行写上-V0,然后做isif=3。最后从CONTCAT里计算a,c的值,这种做法对吗?还有没有其他方法在知道平衡体积后得到a,c的值

3753

帖子

3

威望

1万

eV
积分
19671

Level 6 (一方通行)

围观吃瓜群众

4#
发表于 Post on 2015-10-28 10:16:34 | 只看该作者 Only view this author
去离子水 发表于 2015-10-28 09:54
拟合eos得到平衡体积后,在POSCAR的第二行写上-V0,然后做isif=3。最后从CONTCAT里计算a,c的值,这种做 ...

可以,你也可以改变形状和改变体积交替进行,不过工作量相应大一些。非立方晶格的情形fitting EOS没准不同的c或是a/c的情形对应的v0可能会不一样,这点非常不容易处理。

评分 Rate

参与人数
Participants 1
eV +2 收起 理由
Reason
sobereva + 2

查看全部评分 View all ratings

日常打哑谜&&探寻更多可能。
原理问题不公开讨论,非商业性质讨论欢迎私聊。不做培*,不接代*,不接*发谢谢。

本版积分规则 Credits rule

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

GMT+8, 2025-8-15 15:03 , Processed in 2.083549 second(s), 24 queries , Gzip On.

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