Lammps安装教程
下面是在linux集群下安装lammps的过程,如有错误,望指正。
安装平台:centos , intel icc,ifort ,mpich3(intel编译器编译),fftw3(intel编译器编译);jpeg8a (intel编译器编译)。确定Icc ifort安装在正确,并加入到环境变量, which icc命令会有正确路径显示, mpich3 fftw3 jpeg安装在/opt/下面
1、 解压,在src/目录下输入:make yes-all (先把所有包安装了)
2、 在src/目录下输入:make no-lib (卸载一些需要链接外部数学库的package)
3、 安装lib/下的poems、mean和reax三个包:
cd ~/LAMMPS/lib/meam
gedit Makefile.lammps
其中
meam_SYSINC =
meam_SYSLIB = -lifcore -lsvml –liompstubs5 -limf 画线部分改为-lgfortran
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib 删除画线部分
make -f Makefile.ifort (安装meam)
cd ~/LAMMPS/lib/poems
make -f Makefile.icc
cd ~/LAMMPS/lib/reax
更改Makefile.lammps中的 lompstub 为 liompstubs5
make –f Makefle.ifort
然后src/目录下make yes-poems, make yes-meam, make yes-reax
4、修改src/MAKE/目录下的Makefile.linux如下:
CC = icc
CCFLAGS = -O
DEPFLAGS = -M
LINK = icc
LINKFLAGS = -O
LIB = -lstdc++
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
MPI_INC = -I/opt/mpich3/include -DMPICH_SKIP_MPICXX
MPI_PATH = -L/opt/mpich3/lib
MPI_LIB = -lmpich -lmpl -lpthread
FFT_INC = -I/opt/fftw/include -DFFT_FFTW3
FFT_PATH = -L/opt/fftw/lib
FFT_LIB = -lfftw3
JPG_INC = -I/opt/jpeg8b-intel/include
JPG_PATH = -L/opt/jpeg8b-intel/lib
JPG_LIB = -ljpeg
5、在src/目录下 make linux,正常的话会生成lmp_linux可执行文件,可讲其copy到bench或者example文件夹下测试。
下面是安装过程中可能遇到的问题:
Jpeg9a没有通过,但是jpeg8b通过了,可以是因为lammps版本比jpeg9a版本高。
错误:ld: cannot find –lompstub
解决办法:http://simulation.haotui.com/viewthread.php?tid=39248
(此问题是intel编译器遇到的问题)
lib/reax/Makefile.lammps
-lompstub -> -liompstubs5
lib/meam/Makefile.lammps
-lompstub -> -liompstubs5
测试:将lmp_linux复制到example/colloid文件夹,在终端运行:./lmp_linux<in.colloid
出现错误:./lmp_linux: error while loading shared libraries: libjpeg.so.8: cannot open shared object file: No such file or directory
export LD_LIBRARY_PATH=/opt/jpeg8b-intel/lib:$LD_LIBRARY_PATH
LD_LIBRARY_PATH是动态库路径,动态库.so文件编译时候不需要,编译的时候需要静态库.a文件。没有.so文件但是正确指定了.a文件的路径,可以正常编译成可执行文件,但是运行的时候会出错。所以需要将.so文件路径加到LD_LIBRARY_PATH中,因为程序运行的时候自动搜索这些路径需找相应的.so文件。
切换到计算机点上遇到类似问题:./lmp_linux: error while loading shared libraries: libifcore.so.5: cannot open shared object file: No such file or directory
解决:在~/.bashrc 中加入下面一行:
Export LD_LIBRARY_PATH=/opt/intel/composer_xe_2013.1.117/compiler/lib/intel64:$LD_LIBRARY_PATH
计算节点上intel的动态库路径和主节点不一致,所以需要添加。
另外可以在~/.bashrc中加入下面两行:
export PATH=/home/wangyanfang/LAMMPS/src:$PATH
export PATH=/opt/mpich3/bin:$PATH
加入第一行后,以后运行程序时不用再将lmp_linux复制到相应目录,直接用lmp_linux<in.colloid 就行;
第二行是平行的时候用到的mpi,个人推荐mpich3,比较简单,不用启动mpd,直接运行mpiexec就行,例如:mpiexec -n 4 lmp_linux<in.colloid
预安装:
fftw:
#yum install fftw3 fftw3-dev pkg-config
mpich
安装教程 :https://blog.csdn.net/qq_33892998/article/details/78687529
jpeglib
教程:
下载地址 :https://sourceforge.net/projects/libjpeg/files/libjpeg/
安装平台:centos , gcc ,g++ ,mpich3(intel编译器编译),fftw3(intel编译器编译),jpeglib;
Icc ifort安装在/opt/intel下,mpich3 fftw3 jpeglib安装在/share/apps/下面
特别注意:此安装步骤是在只有gnu编译器情况下,如果有intel编译器,需要把intel的相关环境变量删掉,which icc 没有输出的情况再编译安装mpich3和fftw3
1、 解压,在src/目录下输入:make yes-all (先把所有包安装了)
2、 在src/目录下输入:make no-lib (卸载一些需要链接外部数学库的package)
3、 安装lib/下的poems、mean和reax三个包:(http://blog.sina.com.cn/s/blog_9d62fc9601018fbc.html)或附录A
然后src/目录下make yes-poems。。。。。。。
4、修改src/MAKE/目录下的Makefile.g++如下:
CC = g++
CCFLAGS = -g -O # -Wunused
DEPFLAGS = -M
LINK = g++
LINKFLAGS = -g -O
LIB =
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
MPI_INC = -I/share/apps/mpich3-gnu/include -DMPICH_SKIP_MPICXX
MPI_PATH = -L/share/apps/mpich3-gnu/lib
MPI_LIB = -lmpi
FFT_INC = -I/share/apps/fftw-gnu/include -DFFT_FFTW3
FFT_PATH = -L/share/apps/fftw-gnu/lib
FFT_LIB = -lfftw3
JPG_INC = -I/share/apps/jpeg-gnu/include
JPG_PATH = -L/share/apps/jpeg-gnu/lib
JPG_LIB = -ljpeg
5、在src/目录下 make g++,正常的话会生成lmp_g++可执行文件,可讲其copy到bench或者example文件夹下测试。这样安装的在集群计算节点也能正常运行。
附录A:
查看已经安装了那些包
make package-status
需要特殊安装就
make yes-meam
make yes-reax
make yes-peri 即make yes-*
也可以make yes-all,会因缺少文件出错所以不建议,也可都卸载make no-all
(几个特殊的package:meam,poems,reax,gpu,user-atc需要特别安装,如下)
同时注意,因为你用的是gfortran编译器,所以里面有个Makefile.lammps的文件需要修改一下,poems不用它用的是g++编译器:
cd /mnt/lmp/lib/meam
gedit Makefile.lammps
其中
meam_SYSINC =
meam_SYSLIB = -lifcore -lsvml –lompstub-limf 画线部分改为-lgfortran
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib 删除画线部分
make -f Makefile.gfortran (安装meam)
cd /mnt/lmp/lib/poems
make -f Makefile.g++
cd /mnt/lmp/lib/reax
gedi