文档详情

LAMMPS编译.docx

发布:2017-07-06约5.77千字共6页下载文档
文本预览下载声明
LAMMPS编译fatcharm(肥超)前言:? ?? ? 2007年,曾写过《lammps学习指南》,反响不错,颇为欣慰。LAMMPS的发展可以说是日新月异,相比三年前,更是有了很大的变化。结合RCS的发行,我想再写一个连载,题目暂定做《LAMMPS Step by Step》。? ? 只所以想写这样一个连载,仅仅是对于自己使用LAMMPS的一个总结,其中的大部分内容,来自LAMMPS手册、mdbbs上【LAMMPS】版的讨论,以及平时跟网友的交流。使用LAMMPS遇到的任何问题,不能依赖别人,查阅手册是王道。提问之前,请阅读RCS第1期中的《你是合格的菜鸟吗?》一文。? ? 既然是一个连载,故从LAMMPS编译开始讲起。本文中,并不是严格采用简单列举LAMMPS编译步骤的方式,而是希望通过讲解,让读者对LAMMPS的整个编译过程有自己的理解,从而可以在理解的基础进行编译。再次建议,请仔细阅读LAMMPS手册2.2和2.3两节中的相关内容。一。准备需要准备:LAMMPS源代码,Linux系统,编译器,合适的Makefile文件,必要的库文件(MPI,FFTW等)。(1)LAMMPS源代码:可以从官方网站下载,解压等操作不再阐述,参考以下命令:gunzip lammps*.tar.gz tar xvf lammps*.tar (2)Linux系统:个人还是偏爱Linux系统下的LAMMPS计算。关于Windows版本:LAMMPS官方已经提供一个相对比较全的版本(includes MPIan FFT library, built with all packages except: gpu, meam, opt, reax, xtc, user-atc, user-imd)。新手可以拿这个版本练习。如果要自己编译,那么/src/MAKE/Windows/中有可供参考的信息。除此之外,可以考虑Windows下的Cygwin。如果你打算长期以LAMMPS作为你的模拟工具,强烈推荐相关的Linux版本。(3)编译器:目前LAMMPS推出的是C++版本的(LAMMPS 2001和LAMMPS99 分别为Fortran90和Fortran77版的,但LAMMPS 2001仅更新至2005年1月)。故需要C++编译器,推荐Intel的icc(有非商业免费版本)或g++。如何安装,请到网上搜索。如果需要添加MEAM和REAX等package,那么还需要Fortran编译器,推荐Intel的ifort或gfortran。(4)Makefile文件:按照你的平台在/src/MAKE/目录中选择合适你的Makefile文件,如果没有那么考虑Makefile.g++3或Makefile.linux。一般都需要进行必要的修改,下一节详述。(5)MPI和FFTW的配置:以MPICH 2.1为例,介绍其安装步骤,可以下载MPICH 1.2。下载之后解压相关文件,进入其目录,然后依次执行以下命令: ./configure --prefix=指定的安装路径makemake install但是,这并不意味这你就可以进行并行计算了,还需要进行相关的配置。关于MPI的详细配置,请搜索网络中的介绍,此处不再详述。关于FFTW,注意要下载FFTW 2.1.5,而不是其它较新的版本。解压后,进入目录,依次执行以下命令:./configure --prefix=指定的安装路径 makemake install二。Makefile文件Makefile定义了一系列的规则来指定,/src中哪些文件需要先编译,哪些文件需要后编译,甚至于其它更复杂的功能操作。在2010年1月份发行的版本中,LAMMPS已经对Makefile的结构作了很大的调整,以使其更为合理和清晰。关于Makefile更深层次的理解,请在网上搜索《跟我一起写Makefile(by 陈皓)》。对LAMMPS这样一个庞大的体系来说,文件/src/Makefile指定了编译LAMMPS的所有规则,而用户可能需要对/src/MAKE/Makefile.***(下文可能简称为Makefile文件)进行修改。下面,以/src/MAKE/Makefile.g++3为例,对其进行简要解析。# g++ = RedHat Linux box, g++, MPICH2, FFTWSHELL = /bin/sh# ---------------------------------------------------------------------# compiler/linker settings# specify flags and libraries needed for your compilerCC = g++CCFLAGS
显示全部
相似文档