• 智海芯算
  • icon 介绍、教程

LAMMPS软件基础培训

LAMMPS 是一种经典的分子动力学 (MD) 代码,用于模拟液态、固态或气态粒子的集合。它可以使用各种原子间势(力场)和边界条件对原子、聚合物、生物、固态(金属、陶瓷、氧化物)、粒状、粗粒或宏观系统进行建模。它可以对尺寸从几个粒子到数十亿个粒子的 2d 或 3d 系统进行建模。

LAMMPS是用C++编写的,需要一个至少与C++-11标准兼容的编译器。早期版本是用 F77、F90 和 C++-98 编写的。详情请参阅网站的历史记录页面。所有版本都可以从 LAMMPS 网站下载源代码。

从最一般的意义上来说,LAMMPS 集成了相互作用粒子集合的牛顿运动方程。单个粒子可以是原子、分子或电子、粗粒度的原子簇、或者介观或宏观的材料团块。 LAMMPS 包含的交互模型本质上大多是短程的;还包括一些远程型号。

LAMMPS 使用邻居列表来跟踪附近的粒子。这些列表针对具有短距离排斥粒子的系统进行了优化,因此粒子的局部密度永远不会变得太大。这与用于模拟等离子体或引力体(如星系形成)的方法形成对比。

在并行机上,LAMMPS 使用空间分解技术和 MPI 并行化将模拟域划分为计算成本相等的子域,其中一个子域分配给每个处理器。处理器通信并存储与其子域边界的原子的“幽灵”原子信息。另外还可以使用多线程并行化和带有粒子分解的 GPU 加速。

LAMMPS特点有:
在单个处理器上运行或并行运行、分布式内存消息传递并行性、共享内存多线程并行性、MPI并行性仿真域的空间分解、粒子分解内部空间分解为OpenMP和GPU并行、GPLv2许可的开源发行版、高度可移植的c++ -11、模块化代码,大部分功能在可选包中、仅依赖于MPI库的基本并行功能,MPI存根串行编译、其他库是可选的,只有特定的包才需要、GPU (CUDA, OpenCL, HIP, SYCL), Intel Xeon Phi和OpenMP支持许多代码功能、易于扩展新的特性和功能、从输入脚本运行、定义和使用变量和公式的语法、循环遍历运行和跳出循环的语法、从一个脚本同时(并行)运行一个或多个模拟、作为库构建,通过库接口(从C, c++, Fortran)或提供的Python包装器或基于SWIG的包装器调用LAMMPS、与其他代码耦合:LAMMPS调用其他代码,其他代码调用LAMMPS,伞形代码同时调用,MDI耦合接口、调用Python来执行计算力、时间积分或其他任务、插件接口,用于在运行时加载外部特性、大量集成的测试集合

LAMMPS 旨在成为分子动力学 (MD) 模拟的快速并行引擎。它仅提供少量的功能来设置模拟和分析其输出。
最初,LAMMPS 的构思和设计目的不包括:
1.绘制输出数据
2.通过GUI运行
3.构建分子系统,或者构建分子拓扑结构
4.自动分配力场系数
5.对你的MD模拟进行复杂的分析
6.交互式地可视化MD模拟
多年来,这些限制中的许多已经减少或消除。一部分是通过添加到LAMMPS中的功能,另一部分是通过与LAMMPS紧密连接或扩展LAMMPS的外部工具。