案例库

可以直接下载到本机运行的算例与脚本
01-01 环境自检:LAMMPS 与 MS-MPI 01-02 LJ 流体:最小算例 01-03 把 LJ 流体换成铜(EAM 势) zip
怎么用
  1. 下载 —— 点案例卡片里的文件链接,或直接下载全部打包的 zip。
  2. 就位 —— 把案例目录整个放到一个路径里没有空格和中文的位置,例如 D:\md
  3. 运行 —— 双击 run-serial.bat,或者打开 LAMMPS Shell 后执行本案例的输入命令。
第一次使用请先做 案例 01-01 环境自检:它会检查 LAMMPS 是否装好、势函数路径是否正确、MS-MPI 是否就位。这一项通过了,后面所有算例才会顺利。
第 1 章 · 案例目录
案例 01-01环境自检

环境自检:LAMMPS 与 MS-MPI

对应 §1.5 启动、验证与环境变量 | 讲义第 13 页

在做任何一个算例之前,先用它把运行环境查一遍:lmp 能不能用、版本横幅长什么样、势函数目录在哪、Microsoft MPI 是否就位。五项检查一路看下来,后面报错的可能性就少一大半。

下载文件

双击 check-env.bat,或在本目录下执行 check-env.bat

要点

  • 第 1 项 找到 lmp,说明安装成功、环境变量已生效 —— 这一项是 [OK] 就可以开始做算例 01-02 与 01-03。
  • 第 2 项 会打印命令行选项列表和版本横幅;任何一次运行的开头都会打印版本横幅,看到它就说明程序正常启动。
  • 第 3 项 LAMMPS_POTENTIALS 指向随安装包发布的势函数目录,算例 01-03 用的 Cu_u3.eam 就来自那里。
  • 第 4、5 项 只影响并行(run-mpi.bat);它们显示 [--] 时,串行算例照跑不误。

运行后产生

  • 只在屏幕上打印五项检查结果,不生成任何文件

注意

  • 若第 1 项是 [--]:最省事的办法是从「开始」菜单打开 LAMMPS Shell,再在它的窗口里运行本脚本。
  • MS-MPI 装完 必须关掉所有旧的命令行窗口再重开,否则第 4、5 项仍会显示 [--]
案例 01-02算例

LJ 流体:最小算例

对应 §1.7 第一个算例:LJ 流体 | 讲义第 15 页

讲义里逐行讲过的那份 22 行脚本,一字未改。Lennard-Jones 流体没有真实材料与之对应,但它跑通了,整条「写脚本 → 运行 → 读输出 → 看轨迹」的链路就都通了。

下载文件

lmp -in in.lj   或直接双击 run-serial.bat

要点

  • 体系规模:lattice fcc 0.8442 铺 10×10×10 个晶胞 → 4000 个原子
  • units lj约化单位,所以温度写 1.44、时间步写 0.005,都不带物理单位。
  • 第 0 步的 Temp 必定显示 1.44 —— 因为 velocity create 1.44 刚给完全体原子这样一份初速度。
  • run 1000 × timestep 0.005 = 模拟 5 个约化时间单位。
  • 关键检查点TotEng(总能量)只做小幅涨落即为正常;若持续单调上升,多半是时间步过大、能量不守恒。
  • 四段式的好处在这里最明显:想让体系变成铜或水,只需替换第 ③ 段 —— 见案例 01-03。

运行后产生

  • log.lammps —— 完整日志,含每 50 步的热力学量
  • dump.lj —— 轨迹文件,每 100 步一帧,可用 OVITO 打开

注意

  • Unknown commandIllegal ... 时,先查四段的顺序units 必须在一切数值之前,create_box 必须在 create_atoms 之前。
  • run-mpi.bat 需要 MSMPI 版的 LAMMPS 加已装好的 MS-MPI;本课程默认安装的 GUI 版不含 MPI,用它只能跑 run-serial.bat
案例 01-03算例 · 改造

把 LJ 流体换成铜(EAM 势)

对应 §1.7 延伸:把这个算例改造成「自己的」 | 讲义第 15 页

把同一个盒子从「假想的 LJ 流体」换成「真实的铜」,改动集中在第 ③ 段与单位制。in.cuin.lj 逐行对齐,用文本比较一看就知道改了哪几行。

下载文件

lmp -in in.cu   或直接双击 run-serial.bat

要点

  • 相对 in.lj 只改了 8 行unitslatticemasspair_stylepair_coeffvelocitytimestepdump
  • units metal有量纲的:长度 Å、能量 eV、时间 ps、质量 g/mol、温度 K。
  • lattice fcc 3.615 用的是铜的真实晶格常数 3.615 Å。
  • pair_style eampair_coeff * * Cu_u3.eam 一读一用:前者选势的类型,后者给势的文件名
  • pair_coeff 后面没有元素名,这是由文件格式决定的 —— Cu_u3.eam 是 setfl 格式,文件里没有元素名表,所以只能配 eam;写成 eam/alloy 并附上 Cu 会直接报错(详见注意事项)。
  • timestep 0.001 ps = 1 fs。金属原子振动比 LJ 流体快,时间步要更小。
  • 盒子仍是 10×10×10 个晶胞,边长 36.15 Å,同样 4000 个原子 —— 换了材料,规模却没变,这样才比得出来。

运行后产生

  • log.lammps —— 完整日志
  • dump.cu —— 轨迹文件,可用 OVITO 打开

注意

  • 势函数的两种文件格式别记混.eam(setfl 格式,如 Cu_u3.eam)配 pair_style eampair_coeff 末尾不写元素名.eam.alloy(合金格式,如 AlCu.eam.alloy)配 pair_style eam/alloypair_coeff 末尾要按文件里的元素顺序写出元素名。配错了 LAMMPS 会报 “Not a valid integer number” 之类的读文件错误。
  • 势函数文件必须能被找到:本目录下已附带 Cu_u3.eam。若不小心删掉,可以从 %LAMMPS_POTENTIALS% 里拷回来。
  • 换别的金属,只动三处:latticemass、势函数。到 %LAMMPS_POTENTIALS% 目录里挑文件,例如银有 Ag_u3.eam(同样配 eam)。
  • EAM 势的计算量比 LJ 略大,但 4000 原子跑 1000 步仍然是几秒钟的事。