【转帖】Lammps学习指南1作者:duxiao3150收录日期:2009-12-11发布日期:2009-12-11本文结构:0.写在最开始的话1.首先确定lammps是不是适合你2.下载和编译3.如何使用lammps进行计算4.关于manual.pdf(20/JUL/07)的阅读建议5.Comannds的简单讲解6.解决问题的途径7.写在最后面的话温馨提示:(1)点击标题可直接到相关的“章节”.(2)为避免混淆,上面的各“章”,在本文中用“步骤2”、“步骤5”这样的词代指;而文中其它地方出现的“章节”是指lammps手册中的章节.(3)文中跟某些名词相关的网页已加注超链接,直接点击可浏览该页面以获得更详尽的信息.==========================================================================0.写在最开始的话从2007年5月初开始接触和学习lammps,时至今日,依然对lammps存有很多疑惑.如同一个刚入门的工匠面对着一台功能强大的复杂机器,不知所措.虽然还有好多好多的东西要学习,但是也已经了解了一些最最基本的东西了.我可以去帮助那些刚刚入门的人,正如我刚刚开始学习lammps时诸位热心网友对我的帮助.现在,我写一写自己知道的东西,希望对lammps的新手有所帮助,不当之处,真诚地希望各位读者多多指正.我写的这点儿东西,使用者仅限于使用lammps的新手,而且里面只讲到了ubuntu下编译lammps的单机版,没有涉及并行版的编译.我希望这个“指南”会帮他们更快地了解和学习lammps.如果你已经在使用lammps了,我觉得这个“指南”是不会对你有什么帮助的.不过,对于高手来说,如果你有时间,我还是希望你能看完这篇,因为我接触lammps和MD的时间都不长,我怕我的某些错误会误导新手.所以,希望大家一起努力,完善这个指南.对这个“指南”有任何的建议,请联系我,联系方式如下:QQ:365449075Email:wfc@mail.ustc.edu.cn另外,我只把这篇文章放在这个由学校提供的个人网页空间.之前QQ空间的那篇文章,因为对其内容改动较大,故我已将其删除.我并不反对转载,(先自我陶醉一下下,可是会有吗?呵呵)但是转载之前,请注意:(1)文章中的一些表述我尚不肯定正确与否.所以转载之前,请你负责任地认真读完这篇文章并确认你是否认可我的表述.如果发现错误,请及时联系我,谢谢先了.(2)我知道有些论坛的用户可以设置回复或者付出金币or积分等才能查看某些帖子,我坚决反对这篇文章被这么做.(3)本文没有所谓的版权,完全是分享性质的.转载的时候,没有必要著上是我写的,可是我不希望有一天看到这篇指南成了另外的一个名字的原创.如果你发现文中的错误并做了修改(最好也通知我),那样我们可以算是这篇文章的共同作者.(4)严禁本文被用作其它用途.我还要再次重申,我不想写成像教科书一样的东西.我写这篇指南的意图也绝对不是“哦,你是lammps新手吧,那你按照我说的做吧.”那我岂不成了教父了?呵呵.要知道,这篇文章的作者只不过是一个3个月前才知道世上有lammps这款代码的家伙,他根本就没有完全读完和读懂lammps手册,他对MD的基本理论了解的是少之又少.我只不过是想结合我学习lammps的过程,写一下我的体会和建议,供新手参考.如果你觉得这个指南对你有用,那固然很好;但是如果你看后觉得我说的都是屁话,那也很好,你可以按照另外的思路去学习lammps,同时,你还可以按照我的联系方式大骂我一顿,我也会洗耳恭听的.如果这篇文章真的对lammps的初学者有些许帮助,那我将感到十分的欣慰.(返回本文目录)==========================================================================1.首先确定lammps是不是适合你可以从以下两个网页找到答案:://lammps.sandia.gov/non_features.html如果你觉得看英文很不爽,这里有一个中文翻译----Byhooge.lu我也简单说几句,分子动力学要做的,大部分lammps都可以做(呵呵,这句话我是听别人说的).lammps源代码公开,免费下载,你可以根据自己的需要修改lammps代码,重新编译.lammps可以在并行环境中运行,这更能体现出它强大的计算优势.它能模拟上百万的原子体系,气态,液态或者固态,在各种系综下.lammps提供了各种势函数供你选择,具体请到lammps官网查询.再说说lammps所谓的“缺点”吧.相比lammps的计算能力,它提供给我们的前后处理的功能显得相对弱了一些.对于一些复杂体系初始构型的建立,lammps表现得并不是很尽如人意.所以lammps提供了一个read_data命令可以读入一个data文件,这个文件包括体系中各个原子的xyz坐标等等相关参数.对于这个文件中定义系统的部分,我有两个建议,用其它的软件做好体系构型,导出数据文件,然后按照lammps规定的格式(参阅手册中read_data命令)修改;或者你的计算体系构型中原子的排布有某种规律可循,你就自己编程从而获得lammps需要的data文件.提醒一下,上面提到的通过data文件的方式建立系统的初始构型,是在你已掌握你的体系的相关参数的基础之上的,lammps只是规定了这个data文件的语法格式而已.同时,lammps提供的各种势函数,它也是提供了各种函数的表达式,至于各个函数所需要的参数,lammps并不会告诉你应该填多少.这些参数都需要你在用lammps计算之前就已经知道.如何知道?这个问题我就不能回答了,一种办法是参阅相关的文献(这么说貌似很牵强哦).还有一个可能被新手抱怨的原因就是lammps没有图形界面.这使得你无法直观地看到你模拟的系统,相关的建议是采用其它的可视化软件,如AtomEye,VMD,raster3d等等.我用的是VMD,Linux版本和Windows版本都有.VMD的简单使用:File-NewMolecule…Browse…thenLoad读入xyz文件Graphics-Representation…CreateRep新建层(VMD中对同一个Rep中所有原子的大小颜色同时控制,所以要对不同种类的原子分别设置显示效果,需要新建几个Rep)Selections结合Keywords和Value设置每个层中的原子.(SelectedAtoms中把all删除,然后双击某个Keywords如type,然后再在Value栏里双击某个种类,之后Apply)Drawstyle中ColoringMethod建议选择ColorID,然后在后面选择颜色;DrawingMethod建议选择Beads,然后在SphereScale和SphereResolution中调整球的大小和清晰度计算结果的数据处理在lammps中也显得不是很方便,你可能需要自己编程进一步处理.至于一些数据曲线的作图,Windows下的Origin,Linux下的labplot足以应付这个问题了.以上我只是把features.html和non_features.html里面的内容结合我的理解简单地说了几句.我建议你认真阅读这两个网页,毕竟,下面的几个步骤,还有那阅读那让人痛苦的手册,都是建立在lammps可以胜任你的计算要求的基础之上的.如果lammps不适合你,那就想其它的办法,不要在看这篇文章的后续内容上浪费时间了.(返回本文目录)==========================================================================2.下载和编译lammps是在linux环境下运行的.所以,首先你要有一个linux环境,如果你已经在用linux了,那当然再好不过了.(lammps也可以在Windows下编译,但那不是我现在所能理解的范围.关于这一点,请查阅“材料科学论坛-分子动力学模拟版”的某个置顶帖后面的相关回帖,但是我个人不推荐这么做.)如果你跟我一样,听到lammps这个词的时候对linux一窍不通,那么你有两个选择.要么在你的Windows环境中虚拟一个linux系统,我没有这么做过,所以我不便说什么.不过我建议你自己在网上搜索在Windows下安装虚拟机虚拟linux的方法,我只是在ubuntu下虚拟过XP环境(只是用来QQ视频),想来应该差不多的.还有一个方法呢,就是安装一个linux.新手的话,我个人推荐ubuntu,对硬件支持较好,上手很快.请参考:ubuntu7.04(硬盘)安装与配置图文指南多罗嗦几句:一开始用ubuntu,我就深深的喜欢上它了,现在,我的机子上原来的Windows已经被我格掉了.换一个操作系统,刚开始会很不不习惯,但是现在,我可以在ubuntu下上网、写文档、看电影听音乐、聊QQ、用MSN、看网络电视、使用Matlab……这一切都是通过ubuntu完成的,而非在VirtualBox虚拟的XP中做的.还有最重要的一点,ubuntu中你所需要的绝大多数软件都可以用sudoapt-getinstall这个命令通过网络安装,不会有Windows里面烦死人的软件破解等等问题.一段时间之后,你就会觉得ubuntu.linux带给你的美妙的享受,它的那种自由和分享的理念,这,绝对不是Windows可以给你的.在ubuntu中文论坛里,你可以学习到很多关于ubuntu的知识,解决你在使用ubuntu过程中可能会遇到的很多难题.关于ubuntu的安装,你也可以请查阅“初学者园地”的帖子,尤其是那几个置顶帖.好了,如果你拥有了linux环境,下面就开始我们体验lammps的历程.到这里下载lammps,建议你下载LAMMPSupgrade.需要说明的是,lammps更新很快,几乎每天都有源代码的修改.所以,你有必要经常关注lammps官方网页.下载之后,你会得到一个*.tar.gz的压缩文件包,在linux的终端,用以下的命令解压.gunziplammps*.tar.gztarxvflammps*.tar之后,你会得到一个名为lammps-*的文件夹(注意,这里的*是通配符).最新版本的lammps是用C++写的,编译之前,你的linux系统中需要有一个编译器.抱歉地说,我忘记ubuntu是否自带这个编译器了,如果没有的话,用sudoapt-getinstallbuild-essential这个命令安装,这需要你的系统管理员帐户和密码.下面说ubuntu下编译单机版的lammps的过程(并行的编译我还没去学习,如果需要,建议你查阅这个帖子----Byhooge.lu).补充说明一点:~lammps/src/MAKE目录下的makefile.serial首行注释为“#serial=RedHatLinuxbox,icc,noMPI,noFFTs”这表示默认的C++编译器为Intel的icc,如果你按照前述安装了build-essential,需要你将该文件中以下几行中出现的两个icc改为gcc然后保存,再进行编译.CC=iccCCFLAGS=-O-I../STUBS-DFFT_NONEDEPFLAGS=-MLINK=iccLINKFLAGS=-O-L../STUBSUSRLIB=-lmpiSYSLIB=-lstdc++ARCHIVE=arARFLAGS=-rcSIZE=size首先到~lammps/src/STUBS目录下,输入make,回车.然后返回到~lammps/src/目录下,输入makeserial,回车.好了,现在你会看到屏幕上的字幕流,表示lammps正在被编译.喝口茶,等会儿,剩下的事情ubuntu会帮你搞定.如果成功编译,在~lammps/src/目录下,会生成了一个名为lmp_serial的可执行文件,计