- 科研
- 科学计算
- 高性能计算
【免费下载链接】lammps
Public development project of the LAMMPS MD software package
导读
LAMMPS(Large-scale Atomic/Molecular Massively Parallel Simulator)是经典分子动力学(MD)模拟领域的开源软件包,其官方源码发行版中提供了面向 Windows 系统的预编译可执行安装包,让不熟悉 Linux 编译流程的用户也能在 Windows 上直接运行 LAMMPS 的完整功能。本文围绕 doc/src/Install_windows.rst 展开,系统讲解如何获取官方 Windows 安装程序、安装后系统环境的变化、二进制包内置的可选软件包范围、串行与 MPI 并行运行方式,并结合 cmake/packaging 目录下的 NSIS 安装脚本源码,从安装包内部视角解释每个安装步骤背后的真实行为。读完本文,你将掌握在 Windows 上部署、更新、卸载 LAMMPS 以及利用LAMMPS_POTENTIALS、PATH等环境变量正确驱动模拟的完整技能。
适用前提:本文面向在 Windows 系统上以"用户安装"方式部署 LAMMPS 的场景;安装包发布与安装脚本行为均以当前仓库(LAMMPS 开发版源码树)为准。
一、Windows 安装包的获取
LAMMPS 官方为 Windows 用户提供了预编译的安装程序,这些安装程序把 LAMMPS 的可执行文件、势函数文件、文档 PDF、示例文件等打包成.exe,下载地址为官方安装包发布站点(对应 Install_windows.rst 中给出的链接,即packages.lammps.org/windows.html)。
1.1 安装包命名与版本对应关系
安装包的文件名中带有日期,该日期即对应的 LAMMPS 版本号(LAMMPS 采用 YYYYMMDD 形式的版本命名)。这一点可以从仓库中的 NSIS 安装脚本得到印证:例如 cmake/packaging/lammps-gui.nsis 中:
!define LAMMPS "LAMMPS ${VERSION} with GUI" OutFile "../LAMMPS-Win10-x64-GUI-${VERSION}.exe"其中${VERSION}即YYYYMMDD格式的版本日期,最终生成的安装程序名为LAMMPS-Win10-x64-GUI-20240101.exe这类格式。同理,cmake/packaging/lammps-noadmin.nsis 与 cmake/packaging/lammps-python.nsis 分别生成LAMMPS-Win10-x64-${VERSION}.exe与LAMMPS-Win10-x64-Python-${VERSION}.exe。
下载站点同时提供当前版本和历史版本的安装程序,可按需选择。
1.2 32 位与 64 位版本
官方同时提供32 位与64 位两种安装包,并且每个安装包都同时包含一个串行(serial)可执行文件和一个并行(parallel)可执行文件,安装时不会冲突。
说明:虽然旧版安装脚本中仍存在 32 位构建的痕迹(如
lammps-gui.nsis中通过注册表标记安装位数),但当前仓库打包脚本生成的安装包名为LAMMPS-Win10-x64-*,即面向 64 位 Windows 10 及以上系统。装机时应优先选择与操作系统位数匹配的版本。
二、Windows 并行运行的 MPI 前置条件
安装包中的并行可执行文件依赖 MPI(Message Passing Interface)实现才能进行分布式并行计算。安装包发布站点同时给出了 Windows 下 MPI 的安装说明:
- 官方推荐的 MPI 实现为MPICH2(源自阿贡国家实验室),用于运行并行 LAMMPS 任务。
- 从仓库的 NSIS 脚本来看,目前 Windows 安装包面向MS-MPI与MPICH2两类实现。例如 cmake/packaging/lammps-noadmin.nsis 定义了 MPICH2 的二进制目录:
!define MPICHDIR "$ProgramFiles64\MPICH2\bin"- 安装脚本会在安装时把
MPICHDIR加入用户PATH(见 lammps-noadmin.nsis),这样mpiexec等命令即可在命令行直接调用。
根据 Run_windows.rst 的说明,使用 MS-MPI 并行可执行文件时,需要先下载并安装 MS-MPI 运行时包msmpisetup.exe;只有需要在 Windows 上从源码用 Visual Studio 编译 LAMMPS 时,才需要额外的msmpisdk.msi(SDK 开发包)。安装 MS-MPI 后建议重启一次系统,使环境变量与 MPI 服务生效。
三、安装包内置的可选软件包范围
3.1 完整软件包清单
Windows 二进制安装包包含了源码发行版中的全部可选软件包(optional packages),但以下 9 个包除外:
| 未包含的软件包 | 说明 |
|---|---|
| ADIOS | 基于 ADIOS 的 I/O 适配器 |
| H5MD | 基于 HDF5 的轨迹格式 |
| KIM | OpenKIM 势函数互操作接口 |
| ML-PACE | 机器学习原子间势 PACE 模型 |
| ML-QUIP | 机器学习势 QUIP/GAP 接口 |
| MSCG | 多尺度粗粒化力匹配工具 |
| NETCDF | NetCDF 轨迹输出格式 |
| QMMM | 量子-经典耦合 QM/MM 计算 |
| SCAFACOS | ScaFaCoS 长程库接口 |
上述软件包列表来自 Install_windows.rst,当前仓库 doc/src/Packages.rst 提供了完整的包目录可对照查看。这些包大多依赖第三方外部库或运行时环境,在交叉编译环境下不易一并打包。
此外还有几个特殊限制:
- 串行(serial)版本不含 LATBOLTZ 软件包(格子玻尔兹曼流体动力学)。
- PYTHON 软件包仅出现在捆绑了 Python 运行时的 Python 安装包中,普通安装包不包含。
- GPU 软件包以 OpenCL 为后端编译,采用混合精度内核(mixed precision kernels),意味着在 Windows 上使用 GPU 加速时通过 OpenCL 驱动工作,而非 CUDA。
3.2 如何确认当前可执行文件的软件包组成
安装完成后,可在命令行运行:
lmp -h根据 Packages.rst 的说明,-h选项会列出当前可执行文件内置的所有软件包,方便核对自己拿到的二进制版本是否满足需求。
四、安装过程详解:安装包做了什么
当你双击下载到的安装包后,NSIS 安装程序会弹出向导对话框,逐步完成以下工作。仓库中的 cmake/packaging/lammps-noadmin.nsis 等脚本精确描述了每一步行为。
4.1 交互式安装步骤
安装向导依次进行:
- 许可证确认(
MUI_PAGE_LICENSE):展示并接受 LAMMPS 的 GPL 许可。 - 选择安装目录(
MUI_PAGE_DIRECTORY):默认安装到$LOCALAPPDATA\LAMMPS ${VERSION},即用户目录下的 AppData 位置;用户可修改。 - 安装文件复制(
MUI_PAGE_INSTFILES):解压并复制所有组件。 - 安装结束时写入卸载注册信息,并提供卸载程序入口。
安装脚本定义的关键组件目录(以 lammps-noadmin.nsis 为例):
| 安装目录 | 内容 |
|---|---|
bin | LAMMPS 可执行文件(lmp等)及运行所需的 DLL(如libfftw3-3.dll、libgomp-1.dll、libgfortran-5.dll、libstdc++-6.dll等) |
Doc | LAMMPS 手册 PDF 等文档 |
Benchmarks | 基准测试用例(来自仓库 bench 目录,排除log.*.4日志) |
Examples | 示例输入文件(来自仓库 examples 目录,排除日志文件) |
Potentials | 势函数文件(来自仓库 potentials 目录的全部文件) |
Python | LAMMPS Python 模块(来自 python/lammps) |
frc_files | msi2lmp 力场参数文件(来自 tools/msi2lmp/frc_files) |
plugins | LAMMPS 插件目录 |
qt6plugins(GUI 版) | Qt6 运行所需的插件(平台、图像格式、样式、TLS) |
4.2 环境变量与系统设置的修改
安装脚本会通过EnVar插件修改当前用户的系统环境变量(lammps-noadmin.nsis):
| 环境变量 | 值 | 作用 |
|---|---|---|
PATH | 追加$INSTDIR\bin(并行包还会追加$ProgramFiles64\MPICH2\bin) | 使lmp、mpiexec命令在命令行中直接可用 |
LAMMPS_POTENTIALS | $INSTDIR\Potentials | 让pair_coeff等命令能自动找到势函数文件 |
MSI2LMP_LIBRARY | $INSTDIR\frc_files | 供 msi2lmp 转换工具查找力场库 |
PYTHONPATH | $INSTDIR\Python | 让 Python 解释器能找到 LAMMPS 模块 |
LAMMPS_PLUGIN_PATH | $INSTDIR\plugins | 让 LAMMPS 插件可被动态加载 |
LAMMPSHOME | $INSTDIR | 记录安装目录位置 |
同时安装程序会:
- 在开始菜单创建程序组(
$SMPROGRAMS\LAMMPS ${VERSION}),包含 LAMMPS 手册、示例、基准测试、README、LICENSE、卸载程序的快捷方式,以及指向 LAMMPS 官网和命令文档的互联网快捷方式。 - (GUI 版)注册
.lmp文件关联到 LAMMPS-GUI(见 lammps-gui.nsis 与 FileAssociation.nsh),双击.lmp输入文件可直接用 GUI 打开。 - 写入 Windows 注册表
HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS,登记显示名称、发布者、版本、安装位置、卸载命令等(lammps-gui.nsis),使其出现在"设置→应用"列表。
4.3LAMMPS_POTENTIALS的底层作用原理
这个环境变量对日常使用极为关键。根据 pair_coeff.rst 的说明,当pair_coeff命令引用势函数文件时,LAMMPS 按如下顺序查找文件:
- 首先在当前工作目录查找;
- 若指定了相对路径(如
../potentials/niu3.eam),则按该路径查找; - 若仍未找到,则在
LAMMPS_POTENTIALS指定的一个或多个目录中查找。
因此安装包把LAMMPS_POTENTIALS设置为$INSTDIR\Potentials后,你可以从任意目录运行模拟,无需把势文件复制到工作目录。该变量支持多个路径,Windows 下用分号;分隔多个目录,其他系统用冒号:(pair_coeff.rst)。
提示:若在命令行手动设置,Windows 语法为
set LAMMPS_POTENTIALS="C:\Path to LAMMPS\Potentials"(参见 pair_coeff.rst)。
4.4 安装包的构建来源(补充背景)
从仓库的打包工具可以看出,Windows 安装包是在 Linux 上通过 MinGW 交叉编译生成的,相关脚本有:
- cmake/packaging/cmake-win-on-linux.py:自动下载并校验 MinGW 运行时与 Qt 库、执行交叉编译、调用 NSIS 生成安装包的完整流程。
- cmake/packaging/build_windows_cross_zip.sh:演示如何从交叉编译产物中收集 DLL 依赖、Qt 插件并打包为 zip 发布版。
这些脚本可让你理解安装包中各个 DLL 和组件的来龙去脉,但普通用户只需使用下载站点提供的成品安装包即可。
五、安装完成后如何运行 LAMMPS
5.1 串行运行
根据 Run_windows.rst 的步骤:
- 先安装 LAMMPS 安装包;
- 打开"命令提示符(Command Prompt)"或"终端(Terminal)";
- 切换到输入脚本所在目录(例如
cd "Documents"); - 输入命令运行:
lmp -in in.file.lmp其中in.file.lmp是你的 LAMMPS 输入脚本文件名。
5.2 多线程加速(串行可执行文件)
串行可执行文件虽然不使用 MPI,但内置了 OPENMP 与 KOKKOS 软件包的多线程支持。例如使用 4 线程运行(Run_windows.rst):
lmp -in in.lj.lmp -pk omp 4 -sf omp lmp -in in.lj.lmp -k on t 4 -sf kk-pk omp 4 -sf omp:以 OpenMP 风格运行 4 线程;-k on t 4 -sf kk:启用 KOKKOS 风格,4 线程。
5.3 MPI 并行运行
如果你安装的是 MS-MPI 版本的并行可执行文件(Run_windows.rst):
mpiexec -localonly 4 lmp -in in.file.lmp mpiexec -np 4 lmp -in in.file.lmp-localonly:仅在当前机器上启动进程,适合单机多核并行;-np 4:启动 4 个 MPI 进程(使用 MS-MPI 时可能提示输入安装 MPI 时设置的密码)。
使用 MPI 模式时,屏幕输出可能不会立即刷新,如果脚本执行时间长需要耐心等待。
5.4 MPI 与多线程混合
并行可执行文件同样包含 OPENMP/KOKKOS 的多线程支持,可与 MPI 组合,例如(Run_windows.rst):
mpiexec -localonly 2 lmp -in in.lj.lmp -pk omp 2 -sf omp mpiexec -localonly 2 lmp -in in.lj.lmp -kokkos on t 2 -sf kk5.5 串并行方式的适用性对比
Run_windows.rst 给出了重要的选型建议:
- MPI 并行适用于 LAMMPS 的全部功能,且 LAMMPS 从设计之初就以 MPI + 域分解(domain decomposition)为核心,多数场景下 MPI 并行比多线程更高效;
- 多线程仅对部分风格(styles)可用,且实现于 MPI 并行之上;
- 多线程最适合域分解负载不均衡、线程数不超过 8 的场景。
5.6 使用 LAMMPS-GUI
安装包发布站点也提供包含LAMMPS-GUI的安装包(文件名含GUI)。安装后可从开始菜单启动 LAMMPS-GUI,直接在图形界面中打开输入文件并运行;该安装包同时包含命令行版本lmp。GUI 版安装包还会把.lmp文件关联到 LAMMPS-GUI(lammps-gui.nsis)。
5.7 Python 集成
由于 LAMMPS 库以共享库形式编译,且安装包会一并安装 LAMMPS Python 模块(Install_windows.rst),因此安装后可以在 Python 解释器中直接import lammps使用。普通安装包把模块放在$INSTDIR\Python并写入PYTHONPATH;若使用捆绑 Python 运行时的Python安装包,则无需额外安装 Python 即可加载模块(lammps-python.nsis)。
六、版本更新与多版本共存
6.1 更新到新版本
更新 LAMMPS 的推荐流程(Install_windows.rst)与绝大多数 Windows 程序一致:
- 先卸载当前已安装的版本;
- 下载新版本的安装包;
- 按前述安装流程重新安装。
不建议在未卸载旧版的情况下直接安装新版。
6.2 多版本共存与限制
你可以在不同目录中安装多个 LAMMPS 版本(例如用于调试对比),但需要注意:
- 只有最后安装的那个版本的可执行文件会被自动找到(因为
PATH环境变量指向的是最后写入的bin目录); - 因此多版本共存仅建议用于调试目的。
从安装脚本也能看到该限制的根源:每次安装都会通过EnVar::AddValue "PATH" "$INSTDIR\bin"修改用户PATH(lammps-noadmin.nsis),路径按安装先后顺序排列,命令行解析lmp时通常命中最早写入的路径。
建议:为每个版本使用不同的安装目录,并在需要切换时手动调整
PATH环境变量的顺序,或直接在命令行使用完整路径调用指定版本。
七、卸载与清理
开始菜单的程序组中包含"Uninstall"快捷方式,指向安装目录下的Uninstall.exe(lammps-gui.nsis)。卸载程序会:
- 删除安装目录及其全部子目录(
bin、Doc、Examples、Potentials、Python、frc_files、plugins、qt6plugins等,见 lammps-noadmin.nsis); - 从
PATH中移除$INSTDIR\bin(以及 MPICH2 路径,若由安装包写入); - 删除
LAMMPS_POTENTIALS、MSI2LMP_LIBRARY、PYTHONPATH(安装包写入项)、LAMMPS_PLUGIN_PATH、LAMMPSHOME等环境变量(lammps-noadmin.nsis); - 删除注册表卸载信息项与开始菜单快捷方式;
- (GUI 版)取消
.lmp文件关联注册。
注意:卸载程序只会清理安装包自己写入的环境变量与注册表项,不会影响你后来手动添加的路径。
八、常见问题与排查建议
| 现象 | 可能原因 | 处理建议 |
|---|---|---|
命令行输入lmp提示找不到命令 | PATH未包含安装目录bin,或安装后未重开终端 | 重新打开终端;或手动设置PATH指向$INSTDIR\bin |
运行mpiexec报错 | 未安装 MS-MPI / MPICH2 运行时 | 安装msmpisetup.exe(MS-MPI)后重启 |
| 输入脚本提示找不到势函数文件 | LAMMPS_POTENTIALS未设置或指向错误 | 确认该变量指向安装目录的Potentials文件夹 |
| 需要确认软件包构成 | — | 运行lmp -h查看内置软件包列表 |
| 需要指定版本的二进制 | — | 用完整路径调用其他版本的lmp.exe(多版本调试场景) |
参考资源(仓库内)
- 安装文档:doc/src/Install_windows.rst
- 运行文档:doc/src/Run_windows.rst
- 软件包总览:doc/src/Packages.rst
- 势函数查找机制:doc/src/pair_coeff.rst
- NSIS 安装脚本:cmake/packaging/lammps-noadmin.nsis、cmake/packaging/lammps-msmpi.nsis、cmake/packaging/lammps-gui.nsis、cmake/packaging/lammps-python.nsis
- 文件关联插件:cmake/packaging/FileAssociation.nsh
- Windows 交叉打包工具:cmake/packaging/cmake-win-on-linux.py、cmake/packaging/build_windows_cross_zip.sh
- 科研
- 科学计算
- 高性能计算
【免费下载链接】lammps
Public development project of the LAMMPS MD software package
相关推荐
解决Windows 10下GoodbyeDPI运行难题:从安装到高级配置全攻略
解决Windows 10下GoodbyeDPI运行难题:从安装到高级配置全攻略 你是否遇到过GoodbyeDPI启动后无法联网、频繁闪退或提示权限不足的问题?作
网络通信VeighNa Elite 安装配置指南:Windows 环境下的安装、卸载与运行目录管理
VeighNa Elite 安装配置指南:Windows 环境下的安装、卸载与运行目录管理 本篇技术指南以 vnpy 开源仓库中 docs/elite/info
金融科技机器学习手机变电脑:Winlator安卓版安装配置全攻略,轻松运行Windows软件
手机变电脑:Winlator安卓版安装配置全攻略,轻松运行Windows软件 Winlator是一款强大的Android应用,它通过Wine和Box86/Box
移动开发虚拟化
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考