View Categories

输入文件-KPOINTS

一、 KPOINTS 文件 #

KPOINTS 决定布里渊区(BZ)采样策略,直接影响总能量、力和依赖 k 的谱学量(DOS/带结构)。K 点很大程度上决定了 VASP 计算的精度,同时也影响完成计算所需要的时间。合理设置 KPOINTS 文件,可以保证我们使用最少的时间来获取准确可靠的结果。另外,在显卡节点(GPU)上运行 VASP 程序时,显存占用也很大程度上取决于 K 点数量。对数值可靠性最关键的是:做 k 点收敛测试,并优先验证同一体系下 E_total、力、关键结构参数是否稳定。

二、作用与整体流程 #

标准流程一般是:

  1. 结构定义(POSCAR + POTCAR)
  2. 参数控制(INCAR)
  3. k 点定义(KPOINTS)
  4. 先做粗到细 k 收敛。

VASP 手册与 Wiki 强调:对于能量和力精度,不能只靠默认,必须扫描 k 网格。K 点本质上是在布里渊区内对电子波函数进行数值积分时的取样网格,K 点越密积分越精确,但计算量也越大。

KPOINTS 文件也是纯文本文件,和 INCAR 一样,使用 vim 直接创建并打开输入界面,写好后保存成 KPOINTS:

vim KPOINTS

三、 第1-5行结构与三种模式 #

模式 1:规则网格(最常用,生产环境推荐) #

标准自动网格格式:

Regular k-point mesh
0
Gamma
4 4 4
0 0 0
  • 第 1 行:注释(任意文本,但不能没有)
  • 第 2 行:0 表示自动生成网格(若是正整数 N,表示手动输入 N 个 K 点;若是负数,表示高对称路径模式)。注意是数字 0,不是字母 O
  • 第 3 行:Gamma 或 Monkhorst-Pack(也可写 G/g/M/m),VASP 只认第一个字母,大小写均可
  • 第 4 行:N1 N2 N3,在 x、y、z 三个方向上生成对应数目的 K 点
  • 第 5 行:可选偏移 s1 s2 s3,一般写 0 0 0(不偏移)

规则定义与公式核心:

Γ-centered:
k = Σ (n_i + s_i)/N_i * b_i
Monkhorst-Pack:
k = Σ (n_i + s_i + (1-N_i)/2)/N_i * b_i

对奇偶 N 的偏置差异会影响对称性采样:奇偶偶有差异尤其在高对称体系中可明显体现在等效点数与精度上。K 点数量是奇数时,Gamma center 和 Monkhorst-Pack 模式的 K 点分布是一样的;偶数时有区别。Monkhorst-Pack 模式可能使收敛更快,但是会破坏某些体系的对称性,一般情况下使用 Gamma center 即可;K 点数量较少时建议 K 点尽量使用偶数配合 Monkhorst-Pack 或者直接用 Gamma 中心。

模式 2:显式模式 #

适合小 k 点数、低维路径特殊定义、或直接给一组 k 坐标/权重。

Explicit k-point list
4
Cartesian
0.0 0.0 0.0   1
0.0 0.0 0.5   1
0.0 0.5 0.5   2
0.5 0.5 0.5   4
  • 第 3 行首字符可写 C/c/K/k 表示笛卡尔坐标,其它通常按分数(fractional)。
  • 每行的最后一列是该点权重(相对权重即可)。

模式 3:Line-mode(高对称线,常用于能带) #

k points along high symmetry lines
40
line mode
fractional
0.0 0.0 0.0   Γ
0.5 0.5 0.0   X
0.5 0.5 0.0   X
0.5 0.75 0.25  W
0.5 0.75 0.25 W
0.0 0.0 0.0   Γ

Line-mode 会在每段生成等间距 k 点,适合谱学分析;但该网格不适合自洽过程,通常配合 ICHARG=11(固定电荷密度)进行非自洽。

