附中科普2026 · 2026年9月17日 · Windows 并行 LAMMPS

只用三个文件,让镍晶界动起来

本课用真实的分子动力学模拟,观察两个镍晶粒在剪切加载下的运动。先最小化消除初始坏接触,再升温、恒温平衡,最后反复“施加一小步位移 → 运行一段动力学”。假设已经安装 Windows 并行版 LAMMPS,不需要安装 Python,也没有其他启动脚本。

文件用途
操作说明.html当前说明,可离线打开;下方可以直接绘制输出数据。
in.ni_shear.lmpLAMMPS 输入脚本。参数、逐段原理、数据解释和练习均写在中文注释中。
Ni.eam.alloy镍的 EAM 势函数。不要编辑或改名。

1 准备一个自己的实验文件夹

  1. 新建一个文件夹,例如 E:\MD_class\trial_01,把这三个文件一起复制进去。建议实验路径使用英文,减少不同 Windows 软件的路径编码问题。
  2. 在资源管理器中显示“文件扩展名”,确认输入文件没有变成 in.ni_shear.lmp.txt。
  3. 右键输入脚本,用记事本或代码编辑器打开。不要用 Word 编辑。中文注释以 # 开头,不参与计算。
  4. 第一次保持默认参数。每次新实验都另建文件夹、复制三个文件;同目录重复运行会覆盖同名结果,改变输出频率还可能留下旧帧。

2 从 PowerShell 启动

在实验文件夹的资源管理器地址栏输入 powershell 并回车。先输入下面的命令,确认当前位置和文件:

Get-Location
Get-ChildItem

如果安装时已经把程序加入 PATH,执行:

mpiexec -n 4 lmp -in in.ni_shear.lmp

-n 4 表示使用四个 MPI 进程。第一次可以用 2;建议给电脑保留至少一到两个 CPU 核心。如果命令提示找不到程序,用自己电脑的实际安装路径执行:

