8. 基础知识
此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语,以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples
目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各种模拟。
8.1.通用基础知识
8.1.1.重新启动模拟
8.1.2.可视化 LAMMPS 快照
8.1.3.从一个输入脚本运行多个模拟
8.1.4.多副本模拟
8.1.5. LAMMPS 的库接口
8.1.6. LAMMPS 与其他代码耦合
LAMMPS 旨在支持与其他代码的耦合。例如,量子力学代码可能会计算原子子集上的力并将这些力传递给 LAMMPS。或者,连续有限元 (FE) 模拟可能会使用原子位置作为 FE 节点上的边界条件,计算 FE 解,并返回 MD 原子上的插值力。
LAMMPS 可以通过至少 4 种不同的方式耦合到其他代码。每种方法都有优点和缺点,您必须根据您的应用程序考虑这些优点和缺点。
-
定义调用其他代码的新修复或计算命令。在这种情况下,LAMMPS 是驱动程序代码。在时间步长期间,修复或计算被调用,并且可以对其他代码进行库调用,这些代码已作为库链接到 LAMMPS。这就是 VORONOI 包与 LAMMPS 接口的方式,该包使用 Voro++ 库计算 Voronoi 曲面细分。有关更多详细信息,请参阅compute voronoi 命令。另请参阅Modify 页面,了解有关如何向 LAMMPS 添加新修复或计算的信息。
-
定义一个调用其他代码的新 LAMMPS 命令。这在概念上类似于方法 (1),但在这种情况下,LAMMPS 和其他代码处于更平等的基础上。请注意,现在其他代码不会在 LAMMPS 运行的时间步长期间调用,而是在运行之间调用。 LAMMPS 输入脚本可用于交替 LAMMPS 运行与对其他代码的调用(通过新命令调用)。 run 命令通过其每个选项促进了这一点,这使得运行几个步骤、调用命令、运行几个步骤、调用命令等变得容易。在这种情况下,其他代码可以作为库调用,如 1. 所示,也可以是独立代码,由命令进行的 system() 调用调用(假设您的并行机允许一个或多个处理器)启动另一个程序)。在后一种情况下,独立代码可以通过命令写入和读取的文件与 LAMMPS 进行通信。
Modify 命令页面。有关如何向 LAMMPS 添加新命令的信息,请参阅 -
使用 LAMMPS 作为由其他代码调用的库。在这种情况下,其他代码是驱动程序,并根据需要调用 LAMMPS。或者,包装器代码可以将 LAMMPS 和另一个代码作为库链接和调用。同样,如果您希望由另一个程序驱动进行多次短期运行,则 run 命令具有允许以最小开销(无需设置或清理)调用它的选项。库 API 文档中给出了有关使用库接口的详细信息。
-
以客户端/服务器方式将 LAMMPS 与其他代码结合起来,使用分子科学软件研究所 (MolSSI)开发的 MDI 库将 LAMMPS 作为 MDI 驱动程序(客户端)或 MDI 引擎(服务器)运行。 MDI 驱动程序向 MDI 服务器发出命令以在它们之间交换数据。有关 LAMMPS 如何在这两种模式下运行的更多信息,请参阅将LAMMPS 与 MDI 库结合使用进行代码耦合页面。