四、 网格收敛与偏置策略 #

手把手收敛建议(HPC 实践) #

  1. 先跑 0.5 倍或 0.7 倍常规网格,快速判断是否存在粗收敛异常(能量/力波动)。
  2. 再按目标方向逐级加密(例如 2 2 1 → 3 3 1 → 4 4 1,而非盲目等比例扩大到很高)。
  3. 定义稳定门槛:总能量差或关键力是否在连续两档内满足阈值(能量差小于 1 meV/原子)。
  4. 不同体系类型使用不同目标:金属通常更敏感于 k 点;半导体可优先先做几何,再加密能带/DOS 网格。

K 点数量的经验选择 #

  1. 结构优化:每个晶格矢量的长度(a)乘以该方向 K 点数(k),即 k×a ≈ 30。
  2. 自洽(静态)计算:k×a ≈ 45。
  3. 有真空层的方向(如二维材料 z 方向):该方向 K 点取 1。
  4. 声子谱、AIMD 计算:三个方向 K 点直接取 1,即 1 1 1。

举例:计算一个二维材料,a、b 方向晶胞长度为 7 Å,c 方向晶胞长度为 25 Å(含真空层),则 K 点取 4 4 1 比较合适(7×4≈28 接近 30;真空层方向取 1)。

以上只是经验之谈,如果是刚上手开始算的体系,最好自己做一下收敛性测试!

不同计算的 K 点设置要点 #

  • 结构优化:中等密度 K 点(k×a≈30),优化结束后用 CONTCAR 更新 POSCAR。
  • 静态自洽:较密 K 点(k×a≈45),为能带、态密度提供高精度 CHGCAR。
  • 态密度:需要更密的 K 点网格(比静态计算再加密),使 DOS 曲线平滑。
  • 能带:Line-mode 高对称路径,与自洽计算共用 CHGCAR(ICHARG=11)。
  • 声子谱、AIMD:K 点取 1 1 1 即可。
  • 光学性质、GW:需要非常密的 K 点网格和高 NBANDS。

Γ 与 MP 的选择 #

  • Γ-centered(Gamma)与 MP(Monkhorst-Pack)在奇偶网格下会产生不同取样偏置。
  • 对于某些晶格类型,奇偶网格的等效点数可能逆常识(如偶网格未必总更细)。
  • 对于蜂窝/五角或高对称晶格,网格包含 Γ 与否也会影响对称性约简行为。
  • 六方、三方等体系建议使用 Gamma 中心网格以避免对称性破坏。
  • 不同布拉菲格子(Bravais lattice)推荐的网格类型:
布拉菲格子(Bravais lattice)变体(variant)推荐网格类型
triclinic(三斜)primitiveGamma / Monkhorst-Pack
monoclinic(单斜)primitiveGamma / Monkhorst-Pack
monoclinic(单斜)base-centeredGamma / Monkhorst-Pack
orthorhombic(正交)primitiveGamma / Monkhorst-Pack
orthorhombic(正交)base-centeredGamma / Monkhorst-Pack
orthorhombic(正交)body-centeredGamma / Monkhorst-Pack
orthorhombic(正交)face-centeredGamma
tetragonal(四方)primitiveGamma / Monkhorst-Pack
tetragonal(四方)body-centeredGamma / Monkhorst-Pack
hexagonal(六方)rhombohedralGamma
hexagonal(六方)hexagonalGamma
hexagonal(六方)primitiveGamma / Monkhorst-Pack
hexagonal(六方)body-centeredGamma / Monkhorst-Pack
hexagonal(六方)face-centeredGamma

KSPACING 标签(INCAR 方案) #

当缺少 KPOINTS 时,KSPACING 可按倒空间距离自动生成 k 点;其定义是 k 点最小间距(Å⁻¹),值越小点越密。KGAMMA=T 时为 Γ-center;F 时偏移到 MP 风格。

