LAMMPS 专题

LAMMPS:伸长流坐标系与CFG查看

用实际UEF结构对照普通轨迹和cfg/uef,读取流动压力张量并说明旋转不变量与约化单位。

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

普通 custom dump 与 cfg/uef 可能画出方向不同的晶胞。它们可以是同一时刻结构在不同坐标系下的表示,不能直接逐列减坐标就判断结构发生变化。

1. 读取同一批实际结果#

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

python3 -m zipfile -e example.zip .
cd lammps-UEF
bash read.sh
bash plot.sh

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

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

同一实际伸长流结构的模拟坐标系与流动坐标系,以及全部周期原子对距离差

2. 同时保存两种表示#

把下面两段放在 UEF 输入的 run 前:

dump d all custom 100 trajectory.dump id type x y z vx vy vz fx fy fz
dump_modify d sort id format float %.14g
dump u all cfg/uef 100 flow.*.cfg mass type xs ys zs id
dump_modify u element Ar sort id format float %.14g

普通 dump 使用模拟盒的上三角表示;cfg/uef 给出流动坐标系几何。本例只把坐标写进 CFG,避免混用流动坐标和未经同样变换的速度分量。两种输出都保留原子编号。官方 cfg/uef 说明给出了该输出器的用途。

3. 查看结构#

head -18 reference-results/nvt-cpu/flow.200.cfg
head -12 reference-results/nvt-cpu/trajectory.dump
bash read.sh
bash plot.sh

在 OVITO 中打开 flow.0.cfg 并加载同系列文件查看。图中的两幅结构来自实际第 200 步输出,按各自真实晶胞画出,未为了视觉一致强行把晶胞改成正交盒。

本例在每个时刻比较 256×255/2=32640 对原子的周期最短距离,并检查晶胞之间的旋转关系。对应几何差为几微量级的 LJ 长度,主要由 CFG 晶胞头舍入带来;并非换坐标系产生了新的结构。

4. 压力张量怎样读#

compute Tf all temp/uef
compute Pf all pressure/uef Tf
thermo_style custom step temp c_Tf c_Pf c_Pf[1] c_Pf[2] c_Pf[3] c_Pf[4] c_Pf[5] c_Pf[6]

六个张量分量顺序为 xx、yy、zz、xy、xz、yz。普通 pxx pyy pzz 与流动坐标系的 c_Pf[1..3] 可能不同,需要进行同一旋转变换后比较;标量温度、张量迹等旋转不变量可用于辅助检查。

资料包 LAMMPS-UEF-data.csv 保存原生流动压力及独立旋转压力的误差,同时检查规定的归一化伸长。NPT 还包含整体体积变化,应先区分各向同性尺寸变化与规定的无迹伸长,不能简单用某个上三角边长估算伸长率。

5. 重新计算与后续分析#

bash submit.sh
# CPU作业结束后
bash read.sh work-new analysis-read nvt-cpu npt-cpu
bash plot.sh

完整输入与 GPU 提交步骤见均匀伸长流操作。需要真实材料的流变性质时,应换成对应势函数与单位,完成稳态、体系规模、伸长率和统计区间检查;这 200 步示例仅用于理解输入和输出。

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

查看配图

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

100%查看原图 ↗