VASP 专题

VASP分子与二维真空测试

水分子与MoS2共8个实际条件,保持内部几何、比较尺寸影响并解释晶胞高度与真空间隙。

更新于 2026-10-30约 8 分钟阅读按任务与环境选择适用配置
阅读本篇目录

分子与二维材料通常放在周期性晶胞中计算,因此要检查周期镜像之间的影响。本例分别改变水分子的立方盒边长和MoS2的晶胞高度,保持笛卡尔内部几何不变。

下载后先查看结果#

下载20个收敛条件的输入、实测输出与绘图资料。将下载文件保存为convergence.zip,上传到自己的工作目录,然后执行:

unzip convergence.zip -d convergence
cd convergence
bash analyze.sh
head analysis/results.csv

这一步只提取随包提供的实际输出并画图,不启动VASP。analysis/RESULTS.json按扫描类型整理结果,figures/保存高清图。结构图的各面板使用独立显示比例。

Si、Cu、水分子与MoS2实际结构

准备自己的复算#

bash prepare.sh
cat inputs/cutoff-550/input-check.log

prepare.sh按POSCAR元素顺序读取集群上已有且你有权使用的PAW PBE6.4赝势,Mo采用Mo_pv;POTCAR不随公开附件提供。然后实际调用vaspkit -task 108检查输入。已有不同的POTCAR会保留并停止,不会覆盖。新任务的四文件生成可参照VASPKIT输入准备和VASP输入文件准备;101生成INCAR模板、102生成SCF网格、103生成POTCAR、108检查输入。这个资料包已经准备好各组不同的扫描网格,不要再用102覆盖它们。

使用yskit取得适合自己账户、P100资源和VASP模块的提交脚本,核对随包run.slurm中的分区。原生计算经Slurm运行;不要在登录节点直接执行run.sh。各算例采用单GPU、1MPI、1CPU,组内顺序运行。

1. 依次运行两种真空扫描#

sbatch run.slurm vacuum

水分子盒边长为10、12、15、18Å;结束后:

bash analyze-new.sh vacuum
sbatch run.slurm vacuum2d

MoS2晶胞高度为15、20、25、30Å,面内晶胞和原子层厚度固定;结束后:

bash analyze-new.sh vacuum2d
head analysis-new/vacuum2d/results.csv

改变盒子时,本工作流先保持笛卡尔原子间矢量,再平移到盒中居中。不能只改POSCAR晶胞而保持所有分数坐标原样,否则可能把水分子或原子层一起拉伸。

2. 水分子的实际输入#

18Å盒子的POSCAR:

H  O 
 1.0000000000000000
    18.0000000000000000    0.0000000000000000    0.0000000000000000
     0.0000000000000000   18.0000000000000000    0.0000000000000000
     0.0000000000000000    0.0000000000000000   18.0000000000000000
 H   O  
   2   1
Direct
  0.5000000010091792  0.5426357912053908  0.4834395933794760
  0.5000000010139720  0.4573642087946092  0.4834395938815593
  0.4999999989860280  0.4999999996385176  0.5165604066205242
Cartesian
  0.0000000000000000  0.0000000000000000  0.0000000000000000
  0.0000000000000000  0.0000000000000000  0.0000000000000000
  0.0000000000000000  0.0000000000000000  0.0000000000000000

INCAR:

SYSTEM = vacuum-18
ENCUT = 550
PREC = Accurate
EDIFF = 1E-6
EDIFFG = -0.02
IBRION = -1
NSW = 0
ISIF = 2
ISMEAR = 0
SIGMA = 0.05
LREAL = .FALSE.
LASPH = .TRUE.
LWAVE = .FALSE.
LCHARG = .FALSE.
NELM = 150
ALGO = Normal
ISYM = 2
NPAR = 1

孤立分子在本例使用Gamma单点:

Convergence tutorial fixed structure
0
Gamma
1 1 1
0 0 0

水分子盒尺寸与单点力的真实结果

差值以18Å盒为有限参照:

参数 E₀ / eV ΔE₀ / meV·atom⁻¹ 压力 / GPa 最大力 / eV·Å⁻¹
10 -14.23659568 -0.970487 -0.00888 0.012186
12 -14.23534642 -0.554067 -0.00502 0.015481
15 -14.23428678 -0.200853 -0.00251 0.017824
18 -14.23368422 0.000000 -0.00144 0.018780

表格按每原子归一化;水分子有3个原子,要换成每个水分子的能量差应乘3。15与18Å相差0.200853meV/atom,即约0.602560meV/个水分子。本例没有添加偶极修正,显示的是这一组未修正周期盒的实际变化;18Å不是已证明的无限真空极限。

