vasp输入
总结了一些常用tag和实例
Adapted from vasp wiki
INCAR-电子步
ICHARG
initial charge density 初始电荷密度
ICHARG=0
读取WAVECAR来获得初始电荷密度
ICHARG=1
从CHGCAR里面读取
ICHARG=2
原文:take superposition of atomic charge densities
不知道什么意思
ICHARG=4
从POT里面读取
要求LVTOT=.TRUE.
ICHARG=10+(0,1,2,4)
与前面各自对应,但是电子密度在整个electronic minimization过程中不变 用处: 在绘制band structure时候(比如 L-Γ-X-U)的图的时候,通过读取已有的CHGCAR,把KPOINTS设定在L-Γ-X-U,就可以画出来band structure
NELMIN
minimum number of electronic SCF steps:每个离子步中最少的电子步数量 : relaxation to local energy minimum 计算最小能量的模式:
EDIFF
电子步能量收敛的判据
ISMEAR
能量在费米能量周围的轨道,其电子占有概率的设置。?
https://www.vasp.at/wiki/index.php/ISMEAR
definition: determines how the partial occupancies are set for each orbital 不知道对不对: 原本假设是Kohn Sham计算出来每一个态都与一个电荷相关联,但是,对于金属比如说,费米面附近的态是被部分填充的(fermi-dirac 公式,填充概率在周围从100%下降到0%,这种情况下,ISMEAR来决定费米面附近是怎么被部分填充的
ISMEAR = N, N为正整数
计算方式为methfessel-paxton order N. 看不懂,但是这个partial occpancies可以是负数或者大于1 用于计算金属力和phonon frequency,有精确的SIGMA时候计算结果比较准确 不应用于半导体和绝缘体,错误会达到20%
ISMEAR = 0
Gaussian smearing (不懂) 这个方法通过sigma= finite value 外推到 sigma=0 时候的能量,但是可以不给初始的sigma? 可用于绝缘体计算force和phonon frequency
对于未知体系,用ismear=0比较好
ISMEAR=−1
Fermi smearing.
ISMEAR=−2
partial occupancies are read in from the WAVECAR or INCAR file, and kept fixed 需要定义FERWE,有可能需要FERDO
FERWE
条件:ISMEAR=−2时候必须
FERWE=f(1)f(2)f(3)...f(NBANDS*Nk)
定义每一个band和k点的 partial occupancy 部分占据
Nk应该是k点数量
FERDO
条件:ISMEAR=-2且是 spin-polarized calculation(?)
FERDO=f(1)f(2)f(3)...f(NBANDS*Nk)
Nk应该是k点数量
Note that the partial occupancies are also written to the OUTCAR file, but in this case they are multiplied by 2, i.e. they are between 0 and 2.
ISMEAR=−3
: 根据一组sigma和ismear来循环计算,需要SMEARINGS参数
SMEARINGS
SMEARINGS = ismear1 sigma1 ismear2 sigma2 … 当ISMEAR = -3 时候必须设置,对于SMEARINGS中每一个参数进行尝试 并且计算能量
要求 IBRION = -1 即 离子不允许移动 并且设置NSW
ISMEAR=−4
: tetrahedron method (use a Γ-centered k-mesh).
ISMEAR=−5
: tetrahedron method with Blöchl corrections (use a Γ-centered k-mesh). 适用于semiconductor 和 insulator。 适用于bulk materials, DOS 计算结果比较好,但是计算力和stress tensor时候对于金属在计算力的时候有5%~10%偏差,可用于绝缘体计算force和phonon frequency,因为没有partial occupation, occupation只能是1和0。
SIGMA
是ISMEAR的相关选项 似乎ISMEAR=0 时候可以不定义SIGMA
definition:width of the smearing in eV. 不知道对不对;费米能级周围的宽度 由于fermi-dirac公式,电子占据特定量子态的概率为。由于vasp计算时候k点网格是有限的,电子没有办法精确的占据网格,所以通过这个sigma来允许范围内的 轨道/态 被部分占据。 K点网格越多 (KPOINTS)那么SIGMA可以设置的越小
INCAR-离子步
NSW
maxmimum number of ionic steps 最大离子步数量
IBRION =0 时候,是必须项目 IBRION !=0 时候,即,在进行relaxation时候,能进行的最多离子步数量
EDIFFG
离子步能量收敛的判据
如果EDIFFG>0当 新的离子步 的 电子步收敛时的能量 与 上一个离子步 的 电子步收敛时的能量 之差小于收敛判据EDIFFG时离子步优化结束。如果EDIFFG<0,则为当所有力小于EDIFFG绝对值时(负的EDIFFG)离子步优化结束。
INCAR-任务
SYSTEM = string
系统的名称,没有锤子用,显示在outcar里面
IBRION
https://www.vasp.at/wiki/index.php/IBRION
分子动力学或弛豫离子? MD or relaxation to the local minimum energy
当IBRION =0 进行分子动力学molecular dynamics计算
其他情况下是relaxation to minimum energy的计算
ISIF = 1~7
https://www.vasp.at/wiki/index.php/ISIF 重要参数,指定自由度
ISIF=3:全自由,用于晶格弛豫,寻找晶格常数
POTIM = real
IBRION的重要参数 set the time step for MD (IBRION=0) or step width scaling (IBRION !=0)
IBRION = 0
分子动力学计算,integrate Newton’s equations of motion. POTIM的单位是femto second
SMASS
是IBRION=0或者3时设置 smass=-3 NVE ensemble molecular dynamic SMASS=-2 the initial velocities are kept constant SMASS=-1 SMASS≥0, a canonical ensemble is simulated using the algorithm of Nosé. In this case the velocities are scaled 总能量守恒
SMASS提供阻尼因子 μ
IRBION =-1
离子不能移动,只是计算电子的自由度,没锤子用
NFREE
IBRIO>0时的重要设置,定义了:离子收敛过程中记住的步骤数
IBRION =1
要求初始位置非常精确,否则需要设置Nelmin=4~8
IBRION=2
比较快的离子弛豫算法
IBRION=3
阻尼分子动力学
IBRION =5 ,6,7,8,44
看不懂
INCAR-输出
LORBIT
LORBIT于RWIGS一起,决定了输出PROCAR PROOUT 具体参考https://www.vasp.at/wiki/index.php/LORBIT
DOSCAR
需要INCAR 中 定义 LORBIT才会有这个输出
POSCAR
vasp5
fcc (100) surface 注释
3.53 大于0:晶格常数,缩放所有的晶格向量(之后 三行)和原子坐标,如果小于0,则代表了总体积
.50000 .50000 .00000 晶格向量1
-.50000 .50000 .00000 晶格向量1
.00000 .00000 5.00000 晶格向量1
B N 元素
1 1 每个元素数量
Selective Dynamics 如果是selective dynamics,则可以定义每个原子是否可以移动
Kartesisch 笛卡尔坐标或者直接坐标
.00000 .00000 .00000 F F F F是fixed,固定坐标
.00000 .50000 .50000 F F F
.00000 .00000 1.00000 F F F
.00000 .50000 1.50000 T T T
.00000 .00000 2.00000 T T T
Cartesian 如果有初始速度的话会有接下来这些行
0.01 0.01 0.01 初始速度相关的
0.00 0.00 0.00
optionally predictor-corrector coordinates
given on file CONTCAR of MD-run
实例:普通的计算(过渡金属氧化物nasicon)
计算内容
通过conjugate gradient算法(studynote里面有)进行对晶格尺寸的优化(ionic relaxation)[IBRION=2]。通过计算力和stress tensor来调整晶格,计算过程中晶格中离子位置 和 晶格形状 和 晶格体积 都是可变的[ISIF=3]。
计算过程解释
参考vasp_study_note中的DFT计算过程总结部分:
起始
读取POSCAR得到起始离子位置,并给出初始电荷密度猜测为:(假设没有相互作用时的)单个原子电荷密度的简单叠加[ICHARG=2],从而得到起始的电子密度n(r)。
电子步
用这个电子密度代入Kohn-sham 方程中的hartree potential,,可以得到一组电子波函数,用得到的电子波函数求新的n(r),然后递归运算。递归运算算法是常用算法[ALGO=NORMAL](Blocked-Davidson 算法)。
计算时,费米面附近轨道的占有概率用Gaussian method计算[ISMEAR = 0],这个设置适合于半导体绝缘体。计算方式是:设定一个初始的sigma值0.05[SIGMA = 0.05],使得能量在范围内的轨道可以被电子部分占据(常用于计算金属) 。通过减少sigma重新计算来外推到 sigma=0 时候的能量。
ENCUT = 520与计算速度有关,参考studynote中energy cutoff。block theorem给出的倒空间某点k对应的单电子波函数波函数。此电子波函数所对应的能量本征值为,由于K是任意倒易单位矢量,所以E有无数多个,但是显然只有较低能量的是有效的(电子不会优先占用高能量)。所以设定了cutoff使得 这样对于给定的cutoff(如520eV),可以得到k的新的波函数 这样使得电子波函数不会太复杂,减少计算成本
由于过渡金属的存在(Ti),设置了自旋极化的计算[ISPIN = 2]。自旋极化是指d轨道被部分占据时,自旋方向相同的电子会产生磁矩的现象。磁矩大小 与 自旋方向相同的电子数量有关。起始的磁矩猜测是[MAGMOM = 38*0.6]。这个是用pymatgen生成的
另外,过渡金属需要LDA+U计算来引入d电子局域化的影响。U参数是向d或f层加入电子时候的额外能量参数。由[LDAU = True]打开LDA+U计算,[LDAUTYPE = 2]指定了+U计算类别是简化LSDA+U方法。设定[LDAUU]中四个数字依次对应POSCAR中的四个元素的U值(POSCAR中第二个元素是Ti,对应U=某值。POSCAR中其他元素不是过渡金属,所以U=0)。J参数是与d、f电子自旋相关的参数,但是在LDAU的基础上J也有对应的一套参数 [LDAUL = 0 0 0 0]是quantum number of on-site interaction。[LDAUPRINT = 1]是将LDA+U的一些结果写入OUTCAR输出。[LASPH = True](平面波基矢的非球面贡献)可增加+U计算的准确性。对于[LDAUTYPE = 2],[LMAXMIX = 4]可以加速收敛
计算时候使用的赝势是[METAGGA = Scan],是meta-GGA的一种。[LMIXTAU = True]可以通过传递电子的动能信息帮助收敛。[LREAL = Auto]要求赝势在实空间进行投影,对投影算符进行自动优化,一般都会使用这个。
此递归运算为电子步(离子位置固定,计算电子密度从而获得当前离子位置所对应的能量),收敛条件是[EDIFF = 1e-05]。[NELMIN = 6]和[NELM = 200]要求电子步最多进行200步,最少进行6步。事实上大于40步一般就完蛋。
离子步
每次电子步收敛后,进行离子步(通过conjugate gradient算法[IBRION=2])计算。从最后一个电子步中读取受力,通过受力方向来对离子来进行一个微小的移动(此移动与POTIM相关,或许不收敛的时候可以尝试修改以下POTIM?),得到新的离子位置。对新的离子位置,重复电子步的计算。如果EDIFFG>0当 新的离子步 的 电子步收敛时的能量 与 上一个离子步 的 电子步收敛时的能量 之差小于收敛判据EDIFFG时离子步优化结束。如果EDIFFG<0,则为当所有力小于|EDIFFG|时离子步优化结束。得到最终的晶体结构
离子步收敛时(离子移动的判据EDIFFG = -0.01)计算结束。cutoff是ENCUT = 520 eV。最多允许进行[NSW = 150]150步
输出
[LDAUPRINT = 1]是将LDA+U的一些结果写入OUTCAR输出。[LORBIT = 11]输出了DOSCAR和lm-decomposed PROCAR。[LWAVE = False]是指不将波函数写入WAVECAR
性能优化
[LPLANE = TRUE]是一个计算优化项目,[NCORE=12]是并行核心数量,一般等于单路核心数量。[NSIM = 4]是同时优化的band数量一般不需要改。[PREC = Accurate]会让计算结果相对准确。