【转载】我学习lammps的过程与经验
(2018-11-28 17:22:13)分类: 科研 |
现在使用lammps进行分子动力学模拟的同仁越来越多了,我学习lammps快1年了,现在把自己的一些学习感受与大家分享一下,希望对大家能有一些帮助。
从去年9月份开始学习lammps到现在已经快1年了,可以说lammps给我带来了巨大的帮助,可以说是一种飞跃吧!当然从对lammps一无所知到现在的基本能使用,我是经历了一个痛苦的过程。尽管这个过程是必须的,但是在学习中我也有一些感受与大家分享,希望能对大家学习lammps有所帮助。
下面我将我的学习lammps的历程大致写一下。
我是做纳米切削过程的分子动力学模拟的,我们所在国内这个方向开展研究算是早的吧,从2000年开始就有人在做,到现在已经毕业了好几个博士了。目前还有数十个博士生在开展这个方面的研究。他们主要都是自己编程,VC+OpenGL,出了不少成果,也发了不少高水平的文章,我感觉他们真是嗷嗷厉害。
当我刚开始接触这个方向的时候,此前对分子动力学一无所知,甚至没有听说过,老板给了我一些资料,其中就包括《分子模拟—从算法到应用》这本我的入门教材,虽然看起来很生涩,虽然看了好多遍,虽然看得一知半解,但是好歹对分子动力学有一个大致的了解。我感觉这本书为我以后学习lammps打下了基础。我有几个厉害的师兄,他们都是自己编程,并且也出了成果。但是我一点编程基础都没有,所以当他们把源程序给我的时候,我心里更多的是茫然和压力。虽然师兄们不厌其烦地给我讲解程序结构,分子动力学原理,虽然我也尝试着学习VC,看懂源程序,但是一学期过去了我毫无进展,——几十万行的代码,即使你有编程基础,看懂也会很费劲,更何况我这编程白痴?
于是在师兄们的建议下,我开上上网寻找一些分子动力学资料,特别是软件资料。在暑假前我找到了lammps,当然同时还有很多其他的软件,他们都是开源的。当时我的困难有两个:一是我该选择哪种软件?因为基本上都是英文的,我不可能每个软件大致去学习、了解一遍;二是我选择的这个软件能否实现我要做的切削过程?带着这两个疑问,我查看了一些资料,最后决定选择lammps试试看。
开始我在百度上搜到了lammps的主页,上去云里雾里地浏览了一番,重点看了官网上的图片,发现有几个图片和我做的工件很像,能做固体的材料。这也增加了我的信心。然后我大致看了看lammps的手册,发现里面有morse势、EAM势这两种我们师兄用到过的势函数。接着我对照例子看了看,信心也上来了,觉得lammps能行。
但是我还是不敢确定,于是我就抱着试试看的态度给作者写了一封邮件,附上了别人做的分子动力学模拟切削的图片,问他能不能做我要的东西。结果Steven回答:No
problem!哈哈,于是9月初我就开始了我的lammps学习之路。
首先一个难题就是安装lammps。此前我对linux系统一点都不熟悉,就是知道寝室一个同学装过redhat。于是我先后下载了redhat,中华镭,红旗桌面,Suse,ubuntu,等等,反正就是一个焦头烂额啊!这个过程就省去不写了。
接着就是安装lammps了。现在网上有很多安装lammps的步骤,都是最近才出来的。我当时安装的时候是没有搜到。没办法,只能看着手册一步一步做了。当时就有材料研盟这个QQ群,里面有很多高手用过lammps,在他们的指导之下我终于也安装上了lammps,生成了lmp_serial这个可执行文件。
我第一件事就是运行一下例子爽爽!看着屏幕上快速闪过的字符,心里别提有多高兴了!
接下来就是开始啃手册了。我的感觉是要想使用lammps,必须下狠心来攻克lammps手册!我依然清晰地记得,从2006年9月份到2006年10月份,我几乎花了一个月的时间在学习手册。每天开着金山词霸,盯着屏幕,脑子里就是lammps,茶饭不思,睡觉不香。每天的工作就是装系统,写in文件,运行,装软件。这个过程也省略不写了。我想提的就是显示分子动力学图像这个,刚开始花了几天把xmovie琢磨明白了,看到屏幕上能出现图像,高兴坏了。但是xmovie只能显示二维的,现在什么年代了,必须得显示三维的。于是我就看pizzy,里面有显示三维的工具。但是不论我怎么试,那个OpenGl始终装不上去。两个星期过去了,还是显示不了三维的。这个时候我已经把切削模型建立出来了,能够显示二维的切削过程。但是我还是感到很沮丧,都想着放弃了。当时给自己说,到十一前如果不能显示三维,就不做了。马上就出了转机,我师兄以前安装过VMD,他建议我看看这个能不能显示。于是我又是一阵找,找到了vmd的官网,学习手册,不断地调试,终于两天后能显示三维了!
以上就是我学习和使用lammps的一个过程。我觉得有几点需要注意:
1。如果你对lammps是否可以做你的东西感到不确定,你可以给作者写信问一下。作者是个好人,一般都会回复你的!至少我的信他全回了。
2。lammps对linux系统没有特别的要求,只有有g++都行。我用过redhat,suse,ubuntu等,这些系统都能满足需要。可能就是一些linux系统对新硬件支持不够。我目前使用的是ubuntu,它对新硬件支持不错。
3。确定使用lammps后,就要对他毫不怀疑,不能自己动摇。因为在学习lammps的过程中你会遇到很多很多困难,但是坚持就是胜利,相信我!
4。开始自己做东西之前必须得啃掉手册。可以先通读一遍,然后就自己感兴趣的内容细细琢磨一遍。接着就是学习命令了,特别是对那些重点的命令,就得一个一个字地看,弄清楚这个命令中每个符号的含义。否则你自己编写in文件的时候还得花费时间回头看这些命令的用法。我建议先把例子看懂,结合例子来学习手册和命令。
5。多和别人讨论,也许别人一句话就能让你产生灵感。学习lammps需要交流。lammps交流群号:37468072
ok,先写这么些,如果大家有什么需要交流的话可以联系我:email:zhjj505#163.com QQ:12886248
单位:哈尔滨工业大学精密工程研究所 http://cpe.hit.edu.cn/bbs
下图是我使用lammps做的纳米切削过程的分子动力学图片,供大家参考。
1。如果你对lammps是否可以做你的东西感到不确定,你可以给作者写信问一下。作者是个好人,一般都会回复你的!至少我的信他全回了。
2。lammps对linux系统没有特别的要求,只有有g++都行。我用过redhat,suse,ubuntu等,这些系统都能满足需要。可能就是一些linux系统对新硬件支持不够。我目前使用的是ubuntu,它对新硬件支持不错。
3。确定使用lammps后,就要对他毫不怀疑,不能自己动摇。因为在学习lammps的过程中你会遇到很多很多困难,但是坚持就是胜利,相信我!
4。开始自己做东西之前必须得啃掉手册。可以先通读一遍,然后就自己感兴趣的内容细细琢磨一遍。接着就是学习命令了,特别是对那些重点的命令,就得一个一个字地看,弄清楚这个命令中每个符号的含义。否则你自己编写in文件的时候还得花费时间回头看这些命令的用法。我建议先把例子看懂,结合例子来学习手册和命令。
5。多和别人讨论,也许别人一句话就能让你产生灵感。学习lammps需要交流。lammps交流群号:37468072
ok,先写这么些,如果大家有什么需要交流的话可以联系我:email:zhjj505#163.com QQ:12886248
单位:哈尔滨工业大学精密工程研究所