搜档网
当前位置:搜档网 › lammps学习指南

lammps学习指南

lammps学习指南
lammps学习指南

温馨提示:

(1)点击标题可直接到相关的“章节”。

(2)为避免混淆,上面的各“章”,在本文中用“步骤2”、“步骤5”这样的词代指;而文中其它地方出现的“章节”是指lammps手册中的章节。

(3)文中跟某些名词相关的网页已加注超链接,直接点击可浏览该页面以获得更详尽的信息。

0. 写在最开始的话

从2007年5月初开始接触和学习lammps,时至今日,依然对lammps存有很多疑惑。如同一个刚入门的工匠面对着一台功能强大的复杂机器,不知所措。虽然还有好多好多的东西要学习,但是也已经了解了一些最最基本的东西了。我可以去帮助那些刚刚入门的人,正如我刚刚开始学习lammps时诸位热心网友对我的帮助。现在,我写一写自己知道的东西,希望对lammps的新手有所帮助,不当之处,真诚地希望各位读者多多指正。

我写的这点儿东西,使用者仅限于使用lammps的新手,而且里面只讲到了ubuntu下编译lammps的单机版,没有涉及并行版的编译。我希望这个“指南”会帮他们更快地了解和学习lammps。如果你已经在使用lammps了,我觉得这个“指南”是不会对你有什么帮助的。不过,对于高手来说,如果你有时间,我还是希望你能看完这篇,因为我接触lammps和MD的时间都不长,我怕我的某些错误会误导新手。所以,希望大家一起努力,完善这个指南。

对这个“指南”有任何的建议,请联系我,联系方式如下:

QQ: 365449075

Email: wfc@https://www.sodocs.net/doc/5f12311874.html,

另外,我只把这篇文章放在这个由学校提供的个人网页空间。之前QQ空间的那篇文章,因为对其内容改动较大,故我已将其删除。我并不反对转载,(先自我陶醉一下下,可是会有吗?呵呵)但是转载之前,请注意:

(1)文章中的一些表述我尚不肯定正确与否。所以转载之前,请你负责任地认真读完这篇文章并确认你是否认可我的表述。如果发现错误,请及时联系我,谢谢先了。

(2)我知道有些论坛的用户可以设置回复或者付出金币or积分等才能查看某些帖子,我坚决反对这篇文章被这么做。

(3)本文没有所谓的版权,完全是分享性质的。转载的时候,没有必要著上是我写的,可是我不希望有一天看到这篇指南成了另外的一个名字的原创。如果你发现文中的错误并做了修改(最好也通知我),那样我们可以算是这篇文章的共同作者。

(4)严禁本文被用作其它用途。

我还要再次重申,我不想写成像教科书一样的东西。我写这篇指南的意图也绝对不是“ 哦,你是lammps新手吧,那你按照我说的做吧。”那我岂不成了教父了?呵呵。要知道,这篇文章的作者只不过是一个3个月前才知道世上有lammps这款代码的家伙,他根本就没有完全读完和读懂lammps手册,他对MD的基本理论了解的是少之又少。我只不过是想结合我学习lammps的过程,写一下我的体会和建议,供新手参考。如果你觉得这个指南对你有用,那固然很好;但是如果你看后觉得我说的都是屁话,那也很好,你可以按照另外的思路去学习lammps,同时,你还可以按照我的联系方式大骂我一顿,我也会洗耳恭听的。

如果这篇文章真的对lammps的初学者有些许帮助,那我将感到十分的欣慰。(返回本文目录)

1. 首先确定lammps是不是适合你

可以从以下两个网页找到答案:

https://www.sodocs.net/doc/5f12311874.html,/features.html

https://www.sodocs.net/doc/5f12311874.html,/non_features.html

如果你觉得看英文很不爽,这里有一个中文翻译----By hooge.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 ->New Molecule… Browse… then Load 读入xyz 文件

Graphics ->Representation…

Create Rep新建层(VMD中对同一个Rep中所有原子的大小颜色同时控制,所以要对不同种类的原子分别设置显示效果,需要新建几个Rep)

Selections 结合Keywords和Value设置每个层中的原子。(Selected Atoms中把all删除,然后双击某个Keywords如type,然后再在Value栏里双击某个种类,之后Apply)

Draw style中Coloring Method建议选择ColorID ,然后在后面选择颜色;Drawing Method 建议选择Beads ,然后在Sphere Scale和Sphere Resolution中调整球的大小和清晰度

计算结果的数据处理在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中你所需要的绝大多数软件都可以用sudo apt-get install这个命令通过网络安装,不会有Windows里面烦死人的软件破解等等问题。一段时间之后,你就会觉得ubuntu.linux带给你的美妙的享受,它的那种自由和分享的理念,这,绝对不是Windows可以给你的。

在ubuntu中文论坛里,你可以学习到很多关于ubuntu的知识,解决你在使用ubuntu过程中可能会遇到的很多难题。关于ubuntu的安装,你也可以请查阅“初学者园地” 的帖子,尤其是那几个置顶帖。

好了,如果你拥有了linux环境,下面就开始我们体验lammps的历程。

到这里下载lammps,建议你下载LAMMPS upgrade。需要说明的是,lammps更新很快,几乎每天都有源代码的修改。所以,你有必要经常关注lammps官方网页。

下载之后,你会得到一个*.tar.gz的压缩文件包,在linux的终端,用以下的命令解压。gunzip lammps*.tar.gz

tar xvf lammps*.tar

之后,你会得到一个名为lammps-*的文件夹(注意,这里的*是通配符)。最新版本的lammps 是用C++写的,编译之前,你的linux系统中需要有一个编译器。抱歉地说,我忘记ubuntu 是否自带这个编译器了,如果没有的话,用sudo apt-get install build-essential这个命令安装,这需要你的系统管理员帐户和密码。

下面说ubuntu下编译单机版的lammps的过程(并行的编译我还没去学习,如果需要,建议你查阅这个帖子----By hooge.lu)。

首先到~lammps/src/STUBS目录下,输入make,回车。

然后返回到~lammps/src/目录下,输入make serial,回车。

好了,现在你会看到屏幕上的字幕流,表示lammps正在被编译。喝口茶,等会儿,剩下的事情ubuntu会帮你搞定。如果成功编译,在~lammps/src/目录下,会生成了一个名为lmp_serial的可执行文件,计算,就是靠它了。(返回本文目录)

3. 如何使用lammps进行计算

先简要地说说lammps的运行过程:

lammps本身没有图形界面,模拟计算的过程都是在linux终端执行。计算的时候,需要用户写一个输入文件(input script),可能还需要一个data文件,至于如何写输入文件,我们稍后讨论。

假设你已经写好了这个输入文件,文件名为https://www.sodocs.net/doc/5f12311874.html,,把这个https://www.sodocs.net/doc/5f12311874.html,文件(如果有data文件的话,连同data文件)和在步骤2中编译得到的lmp_serial放在同一个目录下,如~/Desktop/compute/。从终端进入到这个目录,所需要的命令是:cd ~/Desktop/compute然后,在终端输入./lmp_serial < https://www.sodocs.net/doc/5f12311874.html,回车。你就会发现lammps开始计算了。就这么简单。lammps的输出文件主要可以分为三种:一是https://www.sodocs.net/doc/5f12311874.html,mmps,这里面记录了整个计算过程屏幕上显示的所有信息,更详细的请参照thermo、thermo_modify等命令;另一类是与dump命令有关的输出文件,可以输出应力、能量、原子位置、速度等等信息;第三种是restart文

