您好,欢迎访问三七文档
Lammps程序关于lammps基础知识•lammps的输入文件一般分为4个部分Initialization,Atomdefinition,Settings,Runasimulation,后面的两个部分可以按照需要多次重复;(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要区分后面设置力场参数时命令里提到的atomtype;还有,这些命令告诉lammps在你的模拟中使用何种力场:pair_style,bond_style,angle_style,dihedral_style,improper_style.•在LJ类型中,所有变量都是无单位的,实际量换算成简化单位量有系列公式•缺省状态默认为LJ类型(2)Atomdefinition•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文件中制定;②各种模拟参数由这些命令设置:neighbor,neigh_modify,group,timestep,reset_timestep,run_style,min_style,min_modify.Suppliment•fix命令是lammps中很重要的一个命令,它包括很多子命令,可以施加一系列的边界条件、时间积分、诊断选项等等;•fix指令的用途是对一组原子进行定义,可以用于更新原子的位置、速度、控制温度、加常力、施加边界条件等。当两个或更多fix在同一过程中作用时,根据程序中的先后顺序执行fix指令。Fix指令可通过unfix指令来消除,形式为unfixfix-ID)•模拟过程中通过下面的命令制定lammps进行各种计算:compute,compute_modify,variable.•输出选项由thermo,dump,restart命令设置.•fixIDgroup−IDstyleargs·ID=user−assignednameforthefixID是用自己定义的名字,便于通过fix定义·group−ID=IDofthegroupofatomstoapplythefixto·style=oneofalonglistofpossiblestylenames(seebelow)·args=argumentsusedbyaparticularstyleExamples:fix1allnvefix3allnvttemp300.0300.00.01fixminetopsetforce0.0NULL0.0•对于run100start0stop1000这个语句来说,主要与fix语句配合使用。fix1allnvt200.0300.01.0这两个指令的功能是在接下来的1000步运行中,每run100步,温度都要从200度升到300度•fix1allnvt200.0300.01.0对于左侧的一组指令,温度随着从0到10000步的执行run1000start0stop10000逐渐升至300.0度,是一个发生在整个过程的渐变行为run1000start0stop10000...run1000start0stop10000(共10个)•至于preandpost大概是这样的,preno的意思是跳过初始设定阶段,如果以下的计算是承接之前运行命令的话(意思是采用之前的参数)但是如果该run指令是第一个指令是,该设定会被忽略。•若是postno,则跳过fulltimingsummary,输出one-linesummarytiming•Every的作用是将一个run分成一系列较短的runsvariableqequalxrun6000every2000printCoord=$q每运行2000步输出一次某原子的x坐标值•要设定一组原子的温度,那么用group命令定义哪些原子属于这个组才行;•每个命令的详细介绍中的Restrictions部分会说明要使用该命令定义的时候哪些命令必须要被预先定义;•如果你的输入文件书写的格式有问题,lammps在执行的时候会提示ERROR或者WARNING,出现类似信息时,你可以到手册的第九章中查询原因;(4)Runasimulation•使用run命令开始一个分子动力学模拟,用minimize命令来实施能量最小化(molecularstatics),使用temper命令来进行paralleltempering(replica-exchange)simulation.Commandslistedbycategory•Initialization:atom_modify,atom_style,boundary,dimension,newton,processors,units;•Atomdefinition:create_atoms,create_box,lattice,read_data,read_restart,region,replicate;•Forcefields: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.Lammps中特殊符号含义•(1)命令行后的&表示这一行跟下一行是同一条命令.•(2)命令行最开始的#表示这一行在执行过程中被忽略,你可以用它来写注释.•(3)$是跟声明变量有关系的。•(4)命令行被tabs,spaces间隔成各个“words”,注意这里的“words”可以包含字母、数字、下划线、或标点符号.•(5)一行中第一个词是命令名,后续的词是相关的参数.•(6)双引号内的文字空格被整体地当作一个参数,其中的#或$就没有前面说的作用了.PureCucrystal•(1)Initializationunitsmetal金属单位制:mass=grams/mole质量:g/mol•distance=Angstroms距离:埃•time=picoseconds时间:皮秒•energy=eV能量:•velocity=Angstroms/picosecond速度•force=eV/Angstrom力:•temperature=degreesK温度•pressure=bars压力•dynamicviscosity=Poise动力学粘性系数:泊•charge=multipleofelectroncharge(+1.0isaproton)电荷:电荷整数倍•dipole=charge*Angstroms偶极矩•electricfield=volts/Angstrom•density=gram/cm^dim•torque=eV力矩•atom_stylecharge原子属性:带电粒子系统•dimension3维数:3•boundaryppp边界条件:pisperiodicp指周期性fisnon-periodicandfixed:固定非周期sisnon-periodicandshrink-wrapped:收缩的非周期性的misnon-periodicandshrink-wrappedwithaminimumvalue有最小值的收缩的非周期•(2)Atomdefinition•latticefcc3.615晶格点阵:Latticesofstylesc,fcc,bcc,anddiamondare3dlatticesthatdefineacubicunitcellwithedgelength=1.0.fcc类型的点阵是定义的一个边长为1.0埃的立方体三维晶格点阵specifyingscale=3.615wouldcreateacubiclatticewithaspacingof3.615Angstroms.边长为3。615埃•regionboxblock040404区域:以040404为立方箱x、y、z边界条件;•create_box1box•在上述区域创建一个只有1个原子类型的模拟箱TheargumentNisthenumberofatomtypesthatwillbeusedinthesimulation•create_atoms1box:Thiscommandcreatesatomsonalattice,orasingleatom,orarandomcollectionofatoms,asanalternativetoreadingintheircoordinatesexplicitlyviaaread_dataorread_restartcommand.Asimulationboxmustalreadyexist,whichistypicallycreatedviathecreate_boxcommand.Beforeusingthiscommand,alatticemustalsobedefinedusingthelatticecommand.Theonlyexceptionsareforthesinglestylewithunits=boxortherandomstyle..这个命令用于在晶格点阵、单个原子和原子随机组合中创建原子,这样通过从文件中读数据命令读出原子在晶格中的相对位置来替代原子的位置坐标。Fortheboxstyle,thecreate_atomscommandfillstheentiresimulationboxwith
本文标题:Lammps程序
链接地址:https://www.777doc.com/doc-3258040 .html