lammps不会c语言,Ubuntu下安装lammps单机版(no MPI,no FFT)几点心得 - 分子模拟 - 小木虫 - 学术 科研 互动社区...

说明一下:我用的是ubuntu12,自动更新到13(去系统自带的“软件中心”安装谷歌拼音输入法,方便后面操作)。下载的lammps为2014年5月份的。

1.更改系统默认的shell

由于ubuntu系统默认的shell是dash,它更小巧、更快。但是听说安装一些脚本时容易出错,因此还是改为bash。

查看系统默认的shell,

ls -l /bin/sh

重新配置dash,

sudo dpkg-reconfigure dash

然后选择[no],终端会自己删除dash,并更改为bash。

2.预安装

sudo apt-get install csh

sudo apt-get install build-essential

lammps要求ubuntu系统的(用于将ubuntu当作debain系统?):

sudo add-apt-repository ppa:gladky-anton/lammps

sudo apt-get update

3.安装编译器

由于电脑CPU是Intel的,所以选择intel的icc和ifort,听说会比其他编译器快很多(主要差别在浮点运算?)。下载地址:

https://software.intel.com/en-us ... oftware-development,获得序列号。我下载安装的是icc2013_sp1.2.144,ifort2013_sp1.2.144版的。

先装(命令集),

sudo apt-get install g++

去解压包的目录下,我的是cd /home/bill/icc

sudo ./install.sh

ifort的安装与此相同。

设置环境变量,使之生效。

gedit .bashrc

打开.bashrc后,在末尾加上

# l_ccompxe_2013_sp1.2.144

# l_fcompxe_2013_sp1.2.144 这两行只是用来注释的

source /opt/intel/bin/compilervars.sh ia32

加这一条可同时使icc,ifort,icpc生效,而不用分别添加。因为compilervars.sh本身就包含了它们的链接。

保存,关闭。

source .bashrc

测试确认一下:输入which icc,再which icpc,which ifort

卸载和安装前面的步骤相同,只需在安装菜单中选“卸载”。

4.MPI和FFT

我是用单机算的,因此没装MPI,它是用来不同平台之间并行计算的。对于单机,还有一个多核并行计算的问题,即openMP。由于intel的编译器已包括了它,所以不用专门去安装。这里也把网上的安装MPI和FFT的贴过来吧:

(1)先去软件中心下载mpich2,这样省事。cd mpich2-1.0.2p1(去解压包的目录)./configure --prefix= /opt/mpich2-gnu(配置,好像这个命令是要求要有gnu的)make(会出来好多选项)再make install(安装)。

(2)去官网下载,http://www.fftw.org/download.html,解压后,cd fftw-2.1.5,./configure --prefix=/opt/mathlib/fftw215-gnu --enable-float,make,make install。

5.编译lammps

(1)MPI库:去官网下载安装包,http://lammps.sandia.gov/download.html#tar,常选“发展包”。

去lammps/src/STUBS/目录下,将Makefile中的g++改为icc,保存。该目录是关于MPI的。

cd /home/bill/lammps/src/STUBS/

make

生成libmpi_stubs.a,是用于非并行的“伪MPI库”,还有 mpi.o是整体编译lammps时用于链接的“中间目标文件”。

(2)额外库:poems是C语言写的,可用icc来编译;meam和reax是用fortran语言写的,可用ifort编译。

cd /home/bill/lammps/lib/poems

make -f Makefile.icc

即开始用icc来编译poems了。会在lammps/lib/poems目录下会生成一个libpoems.a库文件,用于编译整个lammps时调用,还有一个Makefile.lammps,用于引导编译时相关库的调用,另外还有若干*.o的“中间目标文件”。(旧版的lammps是直接去MAKE下的Makefile.*加路径,现在则通过各个“额外包”的Makefile.lammps来改,这样操作更方便、集中)

cd /home/bill/lammps/lib/meam

make -f Makefile.ifort

即开始用ifort编译meam了。会在lammps/lib/meam目录下生成libmeam.a,Makefile.lammps,*.o。将其Makefile.lammps改为

meam_SYSINC =

meam_SYSLIB = -lifcore -lsvml -liompstubs5 -limf

meam_SYSPATH = -L/opt/intel/composerxe/lib/ia32

第二行有四个库,-lifcore调用libifcore.a库,为ifort编译器所需;-lsvml 调用libsvml.a库,是short vector math library;-liompstubs5(旧版的ifort是-lompstub,若装的是新版的ifort用它就会出错)调用libompstub.a库,它与OMP的一个子程序相关,用它(intel编译器已经预装了)就不用另外安装OMP了;-limf调用libimf.a库,是一个数学库。

第三行为安装的intel编译器的库(链接*.o时候用的?)的地址。

reax的安装与meam的步骤相同。

(3)选择和修改Makefile文件:编译之前先去修改负责编译整个lammps的Makefile文件。lammps/src/目录下有个Makefile.sh,用于引导Makefile.*的选择,这些备选的Makefile文件都在lammps/src/MAKE目录下。比如在src目录下输make linux,则编译时将使用Makefile.linux文件来编译整个lammps。我只要做串行计算,因此选择的是Makefile.serial这个文件。在用它进行编译之前,先对它作一点修改。1.编译器部分两处改为icc。2.如果安装了MPI和FFT,则要修改MPI和FFT相应的部分,比如

MPI_INC =     -I/opt/mpich/include    -DMPICH_SKIP_MPICXX