3. MoS2二维真空的实际输入#

30Å晶胞高度的POSCAR:

Mo S 
 1.0000000000000000
     3.1830562896538486    0.0000000761206557    0.0000000000000000
    -1.5915280796073561    2.7566076466831655    0.0000000000000000
     0.0000000000000000    0.0000000000000000   30.0000000000000000
 Mo  S  
   1   2
Direct
  0.9999999998368795  0.9999999987702611  0.4999999998624562
  0.6666666634277522  0.3333333309185883  0.5519893438394563
  0.6666666700686971  0.3333333369778219  0.4480106561605436
Cartesian
  0.0000000000000000  0.0000000000000000  0.0000000000000000
  0.0000000000000000  0.0000000000000000  0.0000000000000000
  0.0000000000000000  0.0000000000000000  0.0000000000000000

INCAR:

SYSTEM = vacuum2d-30
ENCUT = 550
PREC = Accurate
EDIFF = 1E-6
EDIFFG = -0.02
IBRION = -1
NSW = 0
ISIF = 2
ISMEAR = 0
SIGMA = 0.05
LREAL = .FALSE.
LASPH = .TRUE.
LWAVE = .FALSE.
LCHARG = .FALSE.
NELM = 150
ALGO = Normal
ISYM = 2
NPAR = 1

KPOINTS只在面内加密,真空方向取1:

2D fixed geometry vacuum tutorial
0
Gamma
6 6 1
0 0 0

MoS2固定原子层厚度下的真空扫描

差值以30Å为有限参照:

参数 E₀ / eV ΔE₀ / meV·atom⁻¹ 压力 / GPa 最大力 / eV·Å⁻¹
15 -21.84141143 -0.383427 0.00151 0.021714
20 -21.84079984 -0.179563 0.00147 0.021711
25 -21.84048706 -0.075303 0.00097 0.021723
30 -21.84026115 0.000000 0.00116 0.021682

晶胞高度与真空间隙不是同一个量:

晶胞高度 Lz / Å 原子层z向厚度 / Å 跨周期真空间隙 / Å
15 3.119361 11.880639
20 3.119361 16.880639
25 3.119361 21.880639
30 3.119361 26.880639

这里的间隙按Lz−(zmax−zmin)定义,不包含电子云外延。25与30Å的单点能量相差0.075303meV/atom;如果目标是功函数、带边、吸附能或偶极响应,应对相应目标另做尺寸检查,不能只看本征单层总能量。

4. 迁移到自己的结构#

module load ase/3.29.0
python - <<'PYCODE'
from ase.io import read, write
atoms = read('POSCAR')
cell = atoms.cell.array.copy()
cell[2] *= 30.0 / atoms.cell.lengths()[2]
atoms.set_cell(cell, scale_atoms=False)
atoms.center(axis=2)
write('POSCAR-vacuum30', atoms, format='vasp', direct=True, vasp5=True)
PYCODE

这段用于第三晶矢沿真空方向的常见二维结构;若晶胞倾斜、层跨边界或真空方向不沿第三晶矢,先调整结构表示再修改。写入新文件后用VESTA检查,确认层厚与键长未被改变,再放入新任务目录。随包MoS2输入来自固定几何处理,4个高度均保持同一面内晶胞和笛卡尔原子间矢量。

不对真空方向使用三维各向同性晶胞优化。非对称吸附、极性层或带电模型要另外处理偶极/电荷与有限尺寸问题,不能仅把真空无限加大;可继续看表面与界面及真空参照带边。

环境与输入约定#

本组实算使用VASP6.6.1的P100构建,NVHPC25.3/CUDA12.8;赝势为PAW PBE6.4。输入检查使用VASPKIT1.5.1,分析和绘图使用ASE3.29.0、NumPy2.3.5、Matplotlib3.11.2。本例是小体系操作参考,没有用于CPU平台性能对比。

EDIFF=1E-6控制电子收敛。模板保留EDIFFG=-0.02,但本组NSW=0,不执行原子位置或晶胞优化。所有差值来自固定几何下的单点计算;若需要优化结构,先看结构优化。电子收敛、离子力收敛和目标性质对输入参数的收敛是三个不同检查。

表格中的E₀是OUTCAR的energy(sigma->0),不是直接把TOTEN当作所有场景通用能量。压力和力与所用展宽自由能一致。每组用有限采样点作参照,参照点的差值为0由定义产生,不等于无限精度极限。

方法参考:VASP静电修正、VASP KPOINTS。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