GPUMD 应力相关与黏度
应力相关与黏度,包含终端命令、完整输入与集群实际算例。
阅读本篇目录
本文使用鸢算科技集群GPUMD 5.9.1实际运行结果。先下载全部实例与绘图脚本并解压,进入gpumd-examples目录。参考结果在cases,新运行放在work;不要在参考目录重复运行,让输出不断追加。
本篇做什么#
复用4000 K目标温度的扩散态硅轨迹,以应力自相关积分展示黏度计算。
1 准备算例#
python new-case.py liquid-si-4000-s51
cd work/liquid-si-4000-s51
ls
附件中已包含结构与势文件,不需要自己输入几百行坐标。若要从自己的结构开始,请先阅读建模与输入文件。
2 查看和修改输入#
compute_viscosity 10 1000每10步取样、1000个相关步。相关窗口和整条生产轨迹不是同一个概念;仅延长轨迹不能弥补过短的相关窗口。
liquid-si-4000-s51 / run.in
potential potential.txt
velocity 4000 seed 51
time_step 1
ensemble nvt_nhc 4000 4000 100
run 50000
ensemble nve
compute_msd 10 1000
compute_sdc 10 1000
compute_viscosity 10 1000
compute_rdf 8 160 500
dump_thermo 1000
dump_xyz 100000 trajectory.xyz
run 300000
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 查看结果和本次数据#
观察黏度积分曲线是否出现稳定平台,再谈统计平均。当前短程例子展示输出与作图,不宣称收敛的材料黏度;正式计算需要独立重复、体积与相关窗口对照。
head -n 12 viscosity.out
| 本次集群算例 | 实际数值摘要 |
|---|---|
liquid-si-4000-s51 |
后半程平均温度 (K):4088.62;后半程体积 (ų/atom):20.0239;MSD后半窗口拟合D (Ų/ps):2.57585 |
本次viscosity.out开头的数据(完整文件在附件中):
0.000000000000000e+00 9.155472090576592e+03 9.330033248997252e+03 9.286334272677143e+03 2.915958980598470e+03 2.874276734886125e+03 2.904430962521877e+03 2.915958980598470e+03 2.874276734886125e+03 2.904430962521877e+03 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00
1.000000000000000e-02 6.832621144149430e+03 6.985696698870383e+03 6.921868363954664e+03 1.896022682302860e+03 1.874751813161591e+03 1.878959301520907e+03 1.896022682302861e+03 1.874751813161591e+03 1.878959301520907e+03 1.855642783657656e-03 1.893669626100758e-03 1.881189571336786e-03 5.584980595723201e-04 5.511914663737545e-04 5.551796261489207e-04 5.584980595723201e-04 5.511914663737545e-04 5.551796261489207e-04
2.000000000000000e-02 4.519375099600703e+03 4.635696876380862e+03 4.568536704597803e+03 7.048908334758900e+02 7.385173858592739e+02 6.919845842814747e+02 7.048908334758900e+02 7.385173858592739e+02 6.919845842814747e+02 3.173201394341148e-03 3.242495580975793e-03 3.214812470185744e-03 8.603706046979433e-04 8.544980620836957e-04 8.535737747717171e-04 8.603706046979433e-04 8.544980620836957e-04 8.535737747717171e-04
3.000000000000000e-02 2.906958324831946e+03 2.984078139822540e+03 2.883194808601122e+03 -4.575679887754661e+01 3.811974001862149e+01 -4.482034645056376e+01 -4.575679887754661e+01 3.811974001862151e+01 -4.482034645056375e+01 4.035131696208082e-03 4.126877496587949e-03 4.079690576987633e-03 9.368723674040157e-04 9.446377089445076e-04 9.286862744388993e-04 9.368723674040157e-04 9.446377089445076e-04 9.286862744388993e-04
优先使用GPUMDkit工具#
任务完成后,在本篇算例输出目录执行:
module load gpumdkit/1.5.8
gpumdkit.sh -plt viscosity save
读取viscosity.out。先看积分是否出现稳定平台,不把最后一个点直接当黏度定值。
工具的其他用法见GPUMDkit专题。本篇自带plot.py用于结构图、统一版式和多个算例对照,保留原始数据与符号。
5 用自己的输出重新画图#
回到附件根目录,加载绘图环境:
cd ../..
module load ase/3.29.0
python plot.py --chapter viscosity --root work
如果想先查看附件里的参考数据,执行python plot.py --chapter viscosity。生成的图片在相应根目录的figures中,脚本只读取数据,不修改结果。

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