件,具体的信息请查阅write_restart命令。

lammps新手一般会很快注意到下载的lammps解压之后的一个名为examples的子目录。面对这里面的in文件中一行行看似无序的单词和数字的组合,如何写in文件,恐怕是新手们的最大疑问。很多网友在一开始学习lammps的时候,总是问:“怎么写in文件?”,“examples 目录中in文件里面的那些命令和数字是什么意思呀?”等等这些问题,不是人家不回答,而是实在不好回答,无法回答。其实你想想,只要你会写某个MD模拟过程的in文件了,那lammps就完全可以计算了,那剩下的工作仅仅是数据的后处理。如何写in文件这要你首先看懂lammps手册!!!下一章,我们就讲讲lammps的manual.pdf的结构和一些对阅读这个手册的建议。(返回本文目录)

4. 关于manual.pdf(20/JUL/07)的阅读建议

该manual.pdf(在lammps-*/doc目录中)有454页之多,如果你要完全看完,是要话一段时间和精力的。我刚开始学习的时候,在群里问学习lammps的方法,有网友说:“RTFM !”我很好奇这四个字母是什么意思,他解释说:“Read The Fucking Manual !”呵呵,看来,读manual很痛苦这并不是个别现象,如果你一开始看manual觉得很郁闷,千万不要灰心放弃,一定要坚持下去。

再者说,对于学习任何事物的新手,给了400多页的资料,也绝对不应该一开始就从第一页一个字一个字地读到最后一页。要学会把厚书读薄,再把薄书读厚。我大体上看了一下manual.pdf,里面所有的内容在lammps的官网上都可以找到。我个人很不欣赏manual.pdf 中后面的命令编排方式,而喜欢看lammps官方网页,一目了然,控制自如,我个人觉得看manual.pdf会增加我的痛苦,呵呵。

上一段提到的“把厚手册读薄,再把薄手册读厚。”通过下面我的建议来体会这句话的含义。(注意,仅仅是建议)

(0)理解一点分子动力学的基本理论

这段话是写给那些跟我一样的那些刚接触lammps的时刻也是刚接触MD的时刻的新手的,而大多数人应该不存在这个问题。MD作为一个庞大的理论体系,你不可能短时间内就理解的很透彻,但是,像“MD基本方程、积分算法、周期性边界条件、系综、驰豫” 等等这些名词你应该大体知道是什么意思吧,要不然的话,看lammps手册的痛苦将无法用语言形容。我推荐给这样的新手一篇文献,直接点击或右键选择“目标另存为”:

文玉华,朱如曾,周富信,王崇愚,分子动力学模拟的主要技术,力学进展,1(2003),P.65-73. 当然,我相信你也应该清楚,如果你要用lammps做MD的话,从上面的那篇文献所学到的知识远远不够,请继续查阅和学习大量的MD书籍文献,最好是看英文的。说实话,我们不得不承认大部分中文文献没什么意思。

(1)通览一遍手册

大体上翻翻muanual.pdf,你就会发现,除了两页的目录,前面95页是叫做Documentation 的一部分;后面的是叫做Comannds的一部分,有357页之多。

Documentation部分共分为10章。我们来分解一下这95页的内容。

前面的19页,也就是第一章Introduction和第二章Getting started。部分内容步骤1和步骤2中都有所涉及了,但愿我在前面两个步骤中的讲解多少能帮助你提高这部分的阅读速度。但是,毕竟也只是部分内容,没有涉及到的部分里面也有一些很重要的内容,但是我个人感觉可能有些也用不到,可以有选择地看一下。

第三章Comannds是第22页到第27页共6页的内容,建议你快速扫一眼之后就去看下一章吧。为了避免步骤4中的内容太多了,我们将在步骤5中单独来详细讨论这一章。

第四章How-to discussions,里面的这14小节,建议你仔细看一下,对于不同的问题,有几

个小节讲述的内容还是很重要的。其实这部分在manual.pdf中也就12页。

针对第五章(3页)提到的Example problem,顺便说一下,在步骤2中你解压获得的lammps-*的文件夹,里面有个examples子目录。这个子目录里面是lammps提供的十几个例子,从各个例子中的in文件,你可以大体了解一下in文件的结构。记得以前我跟一个师弟说,如果你看着in文件,能够从脑海里想象出来这个in文件运行之后的结果,并且,你想象的结果符合真实运行后的结果的话,那说明这个in文件涉及的相关命令和参数你是真的理解了。第6、7、8三章的内容,分别是2页、5页、12页,根据你要模拟的系统中的具体问题,有选择性的看一下。

第9章Errors,共33页。这部分你根本没有必要现在看它。运行lammps时可能遇到报错,你可以到这里查,不过呢,不要奢望在这里查到很好的解决问题的办法。

第10章,就3页,貌似没什么东西,呵呵。

Commands这部分呢,是详细的讲述了lammps的各个命令的功能、语法格式、各参数的意义、使用注意事项、默认值等等内容。该部分关于各个命令的详细介绍,我建议你结合manual.pdf 的3.3和3.4两节来体会它,顺便可以了解in文件的结构。本文中的步骤5也会帮助你阅读这部分的。每个命令的功能在第一段话中就已经说了个大概,既然是先通览一遍,那么只需要先看这一段就行了,后面的相关参数的设置讲解,暂时先不要理它。

整个这个通览的过程不会花太长的时间,2-3天应该可以完成。之后,你对lammps应该有了一个大致的了解(也就是把厚手册读薄),这个了解应该比你最最开始看features.html和non_features.html两个网页要深刻得多,我的意思是你现在应该大体上知道你的模拟过程会用到哪些命令了,如果不能的话,我建议你再重复这个过程,同时结合examples中的算例以及下面的两个网页:https://www.sodocs.net/doc/5f12311874.html,/pictures.html,https://www.sodocs.net/doc/5f12311874.html,/movies.html。

(2)仔细阅读你要进行的模拟所需要的命令

lammps功能强大,可以做各个方面的分子动力学模拟,但是针对一个具体的MD模拟过程,可能只需要用到其中的部分命令。

通过对手册3.3和3.4节的学习,已经对手册Commands这部分的通览,你应该能知道哪些命令在你的这次模拟中是有用的。然后,你就可以逐字地仔细阅读那些命令了,遇到MD 原理相关的而你不懂的,要认真去查阅相关资料弄懂(把薄手册读厚)。这个时候,可不要再抱有任何通览阶段的心态,如果你错过或是误解了一句话,都可能对你的计算带来难以估计的影响。因为对我们这些做计算机模拟的人来说,lammps就是一个黑盒子,你给它in文件,lammps输出各种数据,如果你对用到的命令都不熟悉,如何分析模拟结果的合理与否呢?不过也不要紧张,下一章再简单讲一些Commands这部分,以帮助你完成这个过程。(返回本文目录)

5. Comannds 的简单讲解

英文水平不高,以下的东西我大概翻译了一下主要意思,有的忽略没翻译,所以你要认真阅读手册中的第三章。以下章节命名规则按照lammps手册。

https://www.sodocs.net/doc/5f12311874.html,mands

这一章描述了lammps输入文件的格式和在定义lammps模拟所需要的命令。

3.1 LAMMPS input scri p t

我们用lammps做分子动力学模拟,需要一个输入文件。lammps在执行计算的时候,从这个文本文件中逐行读入命令。大多数情况,lammps输入文件中各个命令的顺序并不是很重要。但是你要注意以下几点:

(1)lammps并不是将你的输入文件全部读入之后才开始进行计算的,或者说,每条命令在它

被读入之后就会起作用了。注意,下面两组命令的执行效果是不相同的。

timestep 0.5

run 100

run 100

run 100

timestep 0.5

run 100

(2)有些命令只有在另一些命令已经被定义的情况下才有效。例如如果你要设定一组原子的温度,那么用group命令定义哪些原子属于这个组才行。

(3)还有一种情况就是:命令B要用到命A设置的一些数值,这样你也不能颠倒这两个命令的顺序。

每个命令的详细介绍中的Restrictions部分会说明要使用该命令定义的时候哪些命令必须要被预先定义。

如果你的输入文件书写的格式有问题,lammps在执行的时候会提示ERROR或者WARNING ,出现类似信息时,你可以到手册的第九章中查询原因。

3.2 Parsing rules

输入文件中的每一非空行都被认为是一条命令。lammps中命令的书写是对大小写敏感的,不过一般的命令和参数都是小写的,大写字母用于极少数的情况。

(1)命令行后的&表示这一行跟下一行是同一条命令。这一点跟FORTRAN很像。

(2)命令行最开始的# 表示这一行在执行过程中被忽略,你可以用它来写注释。

(3) $ 是跟声明变量有关系的,我暂时还没用到过,具体请参阅variable命令的详细介绍。

(4)命令行被tabs, spaces间隔成各个“words”,注意这里的“words”可以包含字母、数字、下划线、或标点符号。

(5)一行中第一个词是命令名,后续的词是相关的参数。

(6)双引号内的文字空格被整体地当作一个参数,其中的# 或$ 就没有前面说的作用了。

3.3 Input script structure

lammps的输入文件一般分为4个部分Initialization,Atom definition,Settings,Run a simulation

后面的两个部分可以按照需要多次重复。Remember that almost all the commands need only be used if a non-default value is desired.

(1)Initialization

在你的模拟体系定义之前,一些参数必须要被设置。相关的命令有:units, dimension, newton, processors, boundary, atom_style, atom_modify。

units: 选择单位系统,lammps提供了lj、real、metal三种单位系统

dimension: 2d模拟还是3d模拟,默认是3d

boundary: 边界条件:周期性边界or自由边界

atom_style: 定义你的模拟体系中的原子属性,注意这个style要区分后面设置力场参数时命令里提到的atom type

还有,这些命令告诉lammps在你的模拟中使用何种力场:pair_style, bond_style, angle_style, dihedral_style, improper_style。

(2)Atom definition

lammps提供3种方式定义原子:

①通过read_data或read_restart命令从data或restart文件读入,这些文件可以包含分子拓

扑结构信息。

②按照晶格的方式创建原子(不包含分子拓扑信息),你会用到这几个命令:lattice, region, create_box, create_atoms。

③已经设置好的原子可以用replicate命令复制以生成一个更大规模的模拟体系。

(3)Settings

原子和分子的拓扑信息定义好后,你要制定一系列的设置:力场系数、模拟参数、输出选项等等。

力场系数可以通过这些命令定义:pair_coeff,bond_coeff, angle_coeff, dihedral_coeff, improper_coeff, kspace_style, dielectric, special_bonds。注意,其实力场系数也可以在data 文件中制定,详见read_data命令介绍。

各种模拟参数由这些命令设置:neighbor, neigh_modify, group,timestep, reset_timestep, run_style, min_style, min_modify。

我觉得fix命令是lammps中很重要的一个命令,它包括很多子命令,可以施加一系列的边界条件、时间积分、诊断选项等等。

模拟过程中通过下面的命令制定lammps进行各种计算:compute, compute_modify, variable。输出选项由thermo, dump, restart命令设置。

(4)Run a simulation

使用run命令开始一个分子动力学模拟,用minimize命令来实施能量最小化(molecular statics),使用temper命令来进行parallel tempering(replica-exchange) simulation。

3.4 Commands listed by category

这一节分门别类地列出了lammps的所有命令。注意有些命令的有些选项是特定的lammps package的一部分,也就是说只有在编译lammps的时候包括了这些packages,这些命令才能被使用。默认情况下编译lammps并不包括所有的packages。这些依赖关系在相关命令的详细介绍中Restrictions部分中列出了。

Initialization: atom_modify, atom_style, boundary, dimension, newton, processors, units

Atom definition: create_atoms, create_box, lattice, read_data, read_restart, region, replicate Force fields:angle_coeff, angle_style, bond_coeff, bond_style, dielectric, dihedral_coeff, dihedral_style, improper_coeff, improper_style, kspace_modify, kspace_style, pair_coeff, pair_modify, pair_style, pair_write, special_bonds

Settings: communicate, dipole, group, mass, min_modify, min_style, neigh_modify, neighbor, reset_timestep, run_style, set, shape, timestep, velocity

Fixes: fix, fix_modify, unfix

Computes: compute, compute_modify, uncompute

Output:dump, dump_modify, restart, thermo, thermo_modify, thermo_style, undump, write_restart

Actions: delete_atoms, delete_bonds, displace_atoms, displace_box, minimize, run, temper Miscellaneous: clear, echo, if, include, jump, label, log, next, print, shell, variable (返回本文目录)

6. 解决问题的途径

关于使用lammps可能会遇到的一些问题,下面是我遇到解决疑难的一些途径,与大家共享,欢迎补充。

可以从这个网页看怎么加入lammps的邮件组,有问题可以发邮件提问。

lammps的主要作者:Steve Plimpton,他的email是sjplimp@https://www.sodocs.net/doc/5f12311874.html,

材料科学论坛-分子动力学模拟版不时也会有人讨论lammps。

lammps分子动力学模拟学习互助交流,这是一个关于lammps的专门论坛,刚开张没多久,现在人气还不是很旺,希望大家多多去交流lammps学习的心得。

另外,我知道有两个和lammps相关的QQ群:

37468072----lammps分子动力学

19097619----材料研盟I分子动力学(这个群人数已达上限,不太好加入)(返回本文目录)

7. 写在最后面的话

以上好多内容直接引自lammps官方网页,那就按照它的规则,在这里再次标注出其网址:https://www.sodocs.net/doc/5f12311874.html,/

提醒:感谢lammps的作者们为我们无私的奉献了这么一款很好的代码,如果你要发表的论文用到了lammps做计算,请认真阅读下面的内容。

What if I write a paper using LAMMPS results?

Please cite the paper that describes LAMMPS and include a pointer to the LAMMPS WWW Site . Details are discussed in this section of the LAMMPS documentation.

If you send me a citation for your paper, we'll include it on the Publications page of the LAMMPS WWW Site . Ditto for a picture or movie for the Images page.

关于步骤5中lammps命令的讲解,限于本人的水平,不可能讲的很详细。怎么说呢,前几天在群中讨论呢,打算以后组织一下全部翻译lammps的手册,可是我这几天写这个“指南”,心里又有了一些感触,我不是很赞成翻译lammps手册了,不是我偷懒或是逃避什么,原因如下:翻译lammps手册,看似新手用起来很方便,其实只是表面现象,这培养了人的惰性。我个人觉得,不管你英文水平怎么样,你都是应该去看英文手册的,lammps手册中的英文基本没有太复杂的句型,可能有些比较专业的名词你没见过,但是我想英文水平高一点的人看手册也要不停地查字典的。还有就是,翻译了手册,你相信它的准确性吗?我在大四上学期是学习Fluent的,当时清洁能源网是组织人把Fluent的帮助文档翻译完了的。的确,它帮助我很快的学习了Fluent的基本应用。但是我不敢100%的相信他们的翻译,我看的时候也是一边看中文一边对照英文的,既然这样,翻译的效果就大打折扣了。如果你的英文水平不好,看看lammps手册,也算提高一下阅读能力吧,毕竟我们做模拟的以后要看的文献绝大多数都是英文的,而那些文献,一般是不会有中文翻译的。

