基于插件模式开发LAMMPS¶
- 插件功能介绍:LAMMPS Plugin
- 插件开发指南:LAMMPS Plugin Developer Guide
一般来说,对代码进行功能添加/修改需要直接在源代码中进行,这样可能对原有代码产生影响。为了解决这个问题,LAMMPS引入了插件模式,使得用户可以在不改动源代码的情况下对LAMMPS进行功能扩展。接下来,我们通过官方的例子对插件的运行方式进行大致的了解:
```bash
cd lammps-23Jun2022/examples/plugins
```
make
编译:
```bash
make
```
或者cmake
:
```bash
mkdir -p build
cd build
cmake ../
make
```
编译后可以得到多个动态库文件.so
。可以通过两种方式调用插件:
- 在lammps的input中,通过
plugin load
命令加载插件,即可使用插件中的功能。
plugin load morse2plugin.so
- 将动态库所在路径加入
LAMMPS_PLUGIN_PATH
,程序会自动加载搜索到的所有插件。
注意:如果移动examples/plugins
中例子所在路径,需要修改编译设置。如果采用make
编译,需要修改Makefile
中的CXXFLAGS
```bash
CXXFLAGS=-I$(LAMMPS_SOURCE_DIR) -Wall -Wextra -O3 -fPIC -I$(LAMMPS_SOURCE_DIR)/OPENMP -fopenmp
```
并设置LAMMPS_SOURCE_DIR
为lammps源代码所在路径。
```bash
export LAMMPS_SOURCE_DIR=/data/jxzhu/software/lammps/lammps-23Jun2022/src
make
```
如果采用cmake编译,需要将plugins/CMakeLists.txt
中22行注释掉(get_filename_component(LAMMPS_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../src ABSOLUTE)
),并在执行cmake
时指定lammps源代码所在目录
```bash
mkdir -p build
cd build
rm *
cmake -DLAMMPS_SOURCE_DIR=/data/jxzhu/apps/lammps/lammps-23Jun2022/src ..
make
```