菜鸟科技网

VASP命令有哪些常用参数?

VASP 核心运行流程

要运行 VASP,您需要以下几个关键文件:

VASP命令有哪些常用参数?-图1
(图片来源网络,侵删)
  1. POTCAR: 赝势库文件,VASP 根据您在 INCAR 中指定的元素,自动从 POTCAR 目录中读取相应的赝势文件。
  2. INCAR: 输入参数控制文件,这是您告诉 VASP 如何计算的核心文件,包含了所有计算设置(如截断能、算法、收敛标准等)。
  3. POSCAR: 原子位置和晶胞结构文件,定义了您要计算的材料结构。
  4. KPOINTS: k 点网格设置文件,定义了在布里渊区进行积分的 k 点取样方式。

基本运行命令:

在包含以上四个文件的目录下,打开终端,输入:

mpirun -np <进程数> vasp_std
  • mpirun: 是 MPI (Message Passing Interface) 的执行命令,用于并行计算。
  • -np <进程数>: 指定您希望使用的 CPU 核心数。-np 16 表示使用 16 个核心。
  • vasp_std: 是 VASP 的可执行文件名,根据您的版本和编译设置,也可能是 vasp_gam (Gamma点专用,效率更高) 或 vasp_ncl (无标度版本,用于计算NMR等)。

INCAR 文件详解

INCAR 是 VASP 的灵魂,下面列出一些最常用和最重要的参数:

基本设置

参数 含义 常用值/说明
SYSTEM 计算任务的描述 任意字符串,用于标识任务,如 Bulk Si
ISTART 从哪个波函数开始 0: 从头开始 (随机波函数)。
1: 从上一个 WAVECAR 文件继续。
2: 从 CHGCAR 读取电荷密度并生成波函数。
ICHARG 从哪个电荷密度开始 0: 从头开始。
1: 从上一个 CHGCAR 文件继续。
2: 从 CHGCAR 读取并作为初始猜测。
ENCUT 平面波截断能量 极其重要! 必须大于所用赝势要求的最大截断能,通常取所用元素赝势 ENCUT 的 1.2-1.3 倍作为安全值。
ISMEAR 态占据方式 -5: TETRA (四面体方法,半导体/绝缘体首选,用于态密度计算)。
0: Fermi (费米能级展宽,金属首选)。
1: Gaussian (高斯展宽,常用于金属和过渡态搜索)。
2: Fixed (固定占据,用于计算总能量)。
SIGMA 展宽参数 (eV) ISMEAR > 0 时使用,金属通常取 0.05-0.2 eV。ISMEAR=1 时,SIGMA 约等于 kBT。
IBRION 离子弛豫算法 2: VASP 的默认共轭梯度法,最常用。
5: 准牛顿算法,有时收敛更快。
-1: 不进行离子弛豫,仅进行电子步自洽计算。
NSW 离子弛豫的最大步数 0 表示不弛豫,进行结构优化时,通常设置为 100-500。
EDIFF 能量收敛标准 (eV) 电子步自洽循环的收敛标准。1E-51E-6
EDIFFG 离子步收敛标准 (eV/Å) 极其重要! 控制离子弛豫何时停止。
正值: 当能量变化小于此值时停止。
负值: 当作用力小于此值的绝对值时停止。-0.01-0.001 eV/Å。

高级设置

参数 含义 常用值/说明
ALGO 自洽算法 Normal: 标准算法。
Fast: 更快但可能不稳定,适用于初步优化。<brVeryFast: 更快,但对复杂系统可能不收敛。<brDamped: 阻尼算法,对某些难收敛系统有效。
NELM 最大电子步数 默认为 100,对于难收敛的系统,可以增加到 200-500。
ISIF 优化自由度 2: 优化离子位置,固定晶胞体积 (常见于固定体积下的弛豫)。
3: 优化离子位置和晶胞形状 (体积不变),即应力弛豫。
4: 优化离子位置和晶胞体积 (最完全的几何优化)。
7: 计算 Helmholtz 自由能 (需要设置 LEPSILON=.TRUE.)。
LREAL 实空间投影 .FALSE.: 默认,精度最高。<br.TRUE.: 对于大体系可以加速,但可能影响精度。
LVHAR 硬 Hartree 项 .TRUE.: 计算电荷密度时会分开计算硬 Hartree 项,可以加速,通常保持默认 .TRUE.
LWAVE 是否输出 WAVECAR .TRUE.: 输出。
.FALSE.: 不输出,节省磁盘空间。
LCHARG 是否输出 CHGCAR .TRUE.: 输出。
.FALSE.: 不输出,节省磁盘空间。
MAGMOM 初始磁矩 为每个原子指定初始磁矩 (单位: μB)。MAGMOM = 2*0.6 8*2.0 表示前2个原子磁矩为0.6,后8个为2.0。
ISPIN 自旋极化计算 1: 非自旋极化。
2: 自旋极化,当设置 MAGMOM 时,通常会自动设为 2。

KPOINTS 文件详解

KPOINTS 文件定义了布里渊区的 k 点取样,最常用的是 Monkhorst-Pack 网格。

VASP命令有哪些常用参数?-图2
(图片来源网络,侵删)

文件格式 (通常为 4 行):