上面所说的我不赞成lammps手册的翻译,并不是说我以后就不为lammps的学习交流做什么了。我的意思是,没有必要逐字翻译的。对于某些关键命令的讲解,还是要翻译的。还有就是针对各个命令,写一些使用这个命令的体会,如:可能会遇到什么问题,是怎么解决的,这个命令相关的MD原理的文献推荐等等。我觉得把功夫下在这方面会比逐字翻译lammps 手册要好些,是吗?呵呵,总之,通过大家的交流来更有效地提到大家对lammps的理解和应用能力是我们共同的目的,大家多多讨论。

整篇“指南”到目前为止,只是写了一个大体的框架,以后我会按照我的思路,结合我继续学习lammps的体会,继续丰富这篇“指南”的,尤其是好好写好步骤5,谢谢大家的关注。

我想我就在这里结束。

lammps实例(3)

Project #1 硅的晶格常数和体弹模量的计算 一、平衡晶格常数和内聚能 自然条件下硅为金刚石结构(dc )。计算模拟时,我们可以假定它为各种结构,f cc, bcc, sc, dc. 可以预测,模拟的dc 结构的硅的体系能量最低,也即最稳定。下面我们将运用LAMMPS 来对硅的各种结构进行模拟。 定义晶格能量为Φ, 数密度为 ρ: pot E N Φ= N V ρ= 其中E pot 为势能, N 为体系总原子数,V 为体系的体积。选取 Stillinger-Weber (SW),以下面命令执行 lammps 运算: 其中,lmp_serial 为 lammps 命令;”<” 符号为读取符;in.Silicon 为输入文件,里面包含运算所需要的各种数据和命令;-log 指定输出文件的名称。 可以看到屏幕上显示出lammps 运行的信息。这个计算量很小,所以很快就结束。接下来以如下命令来查看计算得到的数据: grep 是linux 中一个很重要的命令,用来搜索文本,读取匹配的行并打印出来。这里是搜索 dc.log 文件,将 @ 开头的行打印出来。如下: 晶格参数为5.4305埃,数密度为0.0499540303,每个原子的能量为-4.336599609eV.

下面具体来看刚才给的输入文件,in.Silicon . dc.log 文件中有原子总数的信息, 每个金刚石晶胞中有8个原子,383216?=,所以是216个原子。如下给出各种结构下的体系的原子数:

晶体结构类型 晶胞中的原子数 总原子数 简单立方SC 1 27 体心立方BCC 2 54 面心立方FCC 4 108 金刚石DC 8 216 表1. 不同晶体结构中的原子数 下图是计算模拟得出的各种结构下的数密度与每个原子能量的关系图。 横坐标为数密度, 以金刚石为例,ρ= 8/5.4315^3=0.049926,也即我们直接通过 grep 命令得到的第二项值;纵坐标为每个原子的能量,为第三项值。 金刚石之外,还需计算其他结构。只需对 in.Silicon 做稍微改动: 首先,将in.Silicon 复制成in.fcc : 然后编辑 in. fcc 改动如下几项: 然后如下命令执行: 相应的,如下命令查看log 文件中的数据:

lammps学习friction程序电子教案

#文件结构 #Initialization #Atom definition #Settings #Run a simulation #注意本程序由于默认的单位体制是LJ # 2d friction simulation #初始化 dimension 2 #维数 boundary p s p #边界条件 boundary x y z x,y,z =porsorform, one or two letters p is periodic f is non-periodic and fixed s is non-periodic and shrink-wrapped m is non-periodic and shrink-wrapped with a minimum value s为收缩边界(自由边界),用于有限尺寸的维度,随原子移动而改变,原子不会跑出边界;f为固定边界,同样用于有限尺寸的维度,模拟时原子可能跑出边界,跑出则程序终止;p为周期边界,原子可以周期穿过盒子边界。m为柔性边界,允许边界上的粒子有微小移动以反映内层原子的作用力施加到它们身上的情况。 atom_style atomic #atomic原子模式(用于粗粒液体,固体和金属的模拟)。Define what style of atoms to use in a simulation 定义模拟体系中的原子属性。用比需要的范围大的类型。 neighbor 0.3 bin #建近邻表参数(r+rc),rc为力的截断距离,缓冲距离r=0.3sigma(σ),bin表示为近邻表类型。所有截止距离等于它的力的截断距离加上缓冲距离的原子对都被存储在列表里。其值的选择取决于单位制。 Syntax:neighbor skin style This command sets parameters that affect the building of pairwise neighbor lists. skin = extra distance beyond force cutoff (distance units) style =bin or nsq or multi neigh_modify delay 5 #间隔5载荷步重新形成近邻表 # create geometry #创建初始几何构形 lattice hex 0.9 #定义晶格类型(二维hex)和Lennard-Jones折算密度0.9 region box block 0 50 0 22 -0.25 0.25 #定义模拟盒子(区域)的大小,在空间x[0,50],y[0,22],z[-0.25,0.25]的范围内创建区

ubuntu下并行安装lammps教程(需联网)超简单 亲测成功,适合小白

ubuntu下并行安装lammps教程(需联网)超简单亲测成功,适合小白 写在前面的话:手册很重要,一定要看手册!!!本人小白一个,没用过任何linux系统,前天才安装了ubuntu,linux系统和win系统有很大的区别,很多操作需要在终端中进行,因此想要安装lammps,最好先熟悉一下linux的基本操作,然后根据手册进行编译安装。安装过程中我走了很多弯路,下载lammps以后就先看了看手册,关于安装那一部分写的很详细,但由于对linux基本操作都不熟悉,以至于根本看不懂,没办法,只能按照网上的教程安装,但装了一天也没成功,最后舍弃所有教程,还是自己根据手册安装成功的。熟悉了linux的基本操作以后就能发现,如何安装lammps手册上其实说的很清楚了,很多教程都走了弯路,进行了很多不必要的步骤,特别是对ubuntu系统的用户来说。这个教程意在帮助ubuntu和lammps小白少走弯路,我尽可能详细地列出了安装过程中的每一个步骤,并对步骤进行了说明,希望能帮助小白们在了解linux基本操作的同时完成lammps的安装。但最好还是根据手册自行安装,因为手册上说的真的很详细。由于我也是小白,加上写作水平有限,难免有纰漏,有不足之处,还请见谅。 lqjunzi 2016.6.2 首先安装ubuntu系统,不会的自行查看相关教程 1.进入安装好的ubuntu系统,先打开software updater(桌面左下角有个类似Windows开始菜单的图表,点击,搜索updater)更新系统,不

