插播:我自己有一个公众号,一直没有弄,最近准备重启,准备用来分门别类的储存各种笔记、经验帖、视频和我自己的文章,这样如果那篇文章大家觉着有用,需要用的时候方便翻出来。大家感兴趣可以搜索一下——养正道人。
Vasp手册上关于INCAR的标签共计有356个,合周天大衍岁星轮转之数,当然我们实际上可能会触及到并需要了解的标签少不过七八个,多不过三四十个,而且触类旁通,一法破法法皆破,而且在实际操作中的【出问题-查手册-头疼-改标签】的循环中,顺·其·自·然地对这些标签就熟悉了。
首先指出,INCAR者,VASP之控制台也,各项标签就是各个按钮。
其次,很多经验帖都反复强调过,关于书写INCAR标签的最高准则就是:不懂就不写,不出问题就不改,出了问题第一时间看手册,看不懂手册问师兄,师兄不理你哭着再问。
不懂就不写者,vasp手册云:我们默认值弄得挺对路的,真不懂就别瞎写了。
不出问题就不改者,先要求计算流程没问题,再要求计算正确性。
出了问题第一时间看手册者,手册为最根本之理论来源。
看不懂至再问者,动其心,撼其魄也。
本文对一些最基本的标签进行说明。并以结构优化、自洽计算、非自洽计算为类别介绍最简单的INCAR模板。
大家可能发现了,大部分公开出来的教程是不给出具体模板的,一方面人家也要挣钱买白粉,不是,买奶粉;另一方面很多参数的设置是个人或研究组多年积累的成果,也算一种“知识产权“,所以我给大家的是一种最简化的模板,只是为先具有一定雏形,一些主观可调的参数是随便设的。那么这些具体的设置以及其他更加细化的标签设置呢,需要大家自己的积累咯。
当然后续的文章,时间成本允许的情况下说不定会拿出一些标签的理论背景谈一谈怎么设置和为什么那样设置吧,这可能就要到研二研三有过相当计算经验的时候才可以。现在就先不好高骛远了。
1, SYSTEM
SYSTEM=xxx,写在第一行,当然第一行随便行,文件的第一行基本都是注释用的。
2, ISTART
是否读取波函数WAVECAR文件
可选0 | 1 | 2 | 3
0 :自动生成波函数(轨道)
1 :读取WAVECAR中的轨道信息,读不到就自动生成,根据新的设定重新生成平面波基组。
2 :读取WAVECAR中的轨道信息,读不到就自动生成,使用旧的平面波基组。
3 :这个比较复杂而且基本用不上。
这个参数默认是0,所以他是用来分割计算任务或者想在跑了一次任务上继续跑的时候用的。即便这种情况,我看到的也是基本用1。
3, ICHARG
如何构造初试电荷密度。
可选0 | 1 | 2 | 4 | 10 | 11 | 12
0:根据初试波函数计算电荷密度。(如果读取不到WAVECAR,就会转到2)
1:读取CHGCAR中的电荷密度
2:根据原子电荷密度叠加生成(自动生成)
4:用不上
11、12:读取电荷密度用以非自洽计算(能带结构、DOS),11表示从CHGCAR读取,12表示以原子电荷密度叠加生成。做DFT的时候我们应当用11。
4,IBRION
离子优化(即结构优化)方案
可选-1 | 0 | 1 | 2 | 3 | 5 | 6 | 7 | 8 | 44 |
-1:离子实不动。(离子实:其实我是不想动的)
0:标准第一性分子动力学
1:离子弛豫(结构优化)RMM-DLLS算法
2:离子弛豫 结合梯度算法
3:离子弛豫 阻尼分子动力学
5、6:振动频率、弹性常数计算(有限差法)
7、8:同上(微扰法)
44:暂时用不上。
5,ENCUT
设置截断能。以ev为单位。具体设多大呢,据说以POTCAR文件中的1.5倍左右为宜。亦可以参考文献中的截断能。亦可以进行测试。默认值按所设精度从POTCAR读取
6,EDIFF
电子自洽计算收敛判据。默认值10的负四次方,写作1E-04
7,EDIFFG
结构优化收敛判据,为正值代表以能量为判据,为负值表示以受力为判据。默认值为EDIFF的十倍。
8,NELM
设置电子自洽的最大步数。默认为60
9,NSW
设置结构优化的自大步数。默认为0,及不进行结构优化。
10,ALGO
电子波函数优化算法。可选Normal,Fast,Veryfast(首字母就行)。这个标签其实功能很多的,目前针对我们DFT计算而言。
11,PREC
计算精度模式,默认为Normal,可选Low | Medium | High | Normal | Single | Accurate
肯定是越大算的越慢,每种模式包含的内容可于手册查询
12, POTIM
设置结构优化或分子动力学时的步长。就是每一步移动离子实多远。分子动力学中为时间步(这咱不懂)。
13,ISMEAR
确定如何为各个轨道设置轨道占据分数
可选-5 | -4 | -3 | -2 | -1 | 0 | 大于0的整数
-4、-5:四面体方法(使用半导体、绝缘体)
-3、-2、-1:不常用
0:高斯方法,半导体、导体、绝缘体。用此方法需要用SIGMA设置展宽
大于0:M-P方法,适合导体。数字的具体含义没有仔细看。
14,ISPIN
是否考虑自旋
1:不考虑
2:考虑
15,MAGMOM
设置各原子磁矩,这也是考虑自旋的时候才要求设置的。形式可以是以数组的形式,也可以写n*n,比如三碘化铬可以写,1.0*1,2.0*3。具体怎么设磁矩呢,非磁原子设零是肯定的,铁磁态其实可以全直接采取默认值1.0,反铁磁态要将磁性原子分成两批,设成绝对值一样大,一正一负的数值。(百度一下铁磁与反铁磁就明白了)
(一) 结构优化
SYSTEM = Structural optimization #注释行
#ISTART = 0 #自动生成波函数 设不设都行
#ICHARG = 2 #自动生成电荷密度 设不设都行
IBRION = 2 #用梯度算符进行结构优化
NSW = 100 #设置结构优化最大步数为100
ENCUT = 400 #设置截断能为400
EDIFF = 1E-04 #设置自洽收敛标准为10的-4次方
EDIFFG = 1E-03 #设置结构优化收能量判据为10的负三次方
NELM = 100 #设置电子自洽最大步数为100
ALGO = Veryfast #电子优化模式
PERC = Accurate #精度打到最高
POTIM = 0.01 #设置离子移动步长,此为默认值。
ISPIN = 2 #考虑自旋
MAGMOM = 12*1.0 #磁矩全部设成1.0
ISMEAR = -5 #使用四面体方法进行轨道投影
SIGMA = 0.5 #为四面体方法设置展宽
(二) 静态计算(将结构优化的CONTCAR复制过来,改为POSCAR,KPOINT、POTCAR沿用)
SYSTEM = Electronic self consistency #注释行
#ISTART = 0 #自动生成波函数 设不设都行
#ICHARG = 2 #自动生成电荷密度 设不设都行
#IBRION = -1 #原子不动 可以直接不写
#NSW = 100 #不用设置结构优化最大步数
ENCUT = 400 #设置截断能为400
EDIFF = 1E-04 #设置自洽收敛标准为10的-4次方
#EDIFFG = 1E-03 #不用设置结构优化收能量判据
NELM = 100 #设置电子自洽最大步数为100
ALGO = Fast #提高电子优化模式
PERC = Accurate #精度打到最高
POTIM = 0.01 #设置离子移动步长,此为默认值。
ISPIN = 2 #考虑自旋
MAGMOM = 12*1.0 #磁矩全部设成1.0
ISMEAR = -5 #使用四面体方法进行轨道投影
SIGMA = 0.5 #为四面体方法设置展宽
(三) 能带计算(orDOS计算)
SYSTEM = Electronic self consistency #注释行
#ISTART = 0 #自动生成波函数 设不设都行
ICHARG = 11 #读取电荷密度用以非自洽计算
#IBRION = -1 #原子不动 可以直接不写
#NSW = 100 #不用设置结构优化最大步数
ENCUT = 400 #设置截断能为400
EDIFF = 1E-04 #设置自洽收敛标准为10的-4次方
#EDIFFG = 1E-03 #不用设置结构优化收能量判据
#NELM = 150 #非自洽
#ALGO = Fast #非自洽
PERC = Accurate #精度打到最高
POTIM = 0.01 #设置离子移动步长,此为默认值。
ISPIN = 2 #考虑自旋
#MAGMOM = 12*1.0 #磁矩全部设成1.0
ISMEAR = -5 #使用四面体方法进行轨道投影
SIGMA = 0.5 #为四面体方法设置展宽
进行此计算时需要将自洽计算中的KPINTS、POSCAR、POTACAR、CHGCAR复制过来,能带计算需要另外准备K点路径文件。
从结构优化算到非自洽计算这已经基本上是vasp自身能做的DFT计算的全部内容了(应该吧)。当然vasp还可以结合很多其他的计算软件计算大量的其他性能。这短时间不在我们的钻研之列,比较复杂。
我们基本上了解了怎么去准备计算用的文件,(很多工作vaspkit可以代劳,但是就是你得再学一遍vaspkit),准备好了之后呢,就可以进行计算了。
现在总结一下前边的内容
我们:
1, 建模——得到POSCAR (MS建模可见许多教程和视频)
2, 上一篇文章——得到KPOINT
3, 将POSCAR涉及到的原子按其顺序叠加——cat POTCAR_A POTCAR_B >>POTCAR ——得到POTCAR
4, 本文——得到INCAR
这就是前处理的基本内容,当然里面还有很多很多小细节可以学呢啊,不过我们先暂时满足于此,因为这样跌跌撞撞我好歹可以开始计算了,深入学习要以后慢慢的来。
如何进行具体的运算呢,应当是怎么样的一种程序?诶,这是一般的教程不太提的内容啊,很多教材到这里就闪过去了,为什么呢,因为这应该是组里教会你的,而不是网上。所以我想专门用这样一期文章去写这些事情好像也有点浪费时间,不过为了保证笔记的完整性,下篇文章或者下下篇文章争取简单涉及一下这个部分。
下篇文章的主要问题探讨的是,当vasp计算完了以后,我们怎么能看懂他的计算结果。
【下期】如何读懂vasp的结果——后处理及其分析总论