0           // 格式标记: 0 表示 Gamma 中心网格,1 表示 Monkhorst-Pack 网格
0 0 0       // K 点偏移量 (通常为 0 0 0)
4 4 4       // 沿 a, b, c 晶格方向的 k 点数
0           // 0 表示自动生成权重为 1 的 k 点网格

如何选择 k 点数?

  • 经验法则: k 点数 ≈ 100 / 原胞中的原子数,这是一个粗略的起点。
  • 测试收敛性: 这是最可靠的方法,先用较稀疏的 k 点网格 (如 3x3x3) 计算得到一个能量值 E1,然后用更密的网格 (如 6x6x6) 计算 E2|E1 - E2| 小于您关心的精度 (1 meV/atom),则认为 k 点网格已经收敛。
  • 金属: 需要足够密的 k 点来精确描述费米面附近的态。
  • 半导体/绝缘体: 在 Γ 点处能带不连续,k 点密度要求相对较低,但计算态密度时仍需足够密。

POSCAR 文件详解

POSCAR 文件定义了晶胞结构和原子位置。

文件格式 (以硅的立方晶胞为例):

VASP命令有哪些常用参数?-图3
(图片来源网络,侵删)
Silicon cubic         // 注释行 (第一行),任意
5.430                  // 晶格常数 (Å)
1.0 0.0 0.0           // 晶格向量 a
0.0 1.0 0.0           // 晶格向量 b
0.0 0.0 1.0           // 晶格向量 c
Si                    // 原子元素种类列表 (顺序很重要)
2                    // 每种元素的原子个数
Selective dynamics    // 原子优化标记 (可选)
Direct               // 坐标系类型 (Direct=分数坐标, Cartesian=笛卡尔坐标)
0.25 0.25 0.25      // 第1个 Si 原子的位置
0.75 0.75 0.75      // 第2个 Si 原子的位置

关键点:

  • 注释行: 任意字符串,用于标识结构。
  • 晶格常数: 可以是单个标量 (立方晶胞) 或三个分量 (正交晶胞),也可以是完整的 3x3 矩阵 (任意晶胞)。
  • 原子种类和数量: 必须一一对应。
  • Selective dynamics: 如果有这一行,则下一行的坐标标记 (F/T 或 K/F) 决定了该原子在弛豫时是否被优化。TK 表示优化,F 表示固定。
  • 坐标系: Direct 是分数坐标 (相对于晶格向量),Cartesian 是笛卡尔坐标 (Å),VASP 默认是 Direct

实用技巧和脚本

生成 KPOINTS 文件

使用 vaspkit 工具可以非常方便地生成 KPOINTS 文件。

# 在 vaspkit 目录下运行
./vaspkit
# 根据菜单提示选择选项,41 (生成 Monkhorst-Pack 网格)

批量运行和监控

job.sh 脚本示例:

#!/bin/bash
#SBATCH --job-name=VASP_JOB
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=16
#SBATCH --partition=cpu
#SBATCH --time=24:00:00
# mpirun 命令会由 SLURM 自动替换
mpirun -np 16 vasp_std
# 计算完成后,检查收敛性
echo "Job finished. Checking convergence..."
grep "reached required accuracy" OUTCAR > /dev/null
if [ $? -eq 0 ]; then
    echo "Calculation converged successfully."
else
    echo "Warning: Calculation did not converge!"
fi

监控计算进度:

# 实时显示 OUTCAR 文件的最后几行,查看能量变化
tail -f OUTCAR
# 查看电子步循环进度
grep "E=" OUTCAR
# 查看离子步进度
grep "F=" OUTCAR

后处理分析

  • vaspkit: 强大的后处理工具,可以提取能量、生成态密度图、绘制能带结构、输出用于 VESTA 可视化的文件等。
  • p4vasp: 图形化界面,方便查看结构、电荷密度、波函数等。
  • pymatgen / ASE: Python 库,用于自动化分析和处理 VASP 输出。

常见问题与错误

  1. 错误 ZBRENTBRMIX:

    • 原因: 电子步自洽循环不收敛。
    • 解决方法:
      • 增加 NELM (最大电子步数)。
      • 尝试不同的 ALGO (如从 Normal 改为 DampedVeryFast)。
      • 调整 EDIFF (放宽收敛标准)。
      • 检查 ENCUT 是否足够大。
      • 尝试不同的 ISMEARSIGMA
  2. 错误 RBREAK:

    • 原因: 离子步弛豫不收敛。
    • 解决方法:
      • 检查 EDIFFG 的设置是否合理。
      • 减小 POTCAR 中的 EDIFFG (在 INCAR 中设置更严格的 EDIFFG)。
      • 尝试使用 IBRION = 5
      • 检查初始结构是否合理,原子是否离得太近。
  3. Fatal error: PREC-AUTO does not work with mixed k-point grids:

    • 原因: 在 KPOINTS 文件中手动指定了权重不为 1 的 k 点,但 INCAR 中使用了 PREC = Auto
    • 解决方法: 在 INCAR 中设置 PREC = AccurateNormal
  4. 计算结果不收敛 (能量/力的变化很大):

    • 原因: k 点网格或 ENCUT 没有收敛。
    • 解决方法: 进行 k 点和 ENCUT 的收敛性测试。

学习资源

希望这份详细的指南能帮助您更好地使用 VASP!祝您计算顺利!

分享:
扫描分享到社交APP
上一篇
下一篇