五、高对称线与能带流程 #

能带常见流程有两种:

  1. 显式 list + 零权重高对称路径点
  2. KPOINTS_OPT 文件(推荐):主 k 网格与高对称路径分开维护,适合重复跑和后处理

对于采用 KPOINTS_OPT 的单次作业,先做常规自洽网格,再让后处理路径自动续算;可用于 hybrid 或 meta-GGA 场景中,减少手工拼接失误。

Line-mode 能带 KPOINTS 示例(以简单立方为例):

Band-path
0
Line-mode
10
0.0 0.0 0.0   Gamma
0.5 0.0 0.0   X
0.5 0.5 0.0   M
0.0 0.0 0.0   Gamma
0.5 0.5 0.5   R

说明:第 3 行 Line-mode 表示高对称路径模式;第 4 行数字 10 表示每两个高对称点之间插入 10 个 K 点(可自行调整);第 5 行起每两行一组(起点+终点),坐标为倒空间分数坐标,末尾可加标签(可选)。常见高对称点:简单立方用 Gamma-X-M-Gamma-R-X;面心立方用 Gamma-X-W-K-Gamma-L-U-W-L-K;体心立方用 Gamma-H-N-Gamma-P-D-N-P;六方用 Gamma-M-K-Gamma-A-L-H-A。高对称点坐标可参考 VASP Wiki 或 VASPKIT 的 K 点路径数据库(VASPKIT 303 功能可自动生成)。

六、显式列表、tetrahedra 与高级场景 #

使用四面体积分(ISMEAR 对应方法)时,显式列表后可追加 Tetrahedra 段:

  • T 开头触发。
  • 下一行给 tetrahedron 数量和体积权重。
  • 之后给每个四面体的权重与四个顶点索引。

VASP 会提示:手工写完整显式列表容易出错,复杂情形下优先从自动 IBZKPT 修改。

七、常见报错排查与模板库 #

报错排查顺序 #

  1. 检查 INCAR 与 POSCAR 是否匹配(是否换体系后未重建 KPOINTS)。
  2. 对照 IBZKPT 中 NPOINTS 与实际文件行数。
  3. 检查 line-mode 是否误用于 SCF(应为固定电荷后处理)。
  4. 观察对称性警告:某些 Monkhorst-Pack 偶数网格会触发对称性约简异常。

常见问题与注意事项 #

  1. K 点太少:会导致能量、力、应力不收敛,结构优化结果不可靠;K 点太多则浪费计算资源,务必做收敛性测试。
  2. 金属体系对 K 点密度敏感(费米面取样),需要较密的 K 点;半导体/绝缘体相对不敏感。
  3. 含真空层的体系(表面、二维材料、分子):真空方向 K 点取 1 即可,取多了浪费。
  4. 能带计算必须用 Line-mode 且与自洽计算共用 CHGCAR(ICHARG=11),并保持 ISMEAR、ENCUT 等参数一致。
  5. 结构优化、静态、态密度的 K 点密度应逐级加密(优化 < 静态 < DOS),不可混用。
  6. GPU 计算时 K 点数量直接影响显存占用,K 点过多可能显存溢出,需在精度与资源间权衡。

典型模板 #

# 分子/原子:单 k 点
Gamma-point only
1
rec
0 0 0 1
# 体相结构优化
Regular k-point mesh
0
Gamma
6 6 6
0 0 0
# 体相高精度静态/态密度
Regular k-point mesh
0
Gamma
12 12 12
0 0 0
# 2D / 表面:减小法向采样
Regular k-point mesh
0
Monkhorst-Pack
6 6 1
0 0 0
# Bandline
k points along high symmetry lines
40
line mode
fractional
0.0 0.0 0.0   Γ
0.5 0.5 0.0   X
0.5 0.5 0.0   X
0.5 0.75 0.25 W
0.5 0.75 0.25 W
0.0 0.0 0.0   Γ