离开学校才一年,就把个人主页空间和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。
来自: