lammps输入命令

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Commands描述了lammps输入文件的格式和在定义lammps模拟所需要的命令.1.1LAMMPSinputscript我们用lammps做分子动力学模拟,需要一个输入文件.lammps在执行计算的时候,从这个文本文件中逐行读入命令.大多数情况,lammps输入文件中各个命令的顺序并不是很重要.但是你要注意以下几点:(1)lammps并不是将你的输入文件全部读入之后才开始进行计算的,或者说,每条命令在它被读入之后就会起作用了.注意,下面两组命令的执行效果是不相同的.timestep0.5run100run100和run100timestep0.5run100(2)有些命令只有在另一些命令已经被定义的情况下才有效.例如如果你要设定一组原子的温度,那么用group命令定义哪些原子属于这个组才行.(3)还有一种情况就是:命令B要用到命A设置的一些数值,这样你也不能颠倒这两个命令的顺序.每个命令的详细介绍中的Restrictions部分会说明要使用该命令定义的时候哪些命令必须要被预先定义.如果你的输入文件书写的格式有问题,lammps在执行的时候会提示ERROR或者WARNING,出现类似信息时,你可以到手册的第九章中查询原因.1.2Parsingrules输入文件中的每一非空行都被认为是一条命令.lammps中命令的书写是对大小写敏感的,不过一般的命令和参数都是小写的,大写字母用于极少数的情况.(1)命令行后的&表示这一行跟下一行是同一条命令.这一点跟FORTRAN很像.(2)命令行最开始的#表示这一行在执行过程中被忽略,你可以用它来写注释.(3)$是跟声明变量有关系的,我暂时还没用到过,具体请参阅variable命令的详细介绍.(4)命令行被tabs,spaces间隔成各个“words”,注意这里的“words”可以包含字母、数字、下划线、或标点符号.(5)一行中第一个词是命令名,后续的词是相关的参数.(6)双引号内的文字空格被整体地当作一个参数,其中的#或$就没有前面说的作用了.1.3Inputscriptstructurelammps的输入文件一般分为4个部分Initialization,Atomdefinition,Settings,Runasimulation后面的两个部分可以按照需要多次重复.Rememberthatalmostallthecommandsneedonlybeusedifanon-defaultvalueisdesired.(1)Initialization在你的模拟体系定义之前,一些参数必须要被设置.相关的命令有:units,dimension,newton,processors,boundary,atom_style,atom_modify.units:选择单位系统,lammps提供了lj、real、metal三种单位系统dimension:2d模拟还是3d模拟,默认是3dboundary:边界条件:周期性边界or自由边界atom_style:定义你的模拟体系中的原子属性,注意这个style要区分后面设置力场参数时命令里提到的atomtype还有,这些命令告诉lammps在你的模拟中使用何种力场:pair_style,bond_style,angle_style,dihedral_style,improper_style.(2)Atomdefinitionlammps提供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)Runasimulation使用run命令开始一个分子动力学模拟,用minimize命令来实施能量最小化(molecularstatics),使用temper命令来进行paralleltempering(replica-exchange)simulation.1.4Commandslistedbycategory这一节分门别类地列出了lammps的所有命令.注意有些命令的有些选项是特定的lammpspackage的一部分,也就是说只有在编译lammps的时候包括了这些packages,这些命令才能被使用.默认情况下编译lammps并不包括所有的packages.这些依赖关系在相关命令的详细介绍中Restrictions部分中列出了.Initialization:atom_modify,atom_style,boundary,dimension,newton,processors,unitsAtomdefinition:create_atoms,create_box,lattice,read_data,read_restart,region,replicateForcefields: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_bondsSettings:communicate,dipole,group,mass,min_modify,min_style,neigh_modify,neighbor,reset_timestep,run_style,set,shape,timestep,velocityFixes:fix,fix_modify,unfixComputes:compute,compute_modify,uncomputeOutput:dump,dump_modify,restart,thermo,thermo_modify,thermo_style,undump,write_restartActions:delete_atoms,delete_bonds,displace_atoms,displace_box,minimize,run,temperMiscellaneous:clear,echo,if,include,jump,label,log,next,print,shell,variable作者:御剑江湖一、各种文件的介绍:1infile:建立该文件以便程序的写入2logfile:写入状态信息(iftheswitchisused?)3screenfile决定结果的是否进行屏幕输出4varnamefile定义一个变量,name指变量名,可为字母也可为字符串,形式$x/${abc}二、屏幕输出:结果显示在屏幕上,同时在logfile中。开始前LAMMPS计算出所需的存储空间,运行中每隔几个时步显示一次热力学状态,直至输出最终状态。Looptimeof49.002on2procsfor2004atoms该部分显示了几个大类的计算时间Pairtime(%)=35.0495(71.5267)Bondtime(%)=0.092046(0.187841)Kspcetime(%)=6.42073(13.103)Neightime(%)=2.73485(5.5811)Commtime(%)=1.50291(3.06703)Outpttime(%)=0.013799(0.0281601)Othertime(%)=2.13669(4.36041)Nlocal:1002ave,1015max,989min每个处理器中特定原子的数目Histogram:1000000001Nghost:8720ave,8724max,8716minHistogram:1000000001Neighs:354141ave,361422max,346860minHistogram:1000000001Total#ofneighbors=708282Aveneighs/atom=353.434Avespecialneighs/atom=2.34032Numberofreneighborings=42Dangerousreneighborings=2当运用了能量最小化命令进行能量最小化时,还将出现如下所示语句:Minimizationstats:Einitial,next−to−last,final=−0.895962−2.94193−2.94342(显示初终能量以及next-to-last循环的能量)Gradient2−norminit/final=1920.7820.9992(给出能量梯度,即所有原子的受力)Gradientinf−norminit/final=304.2839.612162-form是力向量的长度,inf-form是最大构成?Iterations=36循环次数Forceevaluations=177对力进行评定的次数当程序中有kspace_stylelong−rangeCoulombicssolve,将会显示以下语句:FFTtime(%ofKspce)=0.200313(8.34477)完成3dFFT计算的时间及在总时间中占的百分比FFTGflps3d1d−only=2.310749.19989每秒执行的浮点指令次数(flops)为5N*log(2N),N为3维晶体中的节点数The3drateiswithcommunication;the1drateiswithout(justthe1dFFTs).在GPU(图形处理单元)上的运行三、指令系统介绍(*)一般来说指令的顺序并不重要,胆在以下几种情况中必须注意:1LAMMPS并不是全部读完所有指令才执行,而是读一行执行一次,因此下面的两组语句是不同的:timestep0.5以下的两个模拟其步长均为0.5fmsecrun100run100run100第一个模拟采用缺省值步长为1fmsectimestep0.5run100第二个采用步长为0.5fmsec2某些指令只在其他指令之后才生效,如要得到系统温度必须先进行各种定义3若A指令在B之前,B可以引用A定义的变量四、语法规则在LAMMPS中要区分大小写,一般指令名称用小写字母,文件及用户定义IDStrings用大写。LAMMPS对每行语句的语法要求如下:1当语句太长一行放不下时,在语句一行结束的时候输入字符“”表示下一行的语句接着上一行继续。2在#之后输入的字符认为是评论语句,是无用的,但有例外3紧跟在$后定义变量(之前讲过)4单词间用空格隔开5第一个词为指令名,接下来的字母全都为自变量(arguments)6Ifyouwanttext

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功