是必要的,但不更新可能会出现问题,更新比较慢,要联网下载很多东西 2.打开终端(以下在终端中所需输入指令均高亮标出),系统默认是没有root密码的,但安装lammps时需要在root账户下进行,创建初始root密码的命令如下: lqjunzi@lqjunzi:~$ sudo passwd root #输入sudo passwd root按回车,可以鼠标复制粘贴,但ctrl+c不管用 [sudo] lqjunzi 的密码: #输入密码,回车(输完指令按回车执行,后面省略),输入过程不显示 输入新的 UNIX 密码: #再次输入密码,输入过程不显示 重新输入新的 UNIX 密码: #再次输入密码,输入过程不显示passwd:已成功更新密码 #提示root密码更新成功 lqjunzi@lqjunzi:~$ su #输入su,回车 Password: #输入密码,回车 root@lqjunzi:/home/lqjunzi# #可以看到最前面的用户名已经由lqjunzi变成啦root,而后面的~$也变成了#,#是在root下操作的标志 3.下载lammps安装包,下载后的安装包默认 在/home/lqjunzi/Downloads目录下,这里的lqjunzi是安装系统时的用户名,习惯的将下载后的lammps-stable.tar.gz复制至/home/lqjunzi/sw 目录下(完全可以不复制,就在Downloads下操作,只是个人习惯,如不移动则后面操作目录相应改变) root@lqjunzi:/home/lqjunzi# mkdir sw #在/home/lqjunzi目录下建立sw文件夹 root@lqjunzi:/home/lqjunzi# cd Downloads #进入 Downloads文件夹

lammps实例(4)

Project #2 金属中的点缺陷:空位和间隙原子 一、空位 从晶体中移去一个原子,即可形成空位。本例将运用 LAMMPS 计算空位形成能, E v. LAMMPS 输入文件为in.vacancy 1) 在 fcc 结构的完整Cu晶体中引入一个空位 沿<100>方向构造一个 4 ×N×N×N 的晶体。N为input 文件中lattice命令指定的个方向上的晶胞重复单元数。 2) 弛豫 当一个原子从晶体中移走之后,周围的原子将相应地调整位置以降低体系势能。为得到稳定的构型,需要对体系进行弛豫,relaxation. LAMMPS提供两种能量最小化方式,cg 和 sd。本例中选用 sd 方式进行能量最小化。 如下是输入文件,in.vacancy:

3) 运行lammps 4) 计算空位形成能 空位浓度由下式给出: [n ] = exp( ? F v / k B T ). 其中 F v = E v ? TS v 为形成一个空位所需要的Helmholtz 自由能. 忽略熵S v , 空位浓度公式简化为 [n ] = exp( ?E v / k B T ). 设 E 1 为完整晶体能量,含N 个原子;E 2 为弛豫后的晶体能量,含N – 1个原子。空位形成能 E v 为: 211v N E E E N -≡- 或 ()21v coh E E N E ≡--, 其中 E coh = E 1 / N , 为完整晶体的内聚能。 本例中以EAM 模型计算4×(20×20×20)=32000个原子的体系,得到空位形成能E v ~ 1.26 eV ,文献中的实验值为~1.28 eV ,符合较好。 另由上式计算得到,300K 温度下的空位浓度为~ 7.59×10-22 ,1350 K (T m ) 时的空位浓度~ 2.2×10-5(文献中的实验值为~2×10-4 )。换算时注意(1 eV/k B = 1.1604×10?4 K) 图1. 空位处于4×(6×6×6) 的 FCC 晶体中心,106c a =,206c a =,306c a =. 颜色依据原子势能标注。

lammps实例(2)

Project #4 表面与界面能 铜的表面能 当物体形成表面时,表面上的原子键发生断裂,接近表面的几层原子不再如之前处于平衡状态,从而导致能量的升高,升高的温度便是物体的表面能。 利用LAMMPS 做出 20*20*40 fcc 的盒子,删去边缘的原子制造出一段真空层;算出此时体系的总能量0E ,然后从中间把盒子切成两半并移至足够远的距离,此时的体系总能量为E final , 从而表面能: 02final surface E E A γ=? A 为表面的面积 (100) 面与 (111) 面 如下是输入文件in.surface_Cu_100 # LAMMPS Cu _Surface_100 units metal boundary p p p atom_style atomic lattice fcc 3.61 region box block 0 20 0 20 0 40 create_box 1 box create_atoms 1 box timestep 0.005 thermo 5 pair_style eam/alloy pair_coeff * * jin_copper_lammps.setfl Cu region boundary1 block INF INF INF INF 29.9 INF region boundary2 block INF INF INF INF INF 9.9 group boundary1 region boundary1 group boundary2 region boundary2 group boundary union boundary1 boundary2

vasp与lammps学习资料2020年

LAMMPS分子动力学模拟技术与应用课程内容 一、LAMMPS基础1分子动力学模拟入门理论——掌握lammps的in文件中各命令的意义1.1系综理论 1.2主要算法介绍 1.3积分步长的选取 1.4温度和压力控制 1.5周期性边界条件 1.6分子动力学模拟流程 二、LAMMPS入门学习2LAMMPS入门操作基础 2.1Linux命令入门基础——熟练掌握LAMMPS所用的Linux命令 2.2LAMMPS中一些安装包的介绍——为以后创建自己体系进行选择性安装 2.3LAMMPS的linux版串行和并行及GPU版编译安装——掌握LAMMPS的编译方法,针对自己体系编译可执行文件。 2.4LAMMPS的in文件结构格式、基本语法及常用命令讲解、data文件格式。2.5LAMMPS实例讲解。 实例操作:在linux系统编译安装自己的LAMMPS可执行程序。 三、LAMMPS进阶学习https://www.sodocs.net/doc/5f12311874.html,MMPS各种参数计算 3.1颗粒模拟 3.2可视化快照 3.3弹性常数模拟 3.4计算热导率 3.5计算粘度 3.6计算均方位移 3.7计算径向分布函数 3.8计算扩散系数 3.9计算能量数据 3.10Lammps常见错误及解决途径 实例操作:学员结合自己的科研方向,选择运行契合自己研究方向的例子 四、Lammps的建模4LAMMPS建模——掌握基本操作流程 4.1掌握lattice命令建立晶体模型 4.2Packmol建模语法学习及实操 4.3Material Studio建模学习及实操 4.4VMD建模学习及实操 实例操作:把上述实操模型转换成lammps的data文件 五、从examples的简单例子,到完成自己的科研课题5通过examples中的例子,理解要模拟对象的物理意义 5.1运行examples\flow到建立水分子在石墨烯片层(碳纳米管)内的流动模拟5.2运行examples\shear到石墨烯力学性质模拟 5.3运行examples\friction到金属/合金的摩擦模拟 5.4特殊结构的模拟建模(C60系列模型) 实例操作:学员探索由简单例子到自己科研课题的模拟过程 六、环氧树脂在二氧化硅表面吸附建模 (CVFF力场)6环氧树脂在二氧化硅表面吸附吸能的影响模拟过程 6.1创建构型文件 6.2建立输入脚本 6.3运行能量最小化及体系的预松弛

lammps学习指南

