转载自https://www.jianshu.com/p/1e24935004f7,加入了自己的注释和理解。
---------ubuntu下lammps的安装----------
1、前提条件
2、安装需要的三个软件
2-1 安装fftw(快速傅里叶计算软件)
2-2 安装mpich(并行计算)
2-3 安装lammps
3、配置环境
---------ubuntu下lammps的安装----------
1、前提条件
1-1 笔者所用操作系统为Ubuntu18.04,Ubuntu下安装LAMMPS并行版需要安装必要的依赖包,(重复安装无影响)。
sudo apt-getinstall gcc
sudo apt-getinstall g++
sudo apt-getinstall gfortran
sudo apt-getinstall make
注意: 如果ubuntu的apt-get无法正常使用请 sudo apt-get update
1-2 准备安装包
fftw-3.3.8.tar.gz FFTW Download Page
lammps-stable.tar.gz (解压后为lammps-22Aug18) Download LAMMPS
mpich-3.2.1.tar.gz Downloads | MPICH
准备工作:在 /home/xukang/ 文件夹下建立文件夹/lammps,将相应安装包分别解压这个文件夹中.
创建fftw3和mpich3文件夹用来安装
接下来就是安装fftw和mpich。
2、安装需要的三个软件
2-1 安装fftw
输入指令:
$ cd ~/lammps/fftw-3.3.8
$ sudo ./configure--prefix=/home/xukang/lammps/fftw--enbale-shared=yes
(#安装命令./configure --prefix=fftw安装路径 --enable-shared=yes
#注意:--enable-shared=yes 这个配置非常重要,将fftw设置为动态库,会生成 .so 文件。)
$ sudo make
$ make install
在/lammps/lammps-22Aug18/src/MAKE/OPTIONS路径下有Makefile.fftw文件,
通过查看以下内容可知lammps默认fftw调用路径为/usr/local,(暂时不用修改路径)
FFT_INC = -DFFT_FFTW3 -I/usr/local/include
FFT_PATH = -L/usr/local/lib
FFT_LIB = -lfftw3
2-2 安装mpich
输入指令:
1.cd home/xukang/lammps/mpich-3.2.1
2.sudo ./configure--prefix=/home/xukang/lammps/mpich
3.sudo make
4.sudo make install
在/lammps/lammps-22Aug18/src/MAKE/OPTIONS路径下有Makefile.g++_mpich_link文件,
通过查看以下内容可知lammps默认mpich调用路径为/usr/local。(暂时不用修改路径)
MPI_INC= -DMPICH_SKIP_MPICXX-DOMPI_SKIP_MPICXX=1-I/usr/local/include
MPI_PATH= -L/usr/local/lib
MPI_LIB= -lmpi-lmpl-lpthread
2-3 安装lammps
1、串行的安装
$ cd ~/lammps/lammps-22Aug18/src/STUBS,(串行安装需要在STUBS先make,并行不需要)
$ sudo make
$ cd ~/lammps/lammps-22Aug18/src/MAKE
该文件夹包括Makefile.mpi、Makefile.serial两个编译文件。
Makefile.serial用来串行,Makefile.mpi用来并行
打开Makefile.serial文件,配置fftw的路径即可
在/lammps/lammps-22Aug18/src/MAKE/OPTIONS路径下有Makefile.fftw文件,
通过查看以下内容可知lammps默认fftw调用路径为/usr/local,
FFT_INC = -DFFT_FFTW3 -I/usr/local/include
FFT_PATH = -L/usr/local/lib
FFT_LIB = -lfftw3
但这里要将/usr/local/改成你的fftw所安装的路径,如
FFT_INC = -DFFT_FFTW3 -I/<fftw的安装路径>/include
FFT_PATH = -L/<fftw的安装路径>/lib
2、并行的安装
打开Makefile.mpi文件,配置mpich和fftw的路径
首先将下面部分注释掉。
LMP_INC = -DLAMMPS_GZIP -DLAMMPS_MEMALIGN=64
(由于lammps运行过程中不需要图片支持,因而将关于图片这几行斜线部分删除)
还要需要修改mpich和fftw的路径文件,
fftw与串行一样
mpich与串行类似
在/lammps/lammps-22Aug18/src/MAKE/OPTIONS路径下有Makefile.g++_mpich_link文件,
通过查看以下内容可知lammps默认mpich调用路径为/usr/local。
MPI_INC= -DMPICH_SKIP_MPICXX-DOMPI_SKIP_MPICXX=1-I/usr/local/include
MPI_PATH= -L/usr/local/lib
MPI_LIB= -lmpi-lmpl-lpthread
但这里要将/usr/local/改成你的mpich所在路径
修改完成后保存就行。
3、接下来编译 LAMMPS 的库文件,我这里根据我自己的需求,选择编译了部分库 文件
lib目录下
输入指令:
$ cd meam
$ sudo make -f Makefile.gfortran
$ cd poems
$ sudo make -f Makefile.g++
$ cd reax
$ sudo make -f Makefile.gfortran
LAMMPS 是通过各个模块来实现分子动力学模拟里面不同的功能的,但每 一个具体的任务并不是需要用到 LAMMPS 所有的功能,我们可以选择安 装一些常用的模块,等遇到特别的需求时再来安装额外的模块。每一个模 块实现的具体功能,也通过查阅 LAMMPS 使用手册来获知。
在 src 目录下运行make yes-all(一般不用,电脑容易崩溃)
这个命令告诉电脑,我要准备安装所有的模块了,然后再用排除法,告诉电 脑,哪些模块是不要安装的,比如我一般用不到 user-atc 模块,那么就make no-user-atc。我也一般用不到 kim,kokkos,voronoi, user-qmmm, gpu, user-cuda, 当然,
我用不到不代表你们用不到,要根据实际情况来判断。
src目录下
$ cd lammps/lammps-22Aug18/src/
$make package-status
$make yes-meam
$make yes-poems
$make yes-reax
4、接着make生成lmp_mpi和lmp_serial的文件
$ sudo make mpi
$ sudo make serial
成功的话会生成lmp_mpi和lmp_serial的文件。
5、测试一下
到/home/xukang/lammps/lammps-22Aug18/examples/min文件夹中
串行
$ /home/xukang/lammps/lammps-22Aug18/src/lmp_serial <in.min
(可以发现,如果没有设置环境变量,每次运行需要指定lmp_serial的路径,非常麻烦,可见设置环境变量的作用)
并行
$/usr/local/bin/mpirun -np 3 /home/xukang/lammps/lammps-22Aug18/src/lmp_mpi < in.min
3、配置环境
此外我们可以设置环境变量,简化命令。
$ vi .bashrc (不行的话为vi. ~/.bashrc)
在最后一行加入
export PATH="$PATH:/home/xukang/lammps/lammps-22Aug18/src:/home/xukang/lammps/mpich3/bin:/home/xukang/lammps/fftw/bin"
exportLD_LIBRARY_PATH=/home/xukang/lammps/fftw/lib:/home/xukang/lammps/mpich/lib:/home/**(用户名)/lammps/lammps-22Aug18/src:$LD_LIBRARY_PATH
(#格式为export PATH="$PATH:/lmp_serial或者lmp_mpi所在的路径/")
$ source .bashrc 使得环境生效
再次测试一下
到/home/xukang/lammps/lammps-22Aug18/examples/min文件夹中
串行
$ lmp_serial <in.min (这就很方便简洁了)
然而并行出错了
/home/xukang/lammps/lammps-22Aug18/src/lmp_mpi:errorwhileloading shared libraries:libmpi.so.12:cannotopensharedobjectfile:No such fileordirectory
输入ldd ~/lammps/lammps-22Aug18/src/lmp_mpi
发现libmpi.so.12 => not found
应该是libmpi.so.12不在你的LD_LIBRARY_PATH路径下
作者:xukang919
链接:https://www.jianshu.com/p/1e24935004f7
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
网友评论