【VASP】KPOINTS文件介绍

前言

一、4个常用的输入文件INCAR、POSCAR、POTCAR、KPOINTS

INCAR: 计算任务类型是什么?怎么计算?

KPOINTS: 包含了倒易空间点网格的坐标和权重。

POSCAR: 包含元胞的原子坐标信息以及初始速度等信息。

POTCAR: 超软赝势或PAW势函数(有一个赝势库)。

一、KPOINTS 的两种结构

第一种结构:(非对称)

Auto
0
G
5 5 1
0.  0.  0.
  • 第一行:注释
  • 第二行:这个数字选项,按手册里提到的,可以认为0就是M-P方法,如果输入其他非零数字,就认为是选择其他的生成方法或者K点模式(即选几个k点)
  • 第三行G表示的是以gamma点为中心生成网格,还有一种是原始的Monkhorst-Pack网格,又可以叫M点,二者的区别是M在G的基础上在三个方向平移了1/(2N)个单位,所以G点是M点的特殊情况;VASP只认第一个字母,大小写均可,所以Gamma可以写G,g,gamma,ga…,Monhorst可以写为M, m等。
  • 第四行表示在xyz三个方向上生成对应数目的K点,本例是551,意思是在倒格矢a,b方向上都只取5个k点,c方向取1个k点,一共25个k点,441意思是在倒格矢a,b方向上都取4个k点,c方向上取一个,一共16个,K点的密度由KPOINTS决定,KPOINTS取点越多,包含到计算里的信息越多,但是经常有人拿不准K点数目怎么取,经常出错,所以在接下来会总结几个方法教大家怎么取K点
  • 第五行表示shift的值, 即对所按网格分割产生的k点进行平移的量(这里不平移),一般都写成 0 0 0,一般不用改,Gamma center的K点就相当于MP方法shift了0.5 0.5 0.5。

第二种结构:(高对称)

Line-mode(计算能带)

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计算能带,注两行数据)

二、关于KPOINTS设置的一些经验

第一是对称性。不同的晶体结构有不同的对称性,我们应该根据晶体结构选择合适的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点只会增加真空层两边体系的相互作用的精度,而这一部分是我们不想要的。

三、KPOINTS的选取

  1. 方法1

使用官网建议的取值,每个晶格矢量的长度(a, b, c)乘以这个方向上的K点数目(k)。需要做收敛性测试,比如要算一个绝缘体体系, a,b的晶胞长度为6Å,c方向真空层15Å,K点就是3 3 1

在这里插入图片描述

  1. 方法2

    把结构拖到MS里,点击CASTEP Tools图标,查看不同K点下,K点密度,一般密度在0.03附近最佳,对于正交晶系,晶格常数取模,然后取倒数。这三个倒数的比值就是三个方向上k-points密度的取值,例如,fcc Cu的KPOINTS则是7 7 7。

在这里插入图片描述

  1. 方法3

对于非正交晶系,倒格矢长度和实空间晶格常数不满足反比关系,所以用以上方法就不行了,这个时候用vaspkit可以产生所有体系的K点,vaspkit–102–1(M点),2(G点)–选择倒格子中k点间距,单位是Angstrom-1,一般计算使用0.04,精确计算0.03或0.02

  1. 方法4

一般晶格常数乘以K点数目大约在30~40之间即可,K点数目足够多的情况下,前面的问题都不是问题,但是不要过分大,导致撒点过于密集,浪费机时,过分小撒点过疏,计算不准;

注:正式计算前一定要做收敛性测试,测Kpoints和Ecut。

四、K点的介绍

KPOINTS文件是倒空间的取样方法,我们在进行计算时,我们要通过KPOINTS文件设置布里渊区k点网格取样大小或能带结构计算时沿高对称方向的k点。对于到底什么是k点,我们这里引用大神的论述,简单介绍一下。(下面介绍k点的内容引自小木虫bingmou的帖子。)

k点就是一个晶格中运动的电子系统的量子数,它是在倒空间上的一个矢量,也是“准动量”,是具体计算中的抽样点。k点是矢量,也可以认为是倒空间的一个格点,因此它不同的点是具有不同的对称性。k点和体系的正晶格相关联的。我们知道一个晶格除了平移对称性还是点群对称性,而k点和晶格相联系,从而具有正格矢的所有点群对称性。所以对不同的体系,k点的倒格矢是不同的,因而坐标也就不同。230种空间群所对应的布里渊区特殊k点的坐标都可以查到,网址附在文末。

在这里插入图片描述

一般来说,k点越密越多,计算精度也越高,当然计算成本也越高。我们通过VASP计算一个分子或者单原子时,总是选取一个Gamma点,因为这个点上的能级分布基本反映了整个能带,每个能带都和k相关性不大;而对于半导体则需要多一点的k点,而金属需要最多的k点,因为金属中的电子的非局域性很强。VASP软件的k点取样方法有Monhkorst-Pack方法和Gamma方法,通过选取高对称的k点从而大大的减少计算体系性质的计算量,而具体的k点分布取决于这个体系的晶格的对称性。Monhkorst-Pack方法的误差比较小,因此一般情况下都采用Monhkorst-Pack方法(几何优化在倒空间中的取样间隔小于0.05Å即可)。Gamma方法主要是为了保证六方体系的k点的对称性,VASP手册中也有特别提醒,对于六方晶系,不要用Monhkorst-Pack方法来自动生成格点,而要用Gamma方法。k点的数量与该方向上的正基矢长度成反比,这是因为正基矢加长,那么在倒空间里面相应的k矢量会缩短,这种缩短不仅仅是一个长度的。

在这里插入图片描述

倒易点阵和正点阵之间的关系

缩短,将导致第一布里渊区缩小,而将其他的布里渊区折叠到第一布里渊区的结果就是第一布里渊区的k点密度大大增加,本来Gamma点只有10个本征值,现在可能有20个本征值。这也是supercell的能带都比较密集的原因。所以如果是表面计算,那么在z方向就只需要一个Gamma点,这是因为类似原子轨道的原因;但是supercell很多人计算都只做gamma点的原因则是因为第一布里渊区已经很密集,Gamma点上的本征值已经叠加了很多原来不是gamma点的k点,只计算Gamma点就已经很精确了。

感谢bingmou大神所做的十分详尽的k点介绍。下面就来介绍一下如何生成KPOINTS文件。一般如非必要,可以先用自动模式生成k点,VASP会自动生成一个简约化后的k点矩阵,存于IBZKPT文件里面,可以直接复制里面的数据到KPOINTS文件来用,其实这也是这个输入法的主要用途,为了减少重复自动生成格点的时间(小木虫zzgyb大神所述http://muchong.com/t-3180318-1)。

关于每个参数的详细含义可以参考VASP手册:

http://cms.mpi.univie.ac.at/wiki/index.php/The_VASP_Manual

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

何为xl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值