LAMMPS 专题

LAMMPS:原生图片与视频导出

先用dump image生成结构图片,再用个人目录中的FFmpeg合成MP4,展示实际视频解码帧。

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

当前这套 LAMMPS 模块可以直接输出 PNG。视频采用“原生图片→外部合成”的方法,不依赖模块直接支持 dump movie,也不需要修改公共软件环境。

1. 下载并先看实际输出#

下载完整输入、实际输出、读取脚本和绘图脚本,保存为 example.zip:

python3 -m zipfile -e example.zip .
cd lammps-native-movie
python3 setup-video.py
bash read.sh
bash plot.sh

reference-results 是本例实际运行结果,analysis-read 是读取后生成的数据,figures 是可重新绘制的图片。单独下载的数据:LAMMPS-image-video.csv。

本例使用 LAMMPS 30Sep2026。CPU 入口为 lammps/30Sep2026-8173m,Intel oneAPI 2024.2、Intel MPI、MKL,带 PLUMED 2.9.4。资料包的 CPU 模板申请一个 56 核节点,实际同时启动最多 2 个单线程 MPI 进程。

setup-video.py 首次运行会把固定版本 imageio-ffmpeg 0.6.0 下载到个人目录 ~/.local/ys-imageio-ffmpeg-0.6.0,检查 SHA256,再提取其 FFmpeg 7.0.2;需能访问下载站点。已经安装时跳过这一步。附件不捆绑 FFmpeg 二进制。读取和绘图使用集群已有 Python 环境。

实际H264视频重新解码得到的三帧图像

2. 完整图片输出输入#

units metal
atom_style atomic
boundary p p p
read_data ../frame0.data
pair_style zero 3.0
pair_coeff * *
neighbor 0.3 bin
neigh_modify every 1 delay 0 check yes
thermo 200
thermo_style custom step atoms vol
variable phi equal 30+step*0.15
dump d all image 200 image.*.png type type size 1200 900 view 60 v_phi adiam 1.8 box yes 0.01
dump_modify d acolor 1 royalblue backcolor white
rerun ../trajectory3.dump dump x y z box yes
undump d

本例重读 Ni 的第 0、200、400 步,输出 1200×900 PNG。v_phi 把三个视角设为 30°、60°、90°。结构来自真实 MD 帧,但视角旋转是显示设置,不能把画面转动解释成材料整体旋转。

3. 自己生成三张图片#

bash submit.sh
# Slurm作业结束后
ls work-new/auxiliary-image-video/image.*.png

所有原生计算通过 Slurm。后续合成和读取只处理小图片文件,不重新跑动力学。

4. 合成为视频,再读取检查#

/public/toolkit/miniconda3/envs/gpumdkit-1.5.8/bin/python convert.py work-new/auxiliary-image-video
bash read.sh work-new/auxiliary-image-video analysis-read
bash plot.sh

生成 Ni-frames.mp4,H.264 编码、yuv420p,3 帧、10 fps、播放时长 0.3 s。10 fps 是演示播放速度,不是 MD 的采样频率;原物理采样间隔仍是 0.2 ps。

程序重新解码 MP4,读取实际宽高、帧数和时间信息,并生成 decoded-frame-0.png 等文件。上图来自这些解码帧。参考 MP4 大小为 173123 B,压缩画面与原始 PNG 不要求逐像素相同。

5. 用于自己的长轨迹#

先固定相机,按需要选择输出间隔和分辨率;长轨迹可以多输出若干帧,再按步数排序合成。不要按字符串排序把 image.1000.png 放在 image.200.png 前面。本包的 convert.py 只针对本例三个明确步数,替换数据时需相应修改列表。

当前公共模块的 dump movie 不可直接使用。沿用本篇图片加外部合成的方法即可;不必仅为了输出视频重新编译 LAMMPS。

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

查看配图

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

100%查看原图 ↗