温馨提示: (1)点击标题可直接到相关的“章节”。 (2)为避免混淆,上面的各“章”,在本文中用“步骤2”、“步骤5”这样的词代指;而文中其它地方出现的“章节”是指lammps手册中的章节。 (3)文中跟某些名词相关的网页已加注超链接,直接点击可浏览该页面以获得更详尽的信息。 0. 写在最开始的话 从2007年5月初开始接触和学习lammps,时至今日,依然对lammps存有很多疑惑。如同一个刚入门的工匠面对着一台功能强大的复杂机器,不知所措。虽然还有好多好多的东西要学习,但是也已经了解了一些最最基本的东西了。我可以去帮助那些刚刚入门的人,正如我刚刚开始学习lammps时诸位热心网友对我的帮助。现在,我写一写自己知道的东西,希望对lammps的新手有所帮助,不当之处,真诚地希望各位读者多多指正。 我写的这点儿东西,使用者仅限于使用lammps的新手,而且里面只讲到了ubuntu下编译lammps的单机版,没有涉及并行版的编译。我希望这个“指南”会帮他们更快地了解和学习lammps。如果你已经在使用lammps了,我觉得这个“指南”是不会对你有什么帮助的。不过,对于高手来说,如果你有时间,我还是希望你能看完这篇,因为我接触lammps和MD的时间都不长,我怕我的某些错误会误导新手。所以,希望大家一起努力,完善这个指南。 对这个“指南”有任何的建议,请联系我,联系方式如下: QQ: 365449075 Email: wfc@https://www.sodocs.net/doc/5f12311874.html, 另外,我只把这篇文章放在这个由学校提供的个人网页空间。之前QQ空间的那篇文章,因为对其内容改动较大,故我已将其删除。我并不反对转载,(先自我陶醉一下下,可是会有吗?呵呵)但是转载之前,请注意: (1)文章中的一些表述我尚不肯定正确与否。所以转载之前,请你负责任地认真读完这篇文章并确认你是否认可我的表述。如果发现错误,请及时联系我,谢谢先了。 (2)我知道有些论坛的用户可以设置回复或者付出金币or积分等才能查看某些帖子,我坚决反对这篇文章被这么做。 (3)本文没有所谓的版权,完全是分享性质的。转载的时候,没有必要著上是我写的,可是我不希望有一天看到这篇指南成了另外的一个名字的原创。如果你发现文中的错误并做了修改(最好也通知我),那样我们可以算是这篇文章的共同作者。 (4)严禁本文被用作其它用途。 我还要再次重申,我不想写成像教科书一样的东西。我写这篇指南的意图也绝对不是“ 哦,你是lammps新手吧,那你按照我说的做吧。”那我岂不成了教父了?呵呵。要知道,这篇文章的作者只不过是一个3个月前才知道世上有lammps这款代码的家伙,他根本就没有完全读完和读懂lammps手册,他对MD的基本理论了解的是少之又少。我只不过是想结合我学习lammps的过程,写一下我的体会和建议,供新手参考。如果你觉得这个指南对你有用,那固然很好;但是如果你看后觉得我说的都是屁话,那也很好,你可以按照另外的思路去学习lammps,同时,你还可以按照我的联系方式大骂我一顿,我也会洗耳恭听的。 如果这篇文章真的对lammps的初学者有些许帮助,那我将感到十分的欣慰。(返回本文目录) 1. 首先确定lammps是不是适合你 可以从以下两个网页找到答案: https://www.sodocs.net/doc/5f12311874.html,/features.html

学习lammps 对in文件的一个概述性心得

写在开头: 1.尽量列举了大部分(几乎)的命令 2.带星号命令非常重要,大家在看mannual中命令的解释的时候可以重点先看带星号的 3.非斜命令是运行一个常用模拟所必备的 4.命令顺序为一个基本的脚本文件命令顺序,骨架如此 5.我主要是做金属的,所以其他方向的希望有一个借鉴作用,大同小异 6.对于初学者切不可认为in文件就是这个固定顺序,其实正常模拟过程中做平衡、以及随后的运行在某些阶段都会重复使用某一段命令,比如fix 1 …run;fix 2 …run ………,以及作循环,等等等 7.本文的目的旨在让初学者对in文件有一个总体的把握,希望对新手入门有帮助 8.括号里为这个命令的默认值,我列举的是在使用过程中比较关心的默认值 9.纯属个人学习心得,希望大家多多指点讨论 10.复制的时候希望能留下足迹,如果觉得哪里有问题,随时回来讨论!方便其他人学习! 11.对in文件通俗点的理解就像洗衣服,洗衣机就是lammps的主程序,这个in文件就是在设定怎么洗衣服 ----------------------------------Initialization基本模拟系统设置------------------------- units (lj) ** 单位系统 boundary (ppp) ** 边界条件 atom_style (atomic) ** 粒子类型 atom_modify * 粒子类型调整,,,凡是后面带一个modify的,都是对头命令的补充修改newton (on) processors dimension (3) * 维数 ------------------------------Atom definition---这一组命令主要用来构建模拟模型的--------------- lattice ** 晶格参数 region ** 选择一个区域 create_box ** 创建一个盒子 create_atoms ** 创建原子 group, ** 给原子分组 delete_atoms,** 删除某些原子 delete_bonds, displace_atoms,* 移动某些原子 replicate* 将已经构建的模型在三维重复复制放大 read_data***这个命令就是用来读取其他软件建的模型的 read_restart* 以之前运行的结果作为这次计算的初始构型 ---------------------------------------Potencial---定义粒子相互作用势------------------------------ pair_style** 势函数类型 pair_coeff,** 势函数文件名(一般这个文件放在与此in文件的同一个目录下)

lammps计算例子过程说明

[lizhao@c0106 src]$ cd [lizhao@c0106 ~]$ ls examples fftw-2.1.5 fftw-2.1.5.tar.gz hosts lammps-21Oct10 lammps.tar.gz mpich-1.2.7p1 mpich.tar.gz [lizhao@c0106 ~]$ cd examples/ [lizhao@c0106 examples]$ ls colloid crack eim ellipse friction meam micelle msst nemd peptide pour README rigid srd comb dipole ELASTIC flow indent melt min neb obstacle peri prd reax shear USER [lizhao@c0106 examples]$ cd crack [lizhao@c0106 crack]$ ls in.crack log.crack.10Sep10.linux.1 log.crack.10Sep10.linux.4 [lizhao@c0106 crack]$ [lizhao@c0106 crack]$ vi hostfile [lizhao@c0106 crack]$ ls dump.crack hostfile in.crack log.crack.10Sep10.linux.1 log.crack.10Sep10.linux.4 https://www.sodocs.net/doc/5f12311874.html,mmps [lizhao@c0106 crack]$ ll total 2544 -rw-rw-r-- 1 lizhao lizhao 2564431 Dec 16 17:48 dump.crack -rw-rw-r-- 1 lizhao lizhao 12 Dec 16 2010 hostfile -rw-rw-r-- 1 lizhao lizhao 1212 Dec 16 17:40 in.crack -rw-rw-r-- 1 lizhao lizhao 4608 Dec 16 17:40 log.crack.10Sep10.linux.1 -rw-rw-r-- 1 lizhao lizhao 4613 Dec 16 17:40 log.crack.10Sep10.linux.4 -rw-rw-r-- 1 lizhao lizhao 4677 Dec 16 17:48 https://www.sodocs.net/doc/5f12311874.html,mmps [lizhao@c0106 crack]$ cat hostfile c0105 c0106 [lizhao@c0106 crack]$ mpdallexit [lizhao@c0106 crack]$ ls dump.crack hostfile in.crack log.crack.10Sep10.linux.1 log.crack.10Sep10.linux.4 https://www.sodocs.net/doc/5f12311874.html,mmps [lizhao@c0106 crack]$ mpdboot -n 2 -f hostfile -r rsh [lizhao@c0106 crack]$ mpdtrace c0106 c0105 [lizhao@c0106 crack]$ mpiexec -genv I_MPI_DEVICE ssm -perhost 2 -np 4 /export/home/lizhao/lammps-21Oct10/src/lmp_mkl < in.crack . . . . . . ——生成的代码 [lizhao@c0106 crack]$ cat in.crack

Lammps 石墨烯实例

