离开学校才一年,就把个人主页空间和FTP空间收回了,原来总结的东西移动到这里了。

关于lammps的编译,其实它的官方网站写的很详细的,可能有些朋友不喜欢去看吧,或者把大部分精力都放在研究手册第三章了。在这里提醒一下,虽然一直强调手册的第三章(可能我的前一篇文章有误导作用,不好意思),但是整个手册的内容都是很重要的。

如我以下所写的,其实在官网也都列出来了。

Making LAMMPS with optional packages

----By 肥超 (imech@CAS)

最近想重新拾起久违的LAMMPS,这次不想稀里糊涂的了,所以想系统的学一下,可没想到在编译上就遇到了很大的麻烦。

谢谢QQ网友振兴,不厌其烦地解答了我的很多疑问。在这里,把我学到的东西总结一下,为了忘却的纪念。

1.准备(以ubuntu系统为例)

C++编译器:

(1)sudo apt-get install build-essential 安装gcc

(2)可以到 Intel官方网站免费下载 i㏄

csh:

csh是shell的一种,是linux比较大的一个内核,共有52个内部命令。我这次编译遇到一个问题,后来发现是因为ubuntu系统默认没有安装csh。可以通过以下命令安装:

sudo apt-get install csh

2.下载&解压缩

gunzip lammps*.tar.gz

tar xvf lammps*.tar 这个就不用多说了。

3.Making LAMMPS with standard packages except MEAM and POEMS

(1)进入src/STUBS/目录,make一下。LAMMPS stands for Large-scale Atomic/Molecular Massively ParallelSimulator。主要还是做并行计算的,如果要编译单机版,只能在STUBS里面生成.a库文件,来代替lmpi。

(2)如果你的系统安装的编译器不是i㏄而是gcc,那么需要把src/MAKE/Makefile.serial文件中"CC = icc"和"LINK = icc"两处的icc改为gcc。

(3)返回src/目录,选择你要加入编译的packages。相关命令是:

make yes-name,makeno-name。

"name" is the name of the package,例如make yes-class2。默认情况下,LAMMPS只包括kspace,manybody和molecule这三个packages。

可以通过make package-status查看packages的选择状态。

(4)在src/目录下make serial,编译成功后会在该目录下生成名为lmp_serial的可执行文件,你可以将该文件复制到/bin目录下,sudo cp lmp_serial /bin ,个人觉得这样使用起来方便一些。

4.Making LAMMPS with MEAM and POEMS packages

(1)同3(1)

(2)以gfortran为例,如果你的系统没有安装Fortran编译器,sudo apt-get install gfortran。

在lammps*/lib/meam/目录下,执行make -f Makefile.gfortran命令。

当然你也可以安装其它的Fortran编译器,根据LAMMPS手册关于这里的讲解,你可以把对应你的编译器的Makefile.*里面的内容copy到Makefile文件,然后执行make命令即可。

(3)在lammps*/lib/poems/目录下,执行make命令。

(4)修改src/MAKE/Makefile.serial文件:

首先的修改同3(2)。

然后在CCFLAGS = -O -I../STUBS -DFFT_NONE这一行后面添加

-I/home/wolfshow/Desktop/download/lammps/lammps-27Oct07/lib/poems

在LINKFLAGS = -O -L../STUBS这一行后面添加

-L/home/wolfshow/Desktop/download/lammps/lammps-27Oct07/lib/poems \

-L/home/wolfshow/Desktop/download/lammps/lammps-27Oct07/lib/meam \

-L/opt/intel/fce/9.0/lib

提示:

"\"是续行符。

红色的表示要按照你的文件系统的路径修改。

这三行,并不是一定要添加,视你想选择meam还是poems还是两者而定。

蓝色这一行是你系统安装的intel的lib目录,也可以按照“注”添加合适的编译器lib

最后在USRLIB = -lmpi 这一行后添加 -lpoems -lmeam

修改此行 SYSLIB = -lpthread -lifcore -lsvml -lompstub -limf

(5)大致同3(3),只是这里你需要执行的命令可能是make yes-meam和(或)make yes-poems

(6)同3(4)

注:关于编译meam,LAMMPS手册中有这样一段话:

Note that linking a Fortran library to a C++ code can be problematic(e.g. Fortran routine names can't be found due to non-standardunderscore rules) and typically requires additional C++ or F90libraries be included in the link. You may need to read documentationfor your compiler about how to do this correctly.

5.Making LAMMPS with optional packages

基于3,4中的讨论,结合下面的命令,你可以随心所欲的选择你需要的packages。

make yes-standard,make no-standard

make yes-user,makeno-user

make yes-all,make no-all

standard表示所有在中列出的由LAMMPS开发者支持的packages。

来自:


本文由转载于互联网,如有侵权请联系删除!