ubuntu上编译LAMMPS
需要在系统上预先装有mpich和fftw的开发库,而且fftw还要求不是最新的3.x版,而是2.x。
复制内容到剪贴板
代码:
apt-get install fftw2 libmpich1.0-dev gfortran
下载并解压缩源文件包以后,进入解压后路径下的src/目录,只要简单的“make debian”就可以得到可执行文件(lmp_debian)
得到lmp_debian之后,就可以运行那些例子了。但是你并没有得到lammps所支持的所有功能。lammps支持package,有系统自带的也有用户自行开发的。默认只编译"kspace", "manybody", 和"molecule"三个系统自带的包。其他还有一些“ asphere class2 colloid dipole dpd granular meam opt poems xtc”包没有编译进可执行程序,也就是说你不能使用那些额外功能。 如果需要全部编译。这可以通过先“make yes-all”然后“make clean”,"make debian"来完成。
稍微有一点麻烦的是,有两个包“meam”和“poems”是第三方开发的独立程序,源代码并没有在src目录下。你需要到../lib/中才可以看见它们的目录,需要分别编译。
先说poems,应该用用于刚体模拟的,进入lib/poems/后,直接“make Makefile.g++”
再说编译meam,这个meam是fortran写的,前面由于已经安装了gfortran,作者也给了Makefile.gfortran,所以只要“make Makefile.gfortran”即可得到libmeam.a了
到这里,我们准备好了所有的lammps附属包,可以重新编译最终的可执行文件了。为了能让编译器找到需要库和头文件,我们还需手工修改一下makefile。我这里就是修改src/MAKE/Makefile.debian。要改这三行:
CCFLAGS = -g -O -I/usr/lib/mpich/include/ -DFFT_FFTW -DLAMMPS_GZIP -I/lammps全路径/lib/poems/ -I/lammps全路径/lib/meam/
LINKFLAGS = -g -O -L/lammps全路径/lib/poems/ -L/lammps路径/lib/meam/
USRLIB = -lfftw -lmpich -lpoems -lmeam -lgfortran -lgfortranbegin
注意加粗的地方是要添加的。大致的意思就是告诉编译器哪里有额外的库文件,头文件。
欢迎大家拍砖。
其实,安装了下面这个东西(因为lammps需要老版本的fftw),才能真正编译通过。
┌─────┐
│fftw安装 │
└─────┘
fftw-2.1.5.tar.gz
./configure --prefix=/usr/local/fftw CC=icc CFLAGS=-O2
make
make install
注:笔者水平有限,安装较新的fftw-3.x的版本,只能得到fftw3.h,但lammps源代码中却需要fftw.h的头文件,试了重安fftw-3.x好几次,吾欲fftw.h而不可得,只好退回2.1.5。
没有评论:
发表评论