VASP 结构优化
1. 输入文件
VASP 的输入文件为四个基本文件:INCAR、POSCAR、POTCAR、KPOINTS。
1.1 INCAR 参数设置
System = Si-film # 系统名称,可自由定义以标识当前计算体系。
# 任务控制
ISTART = 0 # 初始态设置:
# 0 从头开始计算。
# 1 从 WAVECAR 文件读取初始波函数。
# 2 从 WAVECAR 和 CHGCAR 文件读取波函数和电荷密度。
ISPIN = 1 # 自旋极化选项:
# 1 非自旋极化(非磁性材料)。
# 2 自旋极化(磁性材料)。
ICHARGE = 2 # 初始电荷密度选择:
# 2 从 POTCAR 提供的静态电荷密度开始。
# 1 从头生成电荷密度。
LWAVE = .FALSE. # 输出 WAVECAR 文件:
# .TRUE. 输出(存储波函数数据)。
# .FALSE. 不输出(节省磁盘空间)。
LCHARG = .FALSE. # 输出 CHGCAR 文件:
# .TRUE. 输出(存储静态电荷密度)。
# .FALSE. 不输出(节省磁盘空间)。
ISYM = 0 # 对称性设置:
# 0 关闭对称性(含缺陷或非对称结构)。
# 1 或 2 保持对称操作。
# 电子弛豫
ENCUT = 500 # 平面波截断能(eV),决定计算精度和效率。
ISMEAR = 0 # 展宽方法:
# -5(四面体法,用于金属),0(高斯展宽,用于半导体),1 或 2(费米展宽)。
SIGMA = 0.05 # 展宽宽度(eV),推荐值:0.01 ~ 0.1。
EDIFF = 1E-08 # SCF 收敛判据:迭代间能量变化小于 1E-08 eV 时停止。
NELMIN = 6 # 最少电子迭代次数,确保基本收敛。
NELM = 300 # 最大电子迭代次数,避免迭代循环。
GGA = PE # 泛函选择,使用 PBE(Perdew-Burke-Ernzerhof)交换关联泛函。
LREAL = .FALSE. # 倒空间计算,提高精度但增加计算量。
ADDGRID = .TRUE. # 启用额外 FFT 网格以提高数值精度。
ALGO = N # 电子弛豫算法:
# Normal(标准模式),Fast 或 VeryFast(加速模式)。
PREC = Accurate # 精度设置:
# Accurate(高精度),Normal 或 Low(用于初始测试)。
# 离子弛豫
ISIF = 2 # 晶格优化选项:
# 2 仅优化原子位置,固定晶格参数。
# 3 同时优化原子位置和晶格形状。
EDIFFG = -0.01 # 离子收敛判据:
# 负值基于力(eV/Å)。
# 正值基于能量。
IBRION = 2 # 离子弛豫算法:
# 2 共轭梯度法(适用于大多数优化任务)。
POTIM = 0.5 # 时间步长,控制优化速度。
NSW = 200 # 最大离子步数。
# 并行控制
NPAR = 4 # FFT 网格并行维度(推荐:总核数的平方根)。
KPAR = 2 # 并行 k 点数目(总核数应能被 NPAR × KPAR × NCORE 整除)。
NCORE = 12 # 每个任务的核数。
对于结构优化,INCAR 中的关键参数包括 IBRION、ISIF、NSW、EDIFF 和 EDIFFG。
1.1.1 常用 IBRION 设置及应用
(1) 单点能计算
IBRION = -1
用途:用于固定晶格的单点能计算、电子结构或态密度分析。
注意:避免设置NSW > 0以防止浪费资源。
(2) 结构优化
-
IBRION = 1(RMM-DIIS)
用途:适用于简单系统中的光滑势能面。
局限:在复杂或不稳定势能面上可能遇到收敛问题。 -
IBRION = 2(共轭梯度法)
用途:最常用的方法,适用于大多数系统。
优点:在陡峭和复杂的势能面上表现良好。 -
IBRION = 3(阻尼分子动力学)
用途:稳定振荡或发散的优化路径。
(3) 分子动力学
IBRION = 0
用途:研究系统在不同温度下的动力学行为,如扩散或振动模式。
(4) 声子计算
a. 有限差分法 IBRION = 5, 6
使用有限差分计算声子模式:
5:不考虑对称性,适用于含缺陷或低对称性结构。6:利用对称性,适用于高对称性结构的高效计算。
b. 微扰理论(DFPT) IBRION = 7, 8
使用密度泛函微扰理论(DFPT)计算声子模式:
7:不考虑对称性优化,适用于低对称性结构。8:利用对称性加速计算。
1.1.2 常用 ISIF 设置及应用
-
默认值(若未设置):
ISIF = 2(仅优化原子位置,固定晶格形状和体积)。 - 特殊情况:
IBRION = 0(分子动力学)或LHFCALC = .TRUE.(杂化泛函):ISIF = 0。
-
ISIF = 2(最常用)
仅优化原子位置,适用于二维材料、固定晶格常数或表面/界面系统。 -
ISIF = 3(体相优化)
优化原子位置、晶格形状和体积,适用于体相材料的弛豫。 -
ISIF = 4(固定体积优化)
优化原子位置和晶格形状,保持体积不变,适用于压力测试。 -
ISIF = 6(仅晶格优化)
优化晶格形状和体积,不弛豫原子位置,适用于晶格参数测试。 ISIF = 0(位置优化,不计算应力)
优化原子位置但不计算应力,用于固定晶胞优化。
1.1.3 NSW、EDIFF 和 EDIFFG 的推荐设置
| 参数 | 功能 | 初始优化 | 高精度优化 | 单点计算 |
|---|---|---|---|---|
NSW |
最大离子步数 | 100-200 | 200-500 | 0 |
EDIFF |
SCF 收敛(eV) | 1e-05 | 1e-08 | 1e-06 |
EDIFFG |
离子收敛(eV/Å) | -0.1 | -0.01 | 不需要 |
1.2 POSCAR 示例
以下为描述体相硅结构的 POSCAR 文件示例:
Si-bulk # 系统名称,可自定义
1.0 # 全局缩放因子(可用于缩放晶格)
5.430 0.000 0.000 # 晶格矢量 a
0.000 5.430 0.000 # 晶格矢量 b
0.000 0.000 5.430 # 晶格矢量 c
Si # 原子类型
2 # 每种类型的原子数
Direct # 坐标类型(Direct:分数坐标;Cartesian:笛卡尔坐标)
0.000 0.000 0.000 # 原子 1 的坐标
0.250 0.250 0.250 # 原子 2 的坐标
硅薄膜(Si-film)的 POSCAR 文件示例:
Si Thin Film
1.00000000000000
5.4299999999999997 0.0000000000000000 0.0000000000000000
0.0000000000000000 5.4299999999999997 0.0000000000000000
0.0000000000000000 0.0000000000000000 20.8599999999999994
Si
16
Selective dynamics # 启用选择性动力学
Direct
0.000000 0.000000 0.200000 F F F # 三个方向均固定
0.500000 0.500000 0.200000 T T F # z 方向固定,x 和 y 方向自由
0.500000 0.000000 0.330153 T T T # 三个方向均自由
0.000000 0.500000 0.330153 T T T
0.250000 0.250000 0.265077 T T T
0.750000 0.750000 0.265077 T T T
0.750000 0.250000 0.395230 T T T
0.250000 0.750000 0.395230 T T T
0.000000 0.000000 0.460307 T T T
0.500000 0.500000 0.460307 T T T
0.500000 0.000000 0.590460 T T T
0.000000 0.500000 0.590460 T T T
0.250000 0.250000 0.525384 T T T
0.750000 0.750000 0.525384 T T T
0.750000 0.250000 0.655537 T T T
0.250000 0.750000 0.655537 T T T
1.3 KPOINTS 文件
(1) Monkhorst-Pack 网格
Monkhorst-Pack 网格为周期性晶体计算提供均匀的 k 点分布。
Automatic k-point generation # 自动 k 点生成方法(注释)
0 # 忽略总 k 点数,使用自动生成
Monkhorst-Pack # 选择 Monkhorst-Pack 网格
4 4 4 # x、y、z 方向的网格密度
0 0 0 # 无网格偏移
适用场景:周期性晶体、优化、态密度计算和电子结构分析。
(2) Gamma 网格
Gamma 网格将 k 点网格以 Gamma 点为中心,适用于小晶格或非对称晶格。
Automatic k-point generation # 自动 k 点生成方法(注释)
0 # 忽略总 k 点数,使用自动生成
Gamma # 选择 Gamma 中心网格
4 4 4 # x、y、z 方向的网格密度
0 0 0 # 无网格偏移
适用场景:小体系、非对称晶格或快速优化计算。
1.4 POTCAR 文件使用
POTCAR 包含描述系统中原子性质所需的赝势信息。
VASP 提供多种类型的赝势:
- POT_GGA_PAW:GGA 泛函的 PAW 赝势。
- POT_LDA_PAW:LDA 泛函的 PAW 赝势。
生成 POTCAR 文件:
对于含 Si 和 H 原子的系统,拼接赝势文件:
cat /POT_GGA_PAW/POTCAR_Si /POT_GGA_PAW/POTCAR_H > POTCAR
- 确保 POTCAR 中的泛函类型与 INCAR 设置一致。
- 保持 POTCAR 中的原子顺序与 POSCAR 中的元素顺序一致。
2. 输出文件
2.1 CONTCAR 文件
内容:优化后的晶体结构,包括更新后的原子坐标和晶格参数。 格式:与 POSCAR 相同,可直接作为进一步计算的输入。 用途:
- 查看最终优化的晶体结构。
- 用于进一步计算(如能带结构、态密度)。
2.2 OSZICAR 文件
内容:
- SCF(自洽场)迭代能量变化的简要记录。
- 每次 SCF 步骤的能量(E0、dE)。
- SCF 收敛信息。
- 优化过程中每离子步的总能量变化。
用途:
- 快速检查 SCF 计算或优化的收敛情况。
- 判断是否需要调整 EDIFF 或优化步数。
2.3 OUTCAR 文件
内容:
- 最详细的输出文件,包含完整的计算历史。
- 包括电子弛豫、迭代信息、收敛判据等参数。
- 每个优化步的能量、力、应力、原子坐标。
- 电荷密度信息(如适用)。
用途:
- 分析优化过程中的收敛细节和能量/力的变化。
2.4 XDATCAR 文件
内容:
- 优化或分子动力学(MD)过程中每个离子步的原子坐标。
用途:
- 分析优化过程中原子的运动路径。
- 进行结构变化的轨迹分析。
2.5 vasprun.xml 文件
内容:XML 格式的全部计算数据记录,适合解析和后处理。
- 包括电子迭代、离子优化参数和结果。
- 能量、力、应力、原子坐标等数据。
用途:
- 使用 pymatgen 或 ASE 等工具提取关键信息。
3. 优化流程与收敛判据
3.1 优化流程
- 结构初始化:
- 初始结构通过
POSCAR文件提供。 - 使用
POTCAR、KPOINTS和INCAR文件配置优化条件。
- 初始结构通过
- 逐步优化:
- 每次离子优化步后,重新计算系统的总能量、原子力和晶格应力。
- 优化持续至满足收敛判据(如
EDIFFG)或达到最大步数(NSW)。
- 结构更新:
- 每个优化步的中间结果存储在
XDATCAR文件中。 - 优化后的最终结构保存在
CONTCAR文件中。
- 每个优化步的中间结果存储在
3.2 收敛判据
可通过以下方法判断优化过程的收敛性:
OUTCAR文件:-
检查每个原子上的力是否小于 EDIFFG。 - 验证总能量变化是否小于
EDIFF。
-
OSZICAR文件:- 查看 SCF 迭代中的能量变化(
E0和dE)。 - 判断 SCF 过程是否已稳定收敛。
- 查看 SCF 迭代中的能量变化(
CONTCAR文件:- 提取最终优化后的原子位置和晶格参数。
- 若未收敛,
CONTCAR文件包含最后一步的结构。
- 使用工具:
- 使用
pymatgen或ASE等工具解析vasprun.xml文件并评估收敛性。
- 使用
3.3 常见问题与解决方案
3.3.1 SCF 不收敛
问题:SCF 迭代出现能量振荡或发散。
可能原因:
- 初始电子密度设置不当。
- 截断能(
ENCUT)不足。
解决方案:
- 增大最大 SCF 迭代次数:设置
NELM=200。 - 提高截断能:将
ENCUT增至 520 eV 或更高。
3.3.2 优化不收敛
问题:优化达到最大步数(NSW)但未满足力或能量的收敛判据。
可能原因:
- 初始结构远离能量极小值。
- 收敛判据(
EDIFFG)过严。 - 优化步长(
POTIM)过大。
解决方案:
- 提供合理的初始结构或使用外部工具预优化。
- 放松收敛判据:将
EDIFFG从-0.01调为-0.02。 - 减小优化步长:将
POTIM从0.5调为0.2。
3.3.3 优化中出现振荡
问题:优化过程中能量和力反复振荡,无法稳定收敛。
可能原因:
- 优化步长(
POTIM)过大。 - 优化算法不适合该系统。
解决方案:
- 减小优化步长:将
POTIM设为0.2或更小。 - 更换优化算法:
- 设置
IBRION=2使用共轭梯度法。 - 设置
IBRION=3使用阻尼分子动力学。
- 设置
3.3.4 优化中出现发散
问题:优化过程中结构严重变形,导致能量大幅增加。
可能原因:
- 初始结构不合理导致原子间距过短。
- 真空层间距不足(对于薄膜或纳米结构等低维体系)。
- 赝势文件不正确。
解决方案:
- 确保初始原子间距合理,避免原子过于接近。
- 增大真空层间距:对于低维体系,真空层厚度至少设为 15 Å。
- 检查
POTCAR文件,确保赝势与原子种类匹配。