VASP四大输入文件详解:POSCAR、POTCAR、KPOINTS、INCAR

VASP四大输入文件详解:POSCAR、POTCAR、KPOINTS、INCAR

前言

VASP(Vienna Ab initio Simulation Package)是材料计算领域最常用的第一性原理软件之一。学会VASP,第一步就是理解它的四大输入文件。这篇文章将逐一剖析每个文件的作用、格式和常见配置。

一、VASP计算的整体流程

在深入文件之前,先理解VASP的工作流程:

复制代码
输入文件 → VASP计算 → 输出文件
   ↓
POSCAR(结构)
POTCAR(赝势)
KPOINTS(k点)
INCAR(参数)

VASP读取这四个文件,进行自洽计算,输出能量、能带、电荷密度等结果。


二、POSCAR:晶体结构文件

2.1 基本格式

POSCAR描述的是晶胞的几何信息。标准格式:

复制代码
注释行(可选)
晶格常数缩放因子
第一行晶格向量
第二行晶格向量
第三行晶格矢量
元素符号(VASP 5.2+)
每种元素的原子数
坐标类型(Selective Dynamics可选)
原子坐标

2.2 实例:Si晶胞

复制代码
Silicon diamond structure
5.43
0.5 0.5 0.0
0.0 0.5 0.5
0.5 0.0 0.5
Si
2
Direct
0.00 0.00 0.00
0.25 0.25 0.25

逐行解释:

  • 第1行:注释,可以是任意文字
  • 第2行:缩放因子5.43 Å(对于Si,这是晶格常数)
  • 第3-5行:晶格向量(这里是FCC基矢)
  • 第6行:元素符号(VASP 5.2之后版本需要)
  • 第7行:每个元素的原子数(这里是2个Si)
  • 第8行:坐标类型(Direct=分数坐标,Cartesian=笛卡尔坐标)
  • 第9-10行:原子坐标

2.3 Direct vs Cartesian

  • Direct(分数坐标):以晶格矢量为基,数值在0-1之间
  • Cartesian(笛卡尔坐标):以Å为单位,真实空间坐标

转换公式:

rcart=rdirect⋅a1+rdirect⋅a2+rdirect⋅a3\mathbf{r}{cart} = \mathbf{r}{direct} \cdot \mathbf{a}1 + \mathbf{r}{direct} \cdot \mathbf{a}2 + \mathbf{r}{direct} \cdot \mathbf{a}_3rcart=rdirect⋅a1+rdirect⋅a2+rdirect⋅a3

2.4 Selective Dynamics

如果你想固定某些原子(比如表面计算固定底层原子):

复制代码
Selective Dynamics
Direct
0.00 0.00 0.00  F F F
0.25 0.25 0.25  T T T

T表示该方向可以移动,F表示固定。


三、POTCAR:赝势文件

3.1 什么是赝势?

真实的原子核附近电子波函数振荡剧烈,需要很大的平面波基组才能描述。赝势的思想是:

把芯电子和原子核一起等效为一个"赝原子核",只显式计算价电子。

3.2 如何生成POTCAR

VASP提供了标准赝势库,用cat命令合并:

bash 复制代码
cat /path/to/POTCAR/Si/POTCAR > POTCAR
# 或者多元素
cat /path/to/POTCAR/Ga/POTCAR /path/to/POTCAR/As/POTCAR > POTCAR

关键:POTCAR中元素的顺序必须与POSCAR一致!

3.3 POTCAR包含的信息

打开POTCAR可以看到:

  • 赝势类型(PAW、USPP等)
  • 泛函类型(PBE、LDA等)
  • 价电子数
  • 截断能建议值(ENMAX)

3.4 检查POTCAR

bash 复制代码
grep ENMAX POTCAR

输出每个元素的截断能建议值。


四、KPOINTS:布里渊区采样

4.1 k点的作用

布里渊区积分需要离散采样,k点网格决定了采样密度。网格越密,结果越精确,计算量越大。

4.2 常用格式:Monkhorst-Pack网格

复制代码
K-Points
0
Monkhorst-Pack
4 4 4
0 0 0

解释:

  • 第1行:注释
  • 第2行:0表示自动生成
  • 第3行:生成方法(Monkhorst-Pack是最常用的)
  • 第4行:k点网格(4×4×4)
  • 第5行:偏移量(通常设为0)

4.3 k点密度如何选择?

经验规则:

  • 金属:需要密集k点(如8×8×8或更高)
  • 半导体/绝缘体:可以用较稀疏网格(如4×4×4)
  • 大超胞:k点可以更少(如2×2×2或Γ点)

