前言
一、4个常用的输入文件INCAR、POSCAR、POTCAR、KPOINTS
INCAR: 计算任务类型是什么?怎么计算?
KPOINTS: 包含了倒易空间点网格的坐标和权重。
POSCAR: 包含元胞的原子坐标信息以及初始速度等信息。
POTCAR: 超软赝势或PAW势函数(有一个赝势库)。
Auto
0
G
5 5 1
0. 0. 0.
line-mode generate k
10 ! 10 intersections
Line-mode
rec
0 0 0 ! gamma
0.5 0.5 0 ! X
0.5 0.5 0 ! X
0.5 0.75 0.25 ! W
Line1: 标题或注释行,无特别意义
Line2: 每对高对称点之间产生10个k点
Line3: 以字母L开头表示按line模式产生k点
Line4: 以字母R开头表示k点按倒格子坐标系
Line5: 每对高对称点的坐标。(共三对,表明沿着X-X-W计算能带)
第一是对称性。不同的晶体结构有不同的对称性,我们应该根据晶体结构选择合适的K点,这个在各种教材中已经给出了。不过手动选择K点只在能带计算的时候是必要的,在做优化和性质计算时我们通常选择自动撒点。
第二是K点分割,K点分割越密,计算的结果就越精确,而耗时也会更多,因此我们要寻找一个比较合适的分割。这个可以在你计算的时候做一个测试,就是从小到大选择不同的分割,然后比较静态计算时的总能变化,自己画一个曲线图,当总能变化范围小于0.2eV时,我们就认为不用再取更多的K点了。
一般来说,K点的选取跟晶胞的边长有关,边长越长,所需的K点就越少。如果是块体的单胞,K点的分割要取密一些,比如我们的TiO2单胞,K点分割121212就非常精确了。而如果我们将这个晶胞延xyz方向各扩展一倍,这时只要666足够。越大的晶胞,所需的K点数就越小。如果是表面,那么在某个方向有大于10A的真空层,那么这个方向上K点最多只须取2足矣。
“三个方向K点数和晶格常数乘积近似一致”,但一般乘积不要大于40,尤其是针对比较大的体系,否则会使得优化速度比较慢。
对于六角晶系 hexagonal 的结构,官网建议用 gamma centered,因为M平移之后,网格的对称性和晶胞的对称性会出现不匹配的情况,从而导致计算出错;
对于特别大的体系,也可以使用单Gamma点,只含有一个Gamma点的计算可以使用vasp_gam版加速计算
真空层一定不要加K点,用1即可,因为这个方向都没有结构,还加K点一来没意义,比如说二维体系在xy方向是周期性体系,z方向存在真空层,那么这个方向一定不要加K点,用1即可;
对于原子或者分子的计算,K点取一个gamma点就够了(1 1 1),也就是这个KPOINTS文件可以用于绝大多数的原子或者分子计算,不用再修改;但如果你要用 ISMEAR = -5 来计算,那么就需要把 1 1 1 改成 2 2 2或者3 3 3。
对于原子或者分子的计算,K点取一个gamma点(1 1 1)就够了,因为这些原子和分子不是周期性的,多的K点是能提高周期性镜像分子间的相互作用精度,但是这部分能量是我们不想要的。即:对于含有真空层的体系,在真空层的方向上永远只使用一个K点(真空层一定不要加K点,用1即可)。多余的K点只会增加真空层两边体系的相互作用的精度,而这一部分是我们不想要的。
使用官网建议的取值,每个晶格矢量的长度(a, b, c)乘以这个方向上的K点数目(k)。需要做收敛性测试,比如要算一个绝缘体体系, a,b的晶胞长度为6Å,c方向真空层15Å,K点就是3 3 1
方法2
把结构拖到MS里,点击CASTEP Tools图标,查看不同K点下,K点密度,一般密度在0.03附近最佳,对于正交晶系,晶格常数取模,然后取倒数。这三个倒数的比值就是三个方向上k-points密度的取值,例如,fcc Cu的KPOINTS则是7 7 7。
对于非正交晶系,倒格矢长度和实空间晶格常数不满足反比关系,所以用以上方法就不行了,这个时候用vaspkit可以产生所有体系的K点,vaspkit–102–1(M点),2(G点)–选择倒格子中k点间距,单位是Angstrom-1,一般计算使用0.04,精确计算0.03或0.02
一般晶格常数乘以K点数目大约在30~40之间即可,K点数目足够多的情况下,前面的问题都不是问题,但是不要过分大,导致撒点过于密集,浪费机时,过分小撒点过疏,计算不准;
注:正式计算前一定要做收敛性测试,测Kpoints和Ecut。
关于每个参数的详细含义可以参考VASP手册:
http://cms.mpi.univie.ac.at/wiki/index.php/The_VASP_Manual