GPUMD 二维石墨烯与真空层
二维石墨烯与真空层,包含终端命令、完整输入与集群实际算例。
阅读本篇目录
本文使用鸢算科技集群GPUMD 5.9.1实际运行结果。先下载全部实例与绘图脚本并解压,进入gpumd-examples目录。参考结果在cases,新运行放在work;不要在参考目录重复运行,让输出不断追加。
本篇做什么#
以128原子石墨烯展示二维周期边界、轨迹和面内/面外振动。

1 准备算例#
python new-case.py 14-graphene
cd work/14-graphene
ls
附件中已包含结构与势文件,不需要自己输入几百行坐标。若要从自己的结构开始,请先阅读建模与输入文件。
本篇对应以下算例,每个都可以用python new-case.py 目录名单独建立工作副本。
| 目录 | 用途或变化 |
|---|---|
14-graphene |
目录名标明温度、尺寸、随机种子或应变;完整输入见下方与附件 |
graphene-n8-t100 |
目录名标明温度、尺寸、随机种子或应变;完整输入见下方与附件 |
graphene-n12-t100 |
目录名标明温度、尺寸、随机种子或应变;完整输入见下方与附件 |
graphene-n8-t300 |
目录名标明温度、尺寸、随机种子或应变;完整输入见下方与附件 |
graphene-n12-t300 |
目录名标明温度、尺寸、随机种子或应变;完整输入见下方与附件 |
graphene-n8-t600 |
目录名标明温度、尺寸、随机种子或应变;完整输入见下方与附件 |
graphene-n12-t600 |
目录名标明温度、尺寸、随机种子或应变;完整输入见下方与附件 |
2 查看和修改输入#
石墨烯只在面内周期,z方向留20 Å真空间隔;采用专门的Graphene_Lindsay_2010势。本例不对z方向做NPT压缩,不把真空当成可压缩材料。
14-graphene / run.in
potential potential.txt
velocity 300
time_step 1
ensemble nvt_nhc 300 300 100
run 10000
ensemble nve
compute_rdf 6 120 100
compute_dos 5 500 350
dump_xyz 10000 trajectory.xyz
dump_thermo 100
run 30000
展开其余实例的完整控制输入
graphene-n8-t100 / run.in
potential potential.txt
velocity 100
time_step 0.5
ensemble nvt_nhc 100 100 100
run 20000
ensemble nve
compute_dos 5 1000 400
dump_thermo 1000
dump_xyz 100000 trajectory.xyz
run 100000
graphene-n12-t100 / run.in
potential potential.txt
velocity 100
time_step 0.5
ensemble nvt_nhc 100 100 100
run 20000
ensemble nve
compute_dos 5 1000 400
dump_thermo 1000
dump_xyz 100000 trajectory.xyz
run 100000
graphene-n8-t300 / run.in
potential potential.txt
velocity 300
time_step 0.5
ensemble nvt_nhc 300 300 100
run 20000
ensemble nve
compute_dos 5 1000 400
dump_thermo 1000
dump_xyz 100000 trajectory.xyz
run 100000
graphene-n12-t300 / run.in
potential potential.txt
velocity 300
time_step 0.5
ensemble nvt_nhc 300 300 100
run 20000
ensemble nve
compute_dos 5 1000 400
dump_thermo 1000
dump_xyz 100000 trajectory.xyz
run 100000
graphene-n8-t600 / run.in
potential potential.txt
velocity 600
time_step 0.5
ensemble nvt_nhc 600 600 100
run 20000
ensemble nve
compute_dos 5 1000 400
dump_thermo 1000
dump_xyz 100000 trajectory.xyz
run 100000
graphene-n12-t600 / run.in
potential potential.txt
velocity 600
time_step 0.5
ensemble nvt_nhc 600 600 100
run 20000
ensemble nve
compute_dos 5 1000 400
dump_thermo 1000
dump_xyz 100000 trajectory.xyz
run 100000
3 提交并检查进度#
sbatch run.sh
squeue -u "$USER"
tail -n 20 run.log
默认脚本用于V100核时队列。P100或套餐用户先运行yskit,选择复制Slurm脚本及匹配的用户类型、GPUMD版本、GPU型号。单进程启动,不要再套mpirun启动多个相同实例。
本例在计算节点执行的命令为:
gpumd > run.log 2>&1
这条命令已经在提交脚本内,平时只需sbatch run.sh。等待任务结束、查看日志,再读取结果。
4 查看结果和本次数据#
dos.out分方向分量能看到面内与面外差异。涉及按体积归一化的二维热导率时,必须明确有效厚度;真空高度改变不应被解释为材料性质改变。三维RDF归一化对真空敏感,本例只用其峰位辅助判断。
head -n 12 dos.out
| 本次集群算例 | 实际数值摘要 |
|---|---|
14-graphene |
后半程平均温度 (K):322.204;后半程体积 (ų/atom):52.4084 |
graphene-n8-t100 |
后半程平均温度 (K):108.069;后半程体积 (ų/atom):52.4084 |
graphene-n12-t100 |
后半程平均温度 (K):96.8591;后半程体积 (ų/atom):52.4084 |
graphene-n8-t300 |
后半程平均温度 (K):299.833;后半程体积 (ų/atom):52.4084 |
graphene-n12-t300 |
后半程平均温度 (K):306.846;后半程体积 (ų/atom):52.4084 |
graphene-n8-t600 |
后半程平均温度 (K):605.398;后半程体积 (ų/atom):52.4084 |
graphene-n12-t600 |
后半程平均温度 (K):634.058;后半程体积 (ų/atom):52.4084 |
本次dos.out开头的数据(完整文件在附件中):
0.7 -5.88245e-05 8.55017e-05 0.209522
1.4 7.64837e-05 0.000201781 1.79223
2.1 0.000121772 0.000222353 4.3545
2.8 0.000105082 0.00018447 6.74706
优先使用GPUMDkit工具#
任务完成后,在本篇算例输出目录执行:
module load gpumdkit/1.5.8
gpumdkit.sh -plt thermo save
检查石墨烯实际温度与能量;二维体积相关量还需要给出厚度约定。
工具的其他用法见GPUMDkit专题。本篇自带plot.py用于结构图、统一版式和多个算例对照,保留原始数据与符号。
5 用自己的输出重新画图#
回到附件根目录,加载绘图环境:
cd ../..
module load ase/3.29.0
python plot.py --chapter graphene --root work
本篇包含多个目录,需先完成上表全部算例,才能画完整对照图。
如果想先查看附件里的参考数据,执行python plot.py --chapter graphene。生成的图片在相应根目录的figures中,脚本只读取数据,不修改结果。

换成自己的体系时#
先确认结构、元素和势函数适用范围,再确定温度、边界条件、时间步长与统计长度。随机初速度会使短程数值不同;复现时先比较数量级、趋势、能量稳定性和输出维度。正式研究应做势函数可靠性、尺寸与时间收敛检查。