MPI_PATH =    -L/opt/mpich/lib

MPI_LIB =     -lmpich -lpthread

FFT_INC =  -I/opt/fftw/include       -DFFT_FFTW

FFT_PATH = -L/opt/fftw/lib

FFT_LIB =  -lfftw3f

3.如果要使用JPEG的功能(in文件中有相应的输出JPEG图片的命令),则要修改相应的部分。

修改完后,保存。

(4)整体编译lammps:该准备的都准备好后(主要是库文件和Makefile文件),就可以开始编译整个lammps了。

回到lammps/src/目录下(其实前一步也还是在这个目录下)

cd /home/bill/lammps/src/

查看各包的选择状态,make package-status

选择和剔除各包,我选的是

make yes-all,然后

make no-gpu

make no-kim

make no-mpiio

make no-voronoi

make no-user-atc

make no-user-awpmd

make no-user-colvars

make no-user-cuda

make no-user-lb

make no-user-qmmm

总共安装了22+8=30个包。其中27个平常的(user-omp需要openMP,单核并行),3个额外包(poems,meam和reax)。

剔除了4+6=10个特殊包。其中gpu需要cuda(有两个cuda需要注意区分),voronoi需要voro++,user-atc需要blas和lapack库,user-awpmd需要openMPI(多核并行)。

最后即可开始编译lammps了,

cd /home/bill/lammps/src/

make clean-all

make serial

编译成功后会在该目录下生成名为lmp_serial.exe(后缀可能看不到)的可执行文件。可复制、剪切、更改名字,复制到其他地方的同样可进行计算。

6.用编译好的lammps来进行计算

将in.*即in文件(可能会带一个data.*文件)与lmp_serial.exe放在同一个目录下。若用的是lammps/examples里的in文件,则需要先把dump命令前的#去掉,还可以按需要把输出的步子比如50改为10等。

先去该目录下,

cd /home/bill/Compute

在该目录下,

./lmp_serial < in.name

即开始计算了,生成数据文件dump.*,包含位置等信息,以及日志log.cite,log.lammps等,记录命令的运行情况。

7.对计算结果进行可视化

(1)安装VMD(visual Molecular Dynamics):预装

sudo apt-get install build-essential csh

sudo apt-get install csh

sudo apt-get install libstdc++5(安装编译器也要用到它?)

下载,http://www.ks.uiuc.edu/Developme ... cgi?PackageName=VMD,解压。

如果要更改安装位置,则先去目录/home/bill/vmd-1.9.1/下,找到并修改configure文件,

install_bin_dir="/home/bill/lammps-18Apr14/src"(startup script一个启动脚本,引导作用)

install_library_dir="/home/bill/vmd-1.9.1/bin/$install_name"(executables一个可执行文件,一个用于实际运行的文件)

如果默认安装路径/usr/local/bin/vmd(启动脚本),则上面不用改。

改好后进行配置,

cd /home/bill/vmd-1.9.1

./configure

(出现几个选项,using configure.options: LINUX OPENGL FLTK TK ACTC CUDA IMD LIBSBALL XINERAMA XINPUT LIBTACHYON VRPN NETCDF TCL PTHREADS SILENT ICC)

./configure LINUX(选LINUX)

配置好后,开始安装,

cd src(或者cd /home/bill/vmd-1.9.1/src)

sudo make install

试试 vmd 命令,直接在终端输“vmd”,结果出现

rlwrap: Command not found.

但仍然可以运行,并出现vmd的两个窗口界面。

去软件中心搜“rlwrap”,下载、安装即可。若运行vmd还是出现那个问题,就去/usr/local/bin下找名为vmd的启动脚本,修改它。

先用命令改其权限。

sudo chmod g+rw /usr/local/bin/vmd

再打开该文档,查找与rlwrap有关的字段,有两处乱码,是需要slash才能正确显示的符号。不想安装slash就要把以下乱码删除。

-b(){}[],&^%#;|\\

为了留个记录,可把原句注释掉(在该行最开头加个符号#),再在下面加上没有乱码的语句。

再用chmod命令把文件的属性改回来(也可以不改),运行vmd试试。

(2)先把前面计算得到的dump.*文件改为vmd所要求的.lammpstrj格式,可直接在dump文件名后加此后缀。

运行vmd:在终端输入vmd,打开软件的主界面和图示界面。

载入分子或原子:点开主界面的“File→New Molecules”,会弹出一个名为“Molecule File Browser”的菜单。先在Determine file type下选择LAMMPS Trajectory,再点Browser,去合适的目录下寻找.lammpstrj格式的文件,最后点Load,即可导入分子或原子。

改变显示方式:在主菜单下Graphics→Representations,会弹出Graphical Representations。Drawing Method下选,VDW,此时原子显示为小球。更改球的半径,Sphere Scale调为0.5或0.4。

将模拟过程保存为动画:主菜单Extensions→Visualization→Movie Maker,会弹出一个名为VMD Movie Generator的菜单。先在Movie Settings下选择Trajectory即输出轨迹(此菜单下还可决定是否删除在制作动画过程中生成的一系列图片),再点Set working directory设置输出动画的地址。如果要输出GIF格式的图片,则Fornat→Animated GIF(ImageMagick);如果要输出mpeg格式的视频,则Format→mpeg-1(ppmtompeg)。最后Make Movie,开始制作。在使用这两个功能之前,需要先安装相应的插件(可通过软件中心):ImageMagick用以输出GIF,NetPBM用以输出mpeg。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值