一、简介 1.SiC热分解制备石墨烯 自2004年Novoselov、Geim和合作者们从石墨上剥离出世界上第一种二维材料——单层石墨:石墨烯(Graphene)以来,石墨烯就受到了科技界的广泛重视[1]。Novoselov 和Geim两人因此在2010年获得了诺贝尔物理学奖。因为石墨烯的独特特性,在许多技术领域例如光电子学上它都被寄予厚望。研究石墨烯这种材料相关的物理化学特性和发展大面积、高质量生长石墨烯的技术,同时将其与器件物理学联系起来是我们研究和应用石墨烯的必由途径。 石墨烯是由碳元素组成的二维六边形材料,其在光学、电学、热学、力学等性质十分优异。它有可能在后摩尔定律时代成为硅(Silicon)的继任者,在单分子气体传感器[2]、自旋电子学[3]、量子计算[4]、太赫兹振荡器[5]等等领域发挥重要作用。如今,从石墨上剥离出石墨烯仍然是一种重要的石墨烯制备方方法。然而,这种方法产生的石墨烯大小通常不超过1000 μm2,只适合实验室研究,尚不能在工业上大规模应用。科学家发展了其他的石墨烯制备方法,包括将石墨烯视作一种薄膜来生长的化学气相沉积(Chemical Vapor Deposition, CVD)法、热分解碳化硅法(SiC thermal decomposition)、氧化石墨烯还原法(Graphene oxide reduction)等。 CVD法通过使含碳气源在有催化作用的金属表面分解或者使溶入到这些有催化作用的金属中的碳(C)发生表面偏析,使得在金属表面生成石墨烯或者多层石墨烯(Few-Layer Graphene, FLG)。能否直接在半导体/绝缘体上生长石墨烯呢?碳化硅热分解成功的解决了这一问题。最早试图使六方晶系的SiC晶体石墨化的研究报告见于1961年,Badami在高温和真空环境下得到了发生了一定石墨化的SiC[6]。在一定的退火条件下,SiC晶体表面发生热分解,Si原子发生解吸附,而C原子留下来重新排列和组合可以生长成外延型的石墨烯层[7]。更细致的研究发现用热退火的方法在六方SiC的Si面上生长的石墨烯比C面有更好的可控性,例如:可以更好的控制石墨烯的层数。Si面上生长的石墨烯生长方向与基底晶体结构有密切关系,这样提供了在基底上均匀覆盖和特定方向生长石墨烯的可能性。特别地,石墨烯直接生长在半导体SiC上使得我们无

LAMMPS学习记录

1、时间单位 1s=103ms=106μs=109ns=1012ps=1015fs 2、如何运行 开始-运行-cmd-输入“e:”回车,输入“cd lammps”直至找到可执行文件的位置,输入“lmp_win_no-mpi –in in.colloid”就可以计算了(新版本可能可执行文件的名称不一样了)。 https://www.sodocs.net/doc/5f12311874.html,MMPS的程序可以分为4个部分 Input script structure A LAMMPS input script typically has 4 parts: 1. Initialization 2. Atom definition 3. Settings 4. Run a simulation 后面的两个根据需要可以重复多次. 4.系综的分类 NVE,微正则系综,具有相同的化学组成、体积、总能量的热力学体系的集合。粒子数N,温度T,体积V都相同的孤立热力学体系组成的系综称为微正则系综。微正则系综必须是孤立的,与外界没有任何物质和能量的交换,其容器也必须刚性,没有任何体积变化。 NVT,正则系综,具有相同化学组成、体积、温度的热力学体系的集合。粒子数N,温度T,体积V都相同的热力学体系组成的系综称为正则系综。正则系综必须处在刚性容器之中,没有任何体积变化,与环境之间也没有物质交换。正则系综热力学体系的总能量是变化的,不是固定的。 NPT,具有相同化学组成、压力、温度的热力学体系的集合。体系的压力固定或几乎固定,体系的体积却可以自由变化。是化学中最常用的系综。 巨正则系综是温度T,体积V,化学势μ都相同的热力学体系的集合。巨正则系综体系也可理解为一个巨大的孤立体系中的一小部分,这一小部分与其他部分之间存在充分的物质和能量交换。 5.对一些命令的学习记录 LAMMPS中的许多操作都是基于group的。在建立group的基础上,进行各种操作。 利用VMD生成石墨烯: 使用VMD的Extensions->Modeling->Nanostructure Builder->generate Sheet(s) 就可以生成石墨烯,中间还可以修改各项参数,长,宽,层数都可以控制。 该命令同样可以生成碳纳米管,各项参数也可以修改。 6. VMD导出图片。打开File->Render->Start Rendering

[转载]关于LAMMPS输出【Output】的问题

无论任何模拟,我们都是想从模拟中得到我们想要的数据【data】,然后分析这些数据,从而提取出相关的信息【MAYBE新的发现】,那么数据的输出是 必然的一道程序,下面谈谈LAMMPS软件是如何输出data。 LAMMPS中处理的输出数据主要分一下三个大的部分: 1.断点数据,这个主要是为了防止模拟过程中出现意外,比如实验室或机房突然断电,程序部分阶段有错误等等。 2.系统热力学量的输出,这些量一般是体系中各个原子的集体行为量,比如温度,压强等 3.单原子详细信息的输出,如我们想得到的轨迹文件 对应于上面的三大部分,LAMMPS设置了不同的命令,有些命令结合在一起实现相关的功能。 1.对于断点数据,原始数据,LAMMPS主要有一下命令进行数据的输入输出。read_data,read_restart【读入】,restart,write_restart【输出】,如果能灵活运用这几个命令,会让你的模拟在突发事件下得到经济上的收获。其中命令里有两类通配 符,* 表示时间步,% 表示CPU编号。 2.全局热力学数据,也就是所谓的thermodynamic output,这些量是面向于系统的,而不是面向于某一类,某一组,原子的。一般是系统 宏观信息的数据。处理这些数据的命令主要有如下几个 thermo, thermo_modify, thermo_style[这个命令对于初学者要认真研究和调试],还有相关的把单原子信息转换为【global quantities】的辅助命令:fix ave/time,fix ave/ spatial, compute reduce 这些命令可以自己设定输出的频率,文件名等等。thermo_style 和 compute/ fix/variable命令结合进行数据的处理和输出是个大学问,这个需要不断的调试才能熟练掌握。其实研究variable compute 和少数 关于数据处理的fix可以节约你大量后期数据处理的时间。 3.单原子数据。相关命令主要有dump, dump_modify,undump.时刻牢记这些命令用于处理atom的数据对于你出现的错误就有敏感 性了,呵呵。 4。echo,print,fix print结合variable可以用于调试你的脚本,纠错。 5.秀个例子,用于输出setforce, group原子于其他相互作用力 #------------------------------------------------------------------------------------ fix 3 tetras setforce 0.0 0.0 0.0 variable fx equal f_3[1] variable fy equal f_3[2] variable fz equal f_3[3] fix 4 tetras print 1 "-- ${fx} ${fy} ${fz} --" #------------------------------------------------------------------------------------ thermo 2 thermo_style custom step f_3[1] f_3[1] f_3[1] #------------------------------------------------------------------------------------ 以上由redream/一下是fc所写 关于output,手册4.15,曾粗略翻译过 除了restart文件,LAMMPS还有两种基本的输出。第一种是热力学输出,每隔一定的时间步就打印到屏幕和log文件的一列数。第二种是dump 文件,包括按照一定的频率写入文件的原子位置快照和各种per-atom数值。每个模拟打印一组热力学输出;可能生成任意数目的dump文件。如下所讨

lammps的in文件详解

