GPUMD 连续拉伸与应力应变图
连续拉伸与应力应变图,包含终端命令、完整输入与集群实际算例。
阅读本篇目录
本文使用鸢算科技集群GPUMD 5.9.1实际运行结果。先下载全部实例与绘图脚本并解压,进入gpumd-examples目录。参考结果在cases,新运行放在work;不要在参考目录重复运行,让输出不断追加。
本篇做什么#
对512原子硅以固定横向晶胞方式沿x连续拉伸,读取应力—应变曲线。

1 准备算例#
python new-case.py 22-tension
cd work/22-tension
ls
附件中已包含结构与势文件,不需要自己输入几百行坐标。若要从自己的结构开始,请先阅读建模与输入文件。
2 查看和修改输入#
deform 0.00001 1 0 0表示每步Lx增加1E-5 Å,不是每步应变增加1E-5。应变以初始Lx归一;本例固定横向尺寸,得到的是侧向受限条件下的响应。
22-tension / run.in
potential potential.txt
velocity 300
time_step 1
ensemble nvt_nhc 300 300 100
run 20000
ensemble nvt_nhc 300 300 100
deform 0.00001 1 0 0
dump_thermo 100
dump_xyz 50000 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 查看结果和本次数据#
thermo.out输出的是压力,拉应力绘图取-Pxx。100 ps对应约4.6%总应变,加载速率远大于常规实验;不能由此直接报告实验拉伸强度或杨氏模量。
head -n 12 thermo.out
| 本次集群算例 | 实际数值摘要 |
|---|---|
22-tension |
后半程平均温度 (K):299.294;后半程体积 (ų/atom):20.7157 |
本次thermo.out开头的数据(完整文件在附件中):
3.1660871540e+02 2.0953542892e+01 -2.3506169274e+03 6.8726135205e-01 6.7819181110e-01 6.8148277929e-01 4.6449226939e-02 -4.8817306839e-02 -1.1916259315e-01 2.1725000000e+01 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 2.1724000000e+01 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 2.1724000000e+01
3.0327482627e+02 2.0071090185e+01 -2.3509563051e+03 6.6584657284e-01 6.8702623808e-01 6.5043830658e-01 -4.0074186794e-02 -5.9966111914e-03 4.0088401228e-02 2.1726000000e+01 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 2.1724000000e+01 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 2.1724000000e+01
2.9728152541e+02 1.9674446377e+01 -2.3516890943e+03 6.5129394220e-01 6.9372747746e-01 6.5293602274e-01 1.0711392762e-01 -2.4006195420e-02 -7.8853497661e-03 2.1727000000e+01 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 2.1724000000e+01 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 2.1724000000e+01
2.6808141951e+02 1.7741948497e+01 -2.3494310070e+03 6.8081285407e-01 6.6014652048e-01 6.6641503869e-01 -9.1692827971e-02 1.0144441267e-02 -1.3278751826e-01 2.1728000000e+01 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 2.1724000000e+01 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 2.1724000000e+01
5 用自己的输出重新画图#
回到附件根目录,加载绘图环境:
cd ../..
module load ase/3.29.0
python plot.py --chapter tension --root work
如果想先查看附件里的参考数据,执行python plot.py --chapter tension。生成的图片在相应根目录的figures中,脚本只读取数据,不修改结果。

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