收敛性测试:

逐步增加k点密度,观察能量变化。当能量变化<1 meV/atom时,认为收敛。

4.4 能带计算的KPOINTS

能带计算需要沿高对称路径采样:

复制代码
Line-mode
10
Line
0.0  0.0  0.0    Γ
0.5  0.0  0.0    X
0.5  0.5  0.0    M
0.0  0.0  0.0    Γ

五、INCAR:计算参数控制

INCAR是最复杂的输入文件,控制计算类型、收敛标准、泛函选择等。

5.1 基本参数

bash 复制代码
# 系统描述
SYSTEM = Si calculation

# 计算类型
ENCUT = 400          # 平面波截断能(eV)
PREC = Accurate      # 精度设置
EDIFF = 1E-6         # 电子步收敛标准
EDIFFG = -0.01       # 离子步收敛标准(负值表示力)
IBRION = 2           # 离子优化算法(2=CG)
ISIF = 3             # 应力张量优化(3=优化晶胞形状和体积)
NSW = 100            # 最大离子步数
ISMEAR = 0           # 展宽方法(0=高斯)
SIGMA = 0.05         # 展宽宽度(eV)

5.2 关键参数详解

ENCUT(截断能)
  • 决定平面波基组大小
  • 建议:取POTCAR中ENMAX的1.3-1.5倍
  • 太小:结果不准确
  • 太大:计算量增大,精度提升有限
ISMEAR(展宽方法)
  • 0:高斯展宽(半导体、绝缘体)
  • 1:Methfessel-Paxton(金属)
  • -5:四面体法(能带、DOS计算)
ISIF(优化自由度)
  • 2:固定晶胞形状和体积,只优化原子位置
  • 3:优化原子位置和晶胞
  • 4:优化原子位置和晶胞形状,固定体积
  • 7:只优化晶胞形状和体积(固定原子)
IBRION(离子步算法)
  • -1:不进行离子步(单点能计算)
  • 0:分子动力学
  • 1:RMM-DIIS(快速但可能不稳定)
  • 2:共轭梯度法(稳健,推荐)
  • 3:Damped MD

5.3 常见计算场景配置

单点能计算
bash 复制代码
ENCUT = 400
PREC = Accurate
EDIFF = 1E-6
IBRION = -1
结构优化
bash 复制代码
ENCUT = 400
PREC = Accurate
EDIFF = 1E-6
EDIFFG = -0.01
IBRION = 2
ISIF = 3
NSW = 100
能带计算
bash 复制代码
ICHARG = 11          # 从CHGCAR读取电荷密度
ISMEAR = 0
SIGMA = 0.01
LORBIT = 11          # 输出投影能带

六、文件间的关联

四个文件不是独立的,需要互相匹配:

文件 关联
POSCAR ↔ POTCAR 元素顺序必须一致
POSCAR ↔ KPOINTS k点密度应与晶胞大小匹配
POTCAR ↔ INCAR ENCUT ≥ ENMAX
INCAR ↔ KPOINTS ISMEAR设置应与k点密度匹配

七、常见错误与调试

7.1 POSCAR错误

  • 对称性问题:检查ISYM参数
  • 原子重叠:检查坐标是否正确
  • 晶格矢量为0:检查缩放因子

7.2 POTCAR错误

  • 元素顺序不匹配:最常见错误!
  • 截断能过低:提高ENCUT

7.3 KPOINTS错误

  • k点过少:能量不收敛
  • 金属展宽过大:SIGMA值需调整

7.4 INCAR错误

  • 参数冲突:如ICHARG=11但无CHGCAR
  • 收敛标准过松:结果不可靠
  • 收敛标准过紧:计算永远不收敛

八、实用工具推荐

VESTA

可视化POSCAR,检查结构是否正确。

VASPKIT

自动生成KPOINTS、转换文件格式。

pymatgen

Python库,可编程处理VASP文件。


写在最后

四大输入文件是VASP计算的基础,理解它们的格式和参数含义是进行可靠计算的前提。建议新手:

  1. 用简单体系(Si、GaAs)练手
  2. 对照文献检查参数设置
  3. 做收敛性测试
  4. 养成记录参数的习惯

下一篇文章,我们将深入能带结构计算的细节。


参考文献

  1. Kresse, G., & Furthmüller, J. (1996). Physical Review B, 54(16), 11169.
  2. VASP Manual: https://www.vasp.at/wiki/