例一 units metal # 单位为lammps 中的metel 类型 boundary p p p # 周期性边界条件 atom_style atomic # 原子模式 lattice fcc 3.61 # Cu 的晶格常数3.61 region box block 0 4 0 4 0 4 # x,y,z 各方向上的晶胞重复单元数,也即区域大小 create_box 1 box # 将上述区域指定为模拟的盒子 create_atoms 1 box # 将原子按晶格填满盒子 pair_style eam # 选取Cu 的EAM 势作为模型 pair_coeff * * Cu_u3.eam # EAM 势文件名称 run 0 # 运行0 步,仅为启动lammps 的热力学数据计算 variable E equal pe # 定义变量E 为系统总势能 variable N equal atoms # 定义变量N 为系统总原子数 print "the number of atoms & system energy now are $N $E" # 打印信息 create_atoms 1 single 2.45 2.05 2.05 # 在该位置插入一个原子 min_style sd # 能量最小化模式,sd minimize 1.0e-12 1.0e-12 1000 1000 # 能量最小化参数,指数越大最小化程度越深 print "interstitial introduced, minimized: $N atoms, energy is $E" fix 1 all nvt 100 100 100 drag 0.2 # nvt 系综,原子数、体积和温度保持不变;T=100K timestep 0.005 # 步长0.005fs run 1000 # 运行1000 步 print "nvt performed, temperature up: $N atoms, total energy is $E" fix 1 all nvt 100 0.0001 100 drag 0.2 # nvt 系综,温度由100K 到0.0001K run 1000 # 运行1000 步 print "nvt performed, temperature down: $N atoms, total energy is $E" compute 3 all pe/atom # 计算每个原子的势能 compute 4 all ke/atom # 计算每个原子的动能 compute 5 all coord/atom 3.0 # 计算每个原子的近邻原子数 dump 1 all custom 1 dump.atom id xs ys zs c_3 c_4 c_5 # 将信息写入dump.atom min_style sd minimize 1.0e-12 1.0e-12 10000 10000 # 再次能量最小化 print "the final state: $N atoms, total energy is $E" # 打印信息 ~ 例二 boundary p s s # 边界条件,拉伸方向是周期性,其余是自由边界;如果是薄膜拉伸则是两个周期性,块体则是三个周期性 units metal #单位制定义为metal atom_style atomic #原子类型自动 neighbor 2.0 bin #截断半径相关的东西 neigh_modifydelay 1 check yes # 邻近原子列表更新速度

Lammps入门

本文结构: 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: 365449075 Email: wfc@https://www.sodocs.net/doc/5f12311874.html,

(完整版)LAMMPS手册学习.doc

LAMMPS手册学习 一、简介 本部分大至介绍了LAMMPS的一些功能和缺陷。 1.什么时LAMMPS? LAMMPS是一个经典的分子动力学代码,他可以模拟液体中的粒子,固体和汽体的系综。他可以采用不同的力场和边界条件来模拟全原子,聚合物,生物,金属,粒状和粗料化体系。LAMMPS可以计算的体系小至几个粒子,大到上百万甚至是上亿个粒子。 LAMMPS可以在单个处理器的台式机和笔记本本上运行且有较高的计算效率,但是它是专门为并行计算机设计的。他可以在任何一个按装了C++编译器和MPI的平台上运算,这其中当然包括分布式和共享式并行机和Beowulf型的集群机。 LAMMPS是一可以修改和扩展的计算程序,比如,可以加上一些新的力场,原子模型,边界条件和诊断功能等。 通常意义上来讲,LAMMPS是根据不同的边界条件和初始条件对通过短程和长程力相互作用的分子,原子和宏观粒子集合对它们的牛顿运动方程进行积分。高效率计算的LAMMPS通过采用相邻清单来跟踪他们邻近的粒子。这些清单是根据粒子间的短程互拆力的大小进行优化过的,目的是防止局部粒子密度过高。在并行机上,LAMMPS采用的是空间分解技术来分配模拟的区域,把整个模拟空间分成较小的三维小空间,其中每一个小空间可以分配在一个处理器上。各个处理器之间相互通信并且存储每一个小空间边界上的”ghost”原子的信息。LAMMPS(并行情况)在模拟3维矩行盒子并且具有近均一密度的体系时效率最高。 2.LAMMPS的功能 总体功能: 可以串行和并行计算 分布式MPI策略 模拟空间的分解并行机制 开源 高移植性C++语言编写 MPI和单处理器串行FFT的可选性(自定义) 可以方便的为之扩展上新特征和功能 只需一个输入脚本就可运行 有定义和使用变量和方程完备语法规则 在运行过程中循环的控制都有严格的规则 只要一个输入脚本试就可以同时实现一个或多个模拟任务 粒子和模拟的类型:

lammps模拟实例详解

# Big colloid particles and small LJ particles units lj This command sets the style of units used for a simulation. It determines the units of all quantities specified in the input script and data file, as well as quantities output to the screen, log file, and dump files. Typically, this command is used at the very beginning of an input script.这个指令设定模拟的格式,它决定了在输入脚本文件和数据文件以及在屏幕上显示的输出物,日志文件和垃圾文件中所有的单元格式。典型的是,它经常用于输入脚本的开头 For style lj, all quantities are unitless. Without loss of generality, LAMMPS sets the fundamental quantities mass, sigma, epsilon, and the Boltzmann constant = 1. The masses, distances, energies you specify are multiples of these fundamental values. The formulas relating the reduced or unitless quantity (with an asterisk) to the same quantity with units is also given. Thus you can use the mass & sigma & epsilon values for a specific material and convert the results from a unitless LJ simulation into physical quantities. 对于lj格式,所有数量都是无量纲的。不失一般性的,lammps设定了基本量质量sigma epsilon 和波尔兹曼常数=1。你定义的质量,距离,能量是这些基本值的倍数。公式把衰减量或者是无量纲量(用*)和单元给出的相同的量关联起来。因此你可以用mass,sigma,epsilon值表示一个具体材料并且改变一个无量纲lj模拟的物理量的结果。 mass = mass or m distance = sigma, where x* = x / sigma time = tau, where tau = t* = t (epsilon / m / sigma^2)^1/2 energy = epsilon, where E* = E / epsilon velocity = sigma/tau, where v* = v tau / sigma force = epsilon/sigma, where f* = f sigma / epsilon torque = epsilon, where t* = t / epsilon temperature = reduced LJ temperature, where T* = T Kb / epsilon pressure = reduced LJ pressure, where P* = P sigma^3 / epsilon dynamic viscosity = reduced LJ viscosity, where eta* = eta sigma^3 / epsilon / tau charge = reduced LJ charge, where q* = q / (4 pi perm0 sigma epsilon)^1/2 dipole = reduced LJ dipole, moment where *mu = mu / (4 pi perm0 sigma^3 epsilon)^1/2 electric field = force/charge, where E* = E (4 pi perm0 sigma epsilon)^1/2 sigma / epsilon density = mass/volume, where rho* = rho sigma^dim atom_style atomic 原子类型atomic(原子的) Define what style of atoms to use in a simulation. This determines what attributes are associated with the atoms. This command must be used before a simulation is setup via a read_data, read_restart, or create_box command. 定义在模拟中用到的原子类型,这个决定了与原子有关的属性,这个命令必须用在模拟被设定之前通过read_data, read_restart, or create_box Atomic only the default values coarse-grain liquids, solids, metals Atomic 附加属性是只是默认值用于粗粒液体,固体和金属的模拟

相关主题