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 TT表示该方向可以移动,F表示固定。
三、POTCAR:赝势文件
3.1 什么是赝势?
真实的原子核附近电子波函数振荡剧烈,需要很大的平面波基组才能描述。赝势的思想是:
把芯电子和原子核一起等效为一个"赝原子核",只显式计算价电子。
3.2 如何生成POTCAR
VASP提供了标准赝势库,用cat命令合并:
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
grepENMAX 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 基本参数
# 系统描述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 常见计算场景配置
单点能计算
ENCUT=400PREC=Accurate EDIFF=1E-6 IBRION=-1结构优化
ENCUT=400PREC=Accurate EDIFF=1E-6 EDIFFG=-0.01IBRION=2ISIF=3NSW=100能带计算
ICHARG=11# 从CHGCAR读取电荷密度ISMEAR=0SIGMA=0.01LORBIT=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计算的基础,理解它们的格式和参数含义是进行可靠计算的前提。建议新手:
- 用简单体系(Si、GaAs)练手
- 对照文献检查参数设置
- 做收敛性测试
- 养成记录参数的习惯
下一篇文章,我们将深入能带结构计算的细节。
参考文献
- Kresse, G., & Furthmüller, J. (1996).Physical Review B, 54(16), 11169.
- VASP Manual: https://www.vasp.at/wiki/
