红联Linux门户
Linux帮助

Ubuntu下安装测试LAMMPS,并通过VMD进行可视化

发布时间:2017-05-06 09:57:47来源:linux网站作者:de布罗意
注:我的安装环境为Ubuntu 16.04 LTS,LAMMPS-14May16,MPICH3.2,FFTW3.3.4,VMD1.9.3。一些基本的linux命令如gcc、g++、make等,本文默认不存在问题,如出错请自行通过错误信息安装依赖的包,sudo apt-get ... 即可。
LAMMPS(Large-scale Atomic/Molecular Massively Parallel Simulator)(http://lammps.sandia.gov/)是一款经典的开源分子动力学软件,对于求解凝聚态材料、软物质等体系效率很高,在材料模拟领域有很广泛的应用。到现在网上已经有各种各样安装LAMMPS的文章,但是有许多描述的不是很全面,或者有些陈旧,有些同学一步步照着安装也会出现很多问题,所以我也想分享一下自己安装和学习LAMMPS的经验,欢迎大家提意见。(当然,如果看英文没有问题,那么参考Manual还有源程序里面的README文件也可以)。
 
(1)LAMMPS单机版安装
首先,将LAMMPS下载并解压,接着cd lammps-14May16/src。如果你的计算机只有一个核,或者只是想要试算一下,那么可以先安装单机版的LAMMPS。安装文件为lammps-14May16/src/MAKE/Makefile.serial,我们打开它并查看里面的设置。可以看到,在# MPI library(存放MPI并行库的路径以及库文件等)这一部分下面有这样几行:
MPI_INC =   -I../STUBS 
MPI_PATH =  -L../STUBS
MPI_LIB =   -lmpi_stubs
因此所谓的单机安装也存在MPI Library,LAMMPS实质上是为计算机搭建了一个虚拟的MPI库STUBS,以避免出错。显然LAMMPS的优势在于并行大规模计算,仅仅使用单机版并不能充分发挥LAMMPS的潜力。Makefile文件的后缀xxx就是将来得到的可以用于计算的lmp_xxx程序,如果编译完成,我们就可以得到lmp_serial可执行文件。
单机版安装很简单,在lammps-14May16/src目录下输入命令make serial,在src目录可以发现生成了lmp_serial。
接下来我们测试一下,如果成功运行就可以生成log.lammps文件。
cd ../examples/shear/
../../src/lmp_serial < in.shear
在in.shear文件中寻找下面这一行:
#dump   1 all atom 100 dump.shear  
将前面的#删掉后运行../../src/lmp_serial < in.shear,将会生成dump.shear文件,之后将会用它来进行可视化。
 
(2)LAMMPS并行版安装
相信大多数的LAMMPS安装问题都出在并行版本的LAMMPS安装上吧,要安装并行版本的LAMMPS,需要先下载安装FFTW3(http://www.fftw.org/)和MPICH3(http://www.mpich.org/)。都采用默认路径安装,如果想要修改安装路径,请参考软件各自的README文件。
安装FFTW3.3.4
cd fftw-3.3.4
./configure
make
sudo make install
如果上面的命令提示出错,先试一下chmod +x configure给文件加上可执行权限。如果一切顺利就说明安装成功,默认将其安装到了/usr/local/目录。
安装MPICH
进入解压后的文件夹,然后
mkdir /home/meng/mpich-install
./configure --prefix=/home/meng/mpich-install 2>&1 | tee c.txt
make 2>&1 | tee m.txt
sudo make install 2>&1 | tee mi.txt
配置环境变量(别忘了这一步!):
cd ~
gedit .bashrc
在最后添加下面两行,保存后输入命令source .bashrc即可
PATH=/home/meng/mpich-install/bin:$PATH ; export PATH
export LD_LIBRARY_PATH = $PATH:/home/meng/mpich-install/lib
解释一下,如果你的计算机名为lidakang,那么就把上面的meng换成lidakang;以上的命令均假设在bash环境下运行。输入以下命令,如果得到mpich的安装路径,那么说明安装成功了。
which mpicc
which mpiexec
现在必要的软件都安装好了,假设你之前安装过单机版的LAMMPS,首先进入lammps-14May16/src目录清理一下sudo make clean-all。如果有特殊需求,那么在安装lammps可执行文件之前要先安装一些额外的包,如在正式编译之前输入这样的命令make yes-class2 yes-rigid yes-shock,即首先要安装class2、rigid、shock包。这些包的安装比较简单,但还有一些包的安装需要额外的库,如果在实际科研中用到,参考Manual安装即可。
编译LAMMPS
接下来正式开始lammps的编译,我之前说过Makefile文件是编译的基本文件,下面将Makefile.mpi文件复制到src/MAKE/MINE子目录,并将名字修改为Makefile.meng(后面的这个meng你可以随便取,不过后面编译的时候相应的要变一下),打开并找到下面的几行并替换,把meng修改成你的计算机名,注意原始文件中的空格和Tab这些不要去动它,防止意外错误。
MPI_INC =   -DMPICH_SKIP_MPICXX -I/home/meng/Software/mpich-install/include
MPI_PATH = -L/home/meng/Software/mpich-install/lib
MPI_LIB =   -lmpl -lmpich 
FFT_INC =   -DFFT_FFTW3 -I/usr/local/include
FFT_PATH = -L/usr/local/lib
FFT_LIB =   -lfftw3`
眼尖的同学可以看出对于上面INC和PATH的部分,我只是把MPI和FFTW的安装路径加了上去,而LIB这行只是库文件的名称。保存以后回到src目录,命令行输入sudo make meng -j 4,注意这里的meng即为Makefile.xxx的后缀(我用了4个核来编译,可以在make后紧接着加-j N来表示使用N个核编译)。
如果顺利的话,可以生成lmp_meng可执行文件,可是(注意!)这一步极其容易出现错误,如上面明明成功安装了mpi而且添加进了环境变量,还是会提示缺少mpicxx。如果遇到了问题,最好的办法就是保持冷静,分析并找出答案。对于这种情况,解决办法是找到Makefile.meng文件中的# compiler/linker settings后面的部分,将两处CC标签后面的mpicxx换成g++,改变一下编译器然后试着make一下。更改完了这里并不意味着大功告成,在编译的过程中还会偶尔出现令人崩溃的错误,这时候就要用你的慧眼,要通过出错信息自己寻找解决办法了。
将LAMMPS添加到环境变量
不想在以后调用lammps求解时都得输入绝对路径,那就把它加到环境变量里吧(参考上面的添加方法):
PATH=/home/meng/lammps-14May16/src:$PATH ; export PATH
测试一下
cd ../examples/shear/
在in.shear文件中寻找下面这一行,并将前面的#删掉:
#dump   1 all atom 100 dump.shear
运行mpiexec -n 4 lmp_meng < in.shear
顺利的话可以生成dump.shear文件。
其他莫名其妙的错误
大多数错误都源自于少了某些依赖包,使用sudo apt-get ...就可以安装它们,因此不必慌乱,搜索引擎就在那里。可是包的名字吧总是很难猜,因此你可以参考出错信息(一般是fetel error),自行网上搜索需要的包叫什么,如gfortran、python-dev等等不一而足。
 
(3)VMD可视化
计算完了,看着命令行飞速的闪过一行行的数据,很过瘾吧:P。可是计算完了以后呢?LAMMPS到底干了些什么?这就需要进行可视化,把计算结果用图片或者动画的形式形象的展现在我们的眼前,下面我就用前面产生的dump文件,用VMD来进行可视化操作。
进入VMD网站,提示还要注册,没关系。下载一个对应于自己计算机的压缩包,我下载的是vmd-1.9.3.bin.LINUXAMD64-CUDA8-OptiX4-OSPRay111p1.opengl.tar.gz。进入文件夹后,注入命令./configure会提示你输入在后面加上LINUXAMD64(或别的类似的),因此安装流程如下:
cd vmd-1.9.3
./configure LINUXAMD64
cd src
sudo make install
安装成功以后直接在命令行里输入vmd就可以将程序调出来,选择New Molecule,然后导入我们之前计算得到的dump.shear文件,记得在Determine file type一栏选择LAMMPS trajectory选项。
Ubuntu下安装测试LAMMPS,并通过VMD进行可视化
Ubuntu下安装测试LAMMPS,并通过VMD进行可视化
导入以后,可以得到这样的构型,拖动main对话框下面的滑动条就可以看到体系的剪切行为,大功告成!
 
(4)MD相关资源推荐
对刚刚接触这一个领域的初学者而言,一些指引是很有必要的。我就把我觉得有用的资源贴在这里,以后也会经常更新,供需要的同学参考。
软件:
VMD(http://www.ks.uiuc.edu/Research/vmd/):不用多说了吧,很强大的一款后处理软件。
Atomeye(http://li.mit.edu/Archive/Graphics/A/):MIT的一位博士自己写的,通过一些指令来实现可视化操作,使用起来很方便。
Avogadro(https://avogadro.cc/):界面很友好,开源的,在Ubuntu下需要安装各种各样的依赖软件,我没弄成功,所以在Windows里使用。我感觉和Materials Studio有点类似,直接能够建立分子甚至DNA双螺旋结构。
EMC(http://montecarlo.sourceforge.net/emc/Welcome.html):主要用来建立随机结构。
Packmol(http://www.ime.unicamp.br/~martinez/packmol/home.shtml):命令很简单,用于建立分子随机排布效果挺好的。
moltemplate(http://www.moltemplate.org/):很强大,我用的很多。可以按照自己的想法来建立模型,没有图形界面,主要通过代码式的操作,因此需要和VMD等联合起来使用。
OVITO(http://www.ovito.org/):全平台的可视化软件,Windows和Ubuntu中都可以使用,操作简便。
资料:
用matlab写一个100行的分子动力学模拟程序:大神写的MATLAB程序,可以参考着理解MD算法。
《计算化学——从理论到分子模拟》 陈敏伯 著
《分子模拟的理论与实践》 陈正隆 著
 
本文永久更新地址:http://www.linuxdiyf.com/linux/30559.html