& 'C:\Program Files\Microsoft MPI\Bin\mpiexec.exe' -n 4 `
  'C:\你的LAMMPS安装目录\bin\lmp.exe' -in in.ni_shear.lmp

上面第二个路径是占位示例,必须替换。可以在 LAMMPS 快捷方式的属性中查看目标路径,或者在安装目录找到 lmp.exe。反引号是 PowerShell 换行符,其后不要留空格;也可以把命令写成一整行。

屏幕开始打印原子数、最小化信息和热力学数据后,等待命令提示符重新出现。默认模型约 4992 个原子,模拟物理时间 135 ps;实际等待时间取决于电脑性能。完成后检查 log.lammps 末尾,确认没有 ERROR,并确认生成 final.data 和 final.restart。

最小化迭代步不是物理时间。默认真实动力学为:5 ps 升温 + 50 ps 恒温平衡 + 160 × 0.5 ps 加载弛豫 = 135 ps。

3 修改哪些参数

打开脚本顶部“第一课”参数区,只修改每行 equal 后面的数值。每次先改一个因素,再对照运行;解释和单位可直接看行尾中文注释。

想改变什么变量默认与示例
体系尺寸nx、ny、nz3、4、4;可把 ny 改为 6,增加厚度。
目标温度Ttarget300 K;可比较 100、300、600 K。
加载总位移total16 Å;改为 8 Å 时加载次数减半。
每次位移dx0.1 Å;总位移必须是它的整数倍。
加载间隔hold0.5 ps;改成 1 ps 后平均加载速度减半。
升温与平衡时间warm、equil5、50 ps;判断平衡应观察统计量,不只看是否达到目标温度。
时间步与输出频率dt、sample、average、frames详细限制写在脚本中;不熟悉时保持默认。

加载次数 = total / dx;平均加载速度 = dx / hold;平均应变率 = dx / (hold × 初始标距)。例如把 hold 加倍,加载过程的物理时长也加倍。增大厚度后,同一总位移对应的工程应变会变小。

仅检查流程时,可设 warm=0.1、equil=0.2、total=0.2、hold=0.1、frames=100,其余不变。这个极短试算不能用于判断平衡或得出迁移机制结论。正式实验请恢复默认时长。

4 结果在哪里、看什么

所有输出直接位于本次实验文件夹内,文件名都是英文。文件会明显增多,这是模拟生成的结果,并非额外的运行依赖。

文件用途
log.lammps运行记录;发生错误时从末尾查找具体提示。
equilibration.txt升温和平衡阶段的平均温度、压力、标距数据。
loading_monitor.txt加载时的窗口平均温度、应力、应变和位移。
stress_strain.csv每次加载弛豫结束时的瞬时应力应变;可用 Excel 打开。
equilibration.*.cfg、equilibrated.*.cfg平衡过程各帧,以及最终平衡结构。
loading.时间步.cfg加载过程结构序列,含零次加载的初态。
minimized.data、equilibrated.data、final.data最小化后、平衡后和加载后的 LAMMPS 结构文件。
gauge_length.txt、final.restart参考标距和二进制重启文件;初学者不需要编辑。

5 在本页面查看曲线

选择本地输出文件即可绘图,数据只在本浏览器内处理,不上传、不需要网络。温度和压力选择 equilibration.txt;应力应变选择 stress_strain.csv。按钮可以播放温压曲线逐渐形成的过程,也可以保存当前曲线为 PNG。

尚未选择数据。两类数据可以分别载入。

应力应变曲线使用加载周期末态瞬时值;需要平滑统计时,另用 loading_monitor.txt 的窗口平均结果。平均会影响峰值,不可混为同一种测量。

6 在 OVITO 查看原子和晶界

  1. 打开 OVITO,把 loading.时间步.cfg 拖入窗口,加载对应 loading.*.cfg 文件序列;确认帧按时间步的数值顺序排列,第一帧是加载前初态。只看初态或末态时可以打开单个 CFG。
  2. 在 Simulation cell 中关闭 y 方向的周期边界,保持 x 和 z 为周期。CFG 的边界标记不能替代本模型的实际边界条件。
  3. 调整到沿 z 方向观察,看清上下自由表面及中间晶界;用底部时间滑块播放加载序列。
  4. 用 Color coding 选择势能 c_peatom、动能 c_keatom、剪切应力 v_sxy 或结构编号。某些版本显示属性名时格式略有区别,查看实际属性列表。
  5. CFG 已保存 CNA 和 PTM 结果。PTM 的 c_ptm_1 是结构类别,c_ptm_4 至 c_ptm_7 是取向四元数。需要 OVITO 的标准结构颜色和取向显示时,可以添加其 Polyhedral template matching 修改器,启用取向输出。
  6. 观察两个晶粒当前取向区域的分界是否沿 y 移动。原始 type 标签不会随晶界迁移变化,所以只按 type 着色不能证明晶界迁移。

要制作结构动画,可使用 OVITO 的 Render 设置渲染文件序列或该版本支持的视频格式。本精简版不带自动 GIF 后处理程序,不自动测量晶界位置,也不自动导出 GIF;温压过程可在上面的本地曲线查看器中播放。

7 怎样判断结果合理

默认模型为 FCC 镍的 Σ13 <100>{320} 对称倾斜晶界,只有一个内部晶界。下方三层原子完全固定;上方三层限制 x 自由度,y/z 可运动。每次给上层施加 x 位移后继续做动力学,内部原子在加载阶段按 y/z 温度控温,避免直接消除 x 向剪切运动。

温度围绕目标值波动是正常现象。本例不控制零压,压力不会必然回到零,还可能存在声学振荡。判断平衡要比较后段多个时间窗口的均值和趋势。自由表面、固定夹层和真空都会影响压力的定义;本页显示脚本采用材料参考体积计算的压力。

原子应力使用固定参考体积 a³/4,单位 GPa;这不代表每个晶界或表面原子都具有这一真实局部体积。剪切耦合迁移需要结合取向变化、晶界位置变化、剪切响应和其他可能的塑性机制判断,不能只凭颜色或一张曲线下结论。原子属性、符号约定、约束和练习题的进一步解释都在脚本中文注释中。

8 遇到问题时

现象处理
找不到 lmp 或 mpiexec使用第 2 节的完整路径命令,确认安装位置。
Cannot open potential file确认 Ni.eam.alloy 与脚本在当前目录,先用 Get-Location 检查工作目录。
Unknown compute style ptm/atom当前 LAMMPS 缺少 PTM 功能,向老师反馈版本和错误信息;不要删掉相关命令后仍宣称输出了 PTM。
参数区 quit 后退出检查正数、整数周期及时间是否整除。warm、equil、hold 都必须是 sample × average × dt 的整数倍。
Lost atoms、温度发散停止解释结果,检查时间步、单次位移及温度;先恢复默认参数,在新目录重试。
只看到两个颜色块,没有清晰迁移确认加载的是完整序列,查看当前晶体取向;type 是初始标签,不会更新为当前晶粒。

势函数来源信息见 Ni.eam.alloy 文件头。技术命令说明可查阅 LAMMPS CFG 输出文档、PTM 文档及 原子应力文档。