GPUMD 层间势与双层结构实操
用石墨烯、h-BN和MoS₂实例配置三种ILP组合,扫描层距并提取能量与层合力。
阅读本篇目录
石墨烯、h-BN和MoS₂双层结构,需要分别描述层内成键与层间作用。本例提供Tersoff+ILP、NEP+ILP、SW+ILP三种组合,先做固定几何的能量和力,再扫描层间距离,帮助确认势文件与分层标记是否配套。

1. 先选一组实际模型#
python3 list_cases.py
head -n 4 inputs/graphene-ab-tersoff-ilp/model.xyz
石墨烯双层为1024原子、每层512;MoS₂为1176原子、每层588。x/y周期,z方向不周期,盒高80Å。面内周期厚度大于32Å,以适配本例16Å的ILP截断。石墨烯/h-BN共用2.49Å面内晶格,因此两层带有共格应变,不能解释成无应变异质结。
模型的扩展XYZ头含 group:I:2:每个原子有两列整数分组。先看势文件使用哪一列,再改分组;不能只按元素自动分层,同为C的上下层也必须区分。
2. 配好势文件与分组#
Tersoff+ILP实例的完整 run.in:
potential potential.txt second.txt
time_step 0
ensemble nve
dump_thermo 1
dump_xyz 1 snapshot.xyz precision double mass force potential virial group_labels
run 1
potential.txt 是ILP参数,second.txt 是层内Tersoff参数。SW+ILP同样使用两个文件,但SW参数、元素和分组必须来自对应MoS₂模型;不能仅替换文件名混用。
NEP+ILP改为:
potential potential.txt map.txt
map.txt 在本例中的完整内容:
0 1 C_2024_NEP4.txt
2
0
0
首行把 C_2024_NEP4.txt 指定给所用分组方法;后面的2表示两个分组,再用两个0把这两层都映射到该NEP文件。ILP区分上下层,NEP负责各层内部。MoS₂的分层还要区分两层中的S–Mo–S子层,示例已写好六个子层标签。文件语法以GPUMD NEP+ILP说明为准。
3. 运行一组,读能量和力#
在已分配的一张P100任务内:
bash run.sh graphene-ab-tersoff-ilp
cat work/graphene-ab-tersoff-ilp/base/thermo.out
head -n 4 work/graphene-ab-tersoff-ilp/base/snapshot.xyz
time_step 0、run 1 只计算当前几何的静态量,不是MD。程序会计算基准、上下移动0.01/0.02Å、远离参照以及13个间距点。完整实际基准数据为:
| 条件 | 原子数 | 层中心距离/Å | E−E远离/eV | 上层Fz/eV·Å⁻¹ |
|---|---|---|---|---|
| graphene-aa-tersoff-ilp | 1024 | 3.35 | -16.697635 | 22.885923 |
| graphene-ab-tersoff-ilp | 1024 | 3.35 | -24.874900 | 1.607287 |
| graphene-bn-tersoff-ilp | 1024 | 3.35 | -20.755199 | 16.957725 |
| graphene-aa-nep-ilp | 1024 | 3.35 | -16.697635 | 22.885923 |
| graphene-ab-nep-ilp | 1024 | 3.35 | -24.874900 | 1.607287 |
| mos2-aa-sw-ilp | 1176 | 6.30 | 2.888378 | 75.409305 |
| mos2-rotated-sw-ilp | 1176 | 6.30 | -26.870158 | -2.355537 |
4. 画距离曲线,判断所得量#


分析导出 reference/analysis/条件名-scan.csv,四列是层中心距离、相对远离参照的总能量、按界面面积归一化的能量和上层z向合力。这里用E(d)−E(远离);按原子报告时除以上层原子数,按面积报告时eV/Ų乘16.021766208得到J/m²。
MoS₂-AA在6.3Å的相对能量为正、上层受排斥,是该固定堆垛和几何的结果;旋转上层会得到不同曲线。不要把这个点当作优化后的黏附能。石墨烯Tersoff与NEP组合共享相同C–C层间参数,层间差能接近不代表两种层内势对任意性质同样准确。负能量导数与层合力相符,说明这些输入中的能量和力相互一致;热边界电导仍需另做非平衡或相关函数采样。
下载与完整运行#
下载输入、真实力数据、参考输出和全部绘图脚本,解压到自己的工作目录。先重画随包结果,不重新计算:
bash analyze.sh
输出在 reference/analysis/ 和 reference/figures/。在新解压目录提交完整的两种hiPhive拟合、7组层状结构和44组FCP条件:
sbatch run.slurm
默认一张P100、一个CPU核、30分钟,分区为 gpu-8p100-hs;GPU套餐用户按自己的权限改为例如 gpu-8p100-tc。需要按条件并行提交时:
bash submit.sh
这会生成带依赖的拟合、51个条件和分析作业。只生成脚本用 bash submit.sh --dry-run。全部结束后查看 work/analysis/ 和 work/figures/,或重新分析:
bash analyze.sh work work-fcp fit
bash fit.sh 是CPU拟合入口,bash run.sh 条件名 是已经分配计算资源后的单例入口;不要在登录节点直接启动GPUMD。拟合脚本不覆盖已有 fit/,计算也不覆盖已有结果;重新计算整套请重新解压。单例完成后可以直接查看输出,统一分析需要整套条件齐全。
本例使用GPUMD5.9.1 P100构建(GCC13.3、CUDA12.9)、hiPhive1.5及ASE环境,读取导出文件使用Phonopy4.8.3、phono3py4.8.2。入口脚本会加载对应模块或已安装的工具环境。当前示例是短小的操作参考,不代替势函数、超胞、截断、位移幅度与采样的收敛检查。