(完整word版)lammps初学者in文件中文解析
LAMMPS in文件注意事项及详细解释

LAMMPS in文件注意事项及详细解释lammps做分子动力学模拟时,需要一个输入文件(input script),也就是in文件,以及关于体系的原子坐标之类的信息的文件(data file)。
lammps在执行计算的时候,从这个in文件中读入命令,所以对LAMMPS的使用最主要的就是对in文件的编写和使用。
下面介绍一些关于in文件的事项:1.每一非空行都被认为是一条命令(大小写敏感,但极少有命令或参数大写的)。
2.in文件中各命令的顺序可能会对计算产生影响,但大部分情况下不会有影响。
3.每行后的“&” 表示续行(类似fortran)。
4.“#”表示注释(类似bash)。
5.每行命令中的不同字段由空格或者制表符分隔开来,每个字段可以由字母、数字、下划线、或标点符号构成。
6.每行命令中第一个字段表示命令名,之后的字段都是相关的参数。
7.很多命令都是在需要修改默认值的情况下才特别设置的。
in文件整体来看分为4个部分1.Initialization这一部分包含了关于计算体系最基本的信息,例如:units: 单位系统(units style),lammps现在提供包括lj、real、metal、si和cgs几种单位系统。
dimension: 定义了两维或者三维模拟(默认是三维)。
boundary: 定义了分子动力学体系使用的边界条件,例如周期性边界条件或者自由边界条件等。
atom_style: 定义模拟体系中的原子属性,这一命令与力场设置的参数中的原子类型(atom type)不同。
pair_style: 相互作用力场类型,例如范德化势或者硬球势等。
bond_style: 键合相互作用势类型。
angle_style: 键角作用势类型。
dihedral_style: 二面角作用势类型。
improper_style: 混合作用势类型。
其他还有一些参数设置,例如newton, processors,boundary, atom_modify等。
lammps输入文件命令中文详解

作者: 御剑江湖收录日期: 2011-03-31 发布日期: 2011-03-24Commands描述了lammps输入文件的格式和在定义lammps模拟所需要的命令.1.1 LAMMPS input script我们用lammps做分子动力学模拟, 需要一个输入文件. lammps在执行计算的时候, 从这个文本文件中逐行读入命令. 大多数情况, lammps输入文件中各个命令的顺序并不是很重要. 但是你要注意以下几点:(1) lammps并不是将你的输入文件全部读入之后才开始进行计算的, 或者说, 每条命令在它被读入之后就会起作用了. 注意, 下面两组命令的执行效果是不相同的.timestep 0.5run 100run 100和run 100timestep 0.5run 100(2) 有些命令只有在另一些命令已经被定义的情况下才有效. 例如如果你要设定一组原子的温度, 那么用group命令定义哪些原子属于这个组才行.(3) 还有一种情况就是: 命令B要用到命A 设置的一些数值, 这样你也不能颠倒这两个命令的顺序.每个命令的详细介绍中的Restrictions部分会说明要使用该命令定义的时候哪些命令必须要被预先定义.如果你的输入文件书写的格式有问题,lammps在执行的时候会提示ERROR或者WARNING , 出现类似信息时, 你可以到手册的第九章中查询原因.1.2 Parsing rules输入文件中的每一非空行都被认为是一条命令. lammps中命令的书写是对大小写敏感的, 不过一般的命令和参数都是小写的, 大写字母用于极少数的情况.(1) 命令行后的& 表示这一行跟下一行是同一条命令. 这一点跟FORTRAN很像.(2) 命令行最开始的# 表示这一行在执行过程中被忽略, 你可以用它来写注释.(3) $ 是跟声明变量有关系的, 我暂时还没用到过, 具体请参阅variable命令的详细介绍.(4) 命令行被tabs, spaces间隔成各个“words”, 注意这里的“words”可以包含字母、数字、下划线、或标点符号.(5) 一行中第一个词是命令名, 后续的词是相关的参数.(6) 双引号内的文字空格被整体地当作一个参数, 其中的# 或$ 就没有前面说的作用了.1.3 Input script structurelammps的输入文件一般分为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模拟, 默认是3dboundary: 边界条件:周期性边界or自由边界atom_style: 定义你的模拟体系中的原子属性, 注意这个style要区分后面设置力场参数时命令里提到的atom type还有, 这些命令告诉lammps在你的模拟中使用何种力场: pair_style, bond_style, angle_style,dihedral_style, improper_style.(2) Atom definitionlammps提供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.1.4 Commands listed by category这一节分门别类地列出了lammps的所有命令. 注意有些命令的有些选项是特定的lammps package的一部分, 也就是说只有在编译lammps的时候包括了这些packages, 这些命令才能被使用. 默认情况下编译lammps并不包括所有的packages. 这些依赖关系在相关命令的详细介绍中Restrictions部分中列出了.Initialization: atom_modify, atom_style,boundary, dimension, newton, processors, unitsAtom definition: create_atoms, create_box, lattice, read_data, read_restart, region, replicateForce 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_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作者:御剑江湖一、各种文件的介绍:1 in file:建立该文件以便程序的写入2 log file:写入状态信息(if the switch is used?)3 screen file 决定结果的是否进行屏幕输出4 var name file 定义一个变量,name指变量名,可为字母也可为字符串,形式$x / $ {abc}二、屏幕输出:结果显示在屏幕上,同时在log file 中。
LAMMPS手册-中文版讲解

LAMMPS手册-中文解析一、简介本部分大至介绍了LAMMPS的一些功能和缺陷。
1.什么是LAMMPS?LAMMPS是一个经典的分子动力学代码,他可以模拟液体中的粒子,固体和汽体的系综。
他可以采用不同的力场和边界条件来模拟全原子,聚合物,生物,金属,粒状和粗料化体系。
LAMMPS可以计算的体系小至几个粒子,大到上百万甚至是上亿个粒子。
LAMMPS可以在单个处理器的台式机和笔记本本上运行且有较高的计算效率,但是它是专门为并行计算机设计的。
他可以在任何一个按装了C++编译器和MPI的平台上运算,这其中当然包括分布式和共享式并行机和Beowulf型的集群机。
LAMMPS是一可以修改和扩展的计算程序,比如,可以加上一些新的力场,原子模型,边界条件和诊断功能等。
通常意义上来讲,LAMMPS是根据不同的边界条件和初始条件对通过短程和长程力相互作用的分子,原子和宏观粒子集合对它们的牛顿运动方程进行积分。
高效率计算的LAMMPS通过采用相邻清单来跟踪他们邻近的粒子。
这些清单是根据粒子间的短程互拆力的大小进行优化过的,目的是防止局部粒子密度过高。
在并行机上,LAMMPS采用的是空间分解技术来分配模拟的区域,把整个模拟空间分成较小的三维小空间,其中每一个小空间可以分配在一个处理器上。
各个处理器之间相互通信并且存储每一个小空间边界上的”ghost”原子的信息。
LAMMPS(并行情况)在模拟3维矩行盒子并且具有近均一密度的体系时效率最高。
2.LAMMPS的功能总体功能:可以串行和并行计算分布式MPI策略模拟空间的分解并行机制开源高移植性C++语言编写MPI和单处理器串行FFT的可选性(自定义)可以方便的为之扩展上新特征和功能只需一个输入脚本就可运行有定义和使用变量和方程完备语法规则在运行过程中循环的控制都有严格的规则只要一个输入脚本试就可以同时实现一个或多个模拟任务粒子和模拟的类型:(atom style命令)原子粗粒化粒子全原子聚合物,有机分子,蛋白质,DNA联合原子聚合物或有机分子金属粒子材料粗粒化介观模型延伸球形与椭圆形粒子点偶极粒子刚性粒子所有上面的杂化类型力场:(命令:pair style, bond style, angle style, dihedral style, improper style, kspace style)对相互作用势:L-J, Buckingham, Morse, Yukawa, soft, class2(COMPASS), tabulated.带点对相互作用势:Coulombic, point-dipole.多体作用势:EAM, Finnis/Sinclair EAM, modified EAM(MEAM), Stillinger-Weber, Tersoff, AIREBO, ReaxFF粗粒化作用势:DPD, GayBerne, Resquared, Colloidal, DLVO介观作用势:granular, Peridynamics键势能:harmonic, FENE, Morse, nonlinear, class2, quartic键角势能:harmonic, CHARMM, cosine, cosine/squared, class2(COMPASS)二面角势能:harmonic, CHARMM, multi-harmonic, helix, OPLS, class2(COMPASS) 不合理势能:harmonic, CVFF, class2(COMPASS)聚合物势能:all-atom, united-atom, bead-spring, breakable水势能:TIP3P,TIP4P,SPC隐式溶剂势能:hydrodynamic lubrication, Debye长程库伦与分散:Ewald, PPPM, Ewald/N(针对长程L-J作用)可以有与普适化力场如CHARMM,AMBER,OPLS,GROMACS相兼容的力场可以采用GPU加速的成对类型杂化势能函数:multiple pair, bond, angle, dihedral, improper potentials(多对势能处于更高的优先级)原子创建:(命令:read_data, lattice, create-atoms, delete-atoms, displace-atoms, replicate)从文件中读入各个原子的坐标在一个或多个晶格中创建原子删除几何或逻辑原子基团复制已存在的原子多次替换原子系综,约束条件,边界条件:(命令:fix)二维和三维体系正角或非正角模拟空间常NVE,NVT,NPT,NPH积分器原子基团与几何区域可选择不同的温度控制器有Nose/Hoover和Berendsen压力控制器来控制体系的压力(任一维度上)模拟合子的变形(扭曲与剪切)简谐(unbrella)束缚力刚体约束摇摆键与键角约束各种边界环境非平行太分子动力学NEMD各种附加边界条件和约束积分器:Velocity-verlet积分器Brown积分器rRESPA继承时间延化积分器刚体积分器共轭梯度或最束下降算法能量最小化器输出:(命令:dump, restart)热力学信息日志原子坐标,速度和其它原子量信息的文本dump文件二进制重启文件各原子量包括:能量,压力,中心对称参数,CAN等用户自定义系统宽度或各原子的计算信息每个原子的时间与空间平均系统宽量的时间平均原子图像,XYZ,XTC,DCD,CFG格式数据的前处理与后处理:包里提供了一系列的前处理与后处理工具另外,可以使用独立发行的工具组pizza.py, 它可以进行LAMMPS模拟的设置,分析,作图和可视化工作。
lammps的in文件详解

lammps的in文件详解例一unitmetal#单位为lammp中的metel类型boundaryppp#周期性边界条件atom_tyleatomic#原子模式latticefcc3.61#Cu的晶格常数3.61regionbo某block040404#某,y,z各方向上的晶胞重复单元数,也即区域大小create_bo某1bo某#将上述区域指定为模拟的盒子create_atom1bo某#将原子按晶格填满盒子pair_tyleeam#选取Cu的EAM 势作为模型pair_coeff某某Cu_u3.eam#EAM势文件名称run0#运行0步,仅为启动lammp的热力学数据计算variableEequalpe#定义变量E为系统总势能variableNequalatom#定义变量N为系统总原子数print\打印信息create_atom1ingle2.452.052.05#在该位置插入一个原子min_tyled#能量最小化模式,dminimize1.0e-121.0e-1210001000#能量最小化参数,指数越大最小化程度越深print\run1000#运行1000步print\fi某1allnvt1000.0001100drag0.2#nvt系综,温度由100K到0.0001Krun1000#运行1000步dump1allcutom1dump.atomid某yzc_3c_4c_5#将信息写入dump.atommin_tyledminimize1.0e-121.0e-121000010000#再次能量最小化print\打印信息~例二boundaryp#边界条件,拉伸方向是周期性,其余是自由边界;如果是薄膜拉伸则是两个周期性,块体则是三个周期性unitmetal#单位制定义为metalatom_tyleatomic#原子类型自动neighbor2.0bin#截断半径相关的东西neigh_modifydelay1checkye#邻近原子列表更新速度#creategeometrylatticefcc3.61#定义晶胞为fcc,晶格常数3.61Aregionbo某block0300303#定义一个长方体区域叫bo某,长30,宽和高是3create_bo某1bo某#创建了这样一个bo某create_atom1bo某#在bo 某里创建了一种原子ma163.546#定义这种原子的质量是63.546#potentialpair_tyleeam#定义势函数是EAMpair_coef某某Cu_u3.eam#势所需要的参数在此文件里#definegroupregion1blockINF1INFINFINFINF#定义了一个叫1的区域groupleftregion1#定义此区域里的原子叫leftregion2block29INFINFINFINFINF#定义了一个叫2的区域grouprightregion2#定义此区域里的原子叫rightgroupboundaryunionleftright#定义left+right=boundarygroupmobileubtractallleft#定义mobile=all-left#initialvelocitievelocityleftet0.00.00.0#设置原子初速度为0variablepre某equalc_p[1]#定义变量pre某=c_p[1],c_p[1]的意思是p里第一个值variablepreyequalc_p[2]#定义变量prey=c_p[2],c_p[2]的意思是p 里第二个值variableprezequalc_p[3]#定义变量prez=c_p[3],c_p[3]的意思是p 里第三个值thermo_tylecutomteptempetotalprev_pre某v_preyv_prezvoldump1allatom1000dump.tenile#输出结果到dump.tenileminimize1.0e-61.0e-610001000#驰豫fi某1leftetforce0.0NULLNULL#固定左边的原子fi某2allnpt1.01.01.0anio0.00.0NULLNULLNULLNULL10.0drag1.0 thermo1000#每1000步输出一次结果run10000#运行10000步unfi某2fi某3allnvefi某4alltemp/recale1001.01.051.0fi某5alldeform1000某erate0.002unitbo某#设置沿某方向拉伸,应变率为0.002(1/p)variabletreaequalc_trea/vol#定义变量trea=trea/vol,vol是体积thermo_tylecutomteptempetotalprev_treav_trebv_trecvolrun3000 00。
LAMMPS手册-中文版讲解

LAMMPS手册-中文解析一、简介本部分大至介绍了LAMMPS的一些功能和缺陷。
1.什么是LAMMPS?LAMMPS是一个经典的分子动力学代码,他可以模拟液体中的粒子,固体和汽体的系综。
他可以采用不同的力场和边界条件来模拟全原子,聚合物,生物,金属,粒状和粗料化体系。
LAMMPS可以计算的体系小至几个粒子,大到上百万甚至是上亿个粒子。
LAMMPS可以在单个处理器的台式机和笔记本本上运行且有较高的计算效率,但是它是专门为并行计算机设计的。
他可以在任何一个按装了C++编译器和MPI的平台上运算,这其中当然包括分布式和共享式并行机和Beowulf型的集群机。
LAMMPS是一可以修改和扩展的计算程序,比如,可以加上一些新的力场,原子模型,边界条件和诊断功能等。
通常意义上来讲,LAMMPS是根据不同的边界条件和初始条件对通过短程和长程力相互作用的分子,原子和宏观粒子集合对它们的牛顿运动方程进行积分。
高效率计算的LAMMPS通过采用相邻清单来跟踪他们邻近的粒子。
这些清单是根据粒子间的短程互拆力的大小进行优化过的,目的是防止局部粒子密度过高。
在并行机上,LAMMPS采用的是空间分解技术来分配模拟的区域,把整个模拟空间分成较小的三维小空间,其中每一个小空间可以分配在一个处理器上。
各个处理器之间相互通信并且存储每一个小空间边界上的”ghost”原子的信息。
LAMMPS(并行情况)在模拟3维矩行盒子并且具有近均一密度的体系时效率最高。
2.LAMMPS的功能总体功能:可以串行和并行计算分布式MPI策略模拟空间的分解并行机制开源高移植性C++语言编写MPI和单处理器串行FFT的可选性(自定义)可以方便的为之扩展上新特征和功能只需一个输入脚本就可运行有定义和使用变量和方程完备语法规则在运行过程中循环的控制都有严格的规则只要一个输入脚本试就可以同时实现一个或多个模拟任务粒子和模拟的类型:(atom style命令)原子粗粒化粒子全原子聚合物,有机分子,蛋白质,DNA联合原子聚合物或有机分子金属粒子材料粗粒化介观模型延伸球形与椭圆形粒子点偶极粒子刚性粒子所有上面的杂化类型力场:(命令:pair style, bond style, angle style, dihedral style, improper style, kspace style)对相互作用势:L-J, Buckingham, Morse, Yukawa, soft, class2(COMPASS), tabulated.带点对相互作用势:Coulombic, point-dipole.多体作用势:EAM, Finnis/Sinclair EAM, modified EAM(MEAM), Stillinger-Weber, Tersoff, AIREBO, ReaxFF粗粒化作用势:DPD, GayBerne, Resquared, Colloidal, DLVO介观作用势:granular, Peridynamics键势能:harmonic, FENE, Morse, nonlinear, class2, quartic键角势能:harmonic, CHARMM, cosine, cosine/squared, class2(COMPASS)二面角势能:harmonic, CHARMM, multi-harmonic, helix, OPLS, class2(COMPASS) 不合理势能:harmonic, CVFF, class2(COMPASS)聚合物势能:all-atom, united-atom, bead-spring, breakable水势能:TIP3P,TIP4P,SPC隐式溶剂势能:hydrodynamic lubrication, Debye长程库伦与分散:Ewald, PPPM, Ewald/N(针对长程L-J作用)可以有与普适化力场如CHARMM,AMBER,OPLS,GROMACS相兼容的力场可以采用GPU加速的成对类型杂化势能函数:multiple pair, bond, angle, dihedral, improper potentials(多对势能处于更高的优先级)原子创建:(命令:read_data, lattice, create-atoms, delete-atoms, displace-atoms, replicate)从文件中读入各个原子的坐标在一个或多个晶格中创建原子删除几何或逻辑原子基团复制已存在的原子多次替换原子系综,约束条件,边界条件:(命令:fix)二维和三维体系正角或非正角模拟空间常NVE,NVT,NPT,NPH积分器原子基团与几何区域可选择不同的温度控制器有Nose/Hoover和Berendsen压力控制器来控制体系的压力(任一维度上)模拟合子的变形(扭曲与剪切)简谐(unbrella)束缚力刚体约束摇摆键与键角约束各种边界环境非平行太分子动力学NEMD各种附加边界条件和约束积分器:Velocity-verlet积分器Brown积分器rRESPA继承时间延化积分器刚体积分器共轭梯度或最束下降算法能量最小化器输出:(命令:dump, restart)热力学信息日志原子坐标,速度和其它原子量信息的文本dump文件二进制重启文件各原子量包括:能量,压力,中心对称参数,CAN等用户自定义系统宽度或各原子的计算信息每个原子的时间与空间平均系统宽量的时间平均原子图像,XYZ,XTC,DCD,CFG格式数据的前处理与后处理:包里提供了一系列的前处理与后处理工具另外,可以使用独立发行的工具组pizza.py, 它可以进行LAMMPS模拟的设置,分析,作图和可视化工作。
LAMMPS手册-中文版讲解

LAMMPS手册-中文解析一、简介本部分大至介绍了LAMMPS的一些功能和缺陷。
1.什么是LAMMPS?LAMMPS是一个经典的分子动力学代码,他可以模拟液体中的粒子,固体和汽体的系综。
他可以采用不同的力场和边界条件来模拟全原子,聚合物,生物,金属,粒状和粗料化体系。
LAMMPS可以计算的体系小至几个粒子,大到上百万甚至是上亿个粒子。
LAMMPS可以在单个处理器的台式机和笔记本本上运行且有较高的计算效率,但是它是专门为并行计算机设计的。
他可以在任何一个按装了C++编译器和MPI的平台上运算,这其中当然包括分布式和共享式并行机和Beowulf型的集群机。
LAMMPS是一可以修改和扩展的计算程序,比如,可以加上一些新的力场,原子模型,边界条件和诊断功能等。
通常意义上来讲,LAMMPS是根据不同的边界条件和初始条件对通过短程和长程力相互作用的分子,原子和宏观粒子集合对它们的牛顿运动方程进行积分。
高效率计算的LAMMPS通过采用相邻清单来跟踪他们邻近的粒子。
这些清单是根据粒子间的短程互拆力的大小进行优化过的,目的是防止局部粒子密度过高。
在并行机上,LAMMPS采用的是空间分解技术来分配模拟的区域,把整个模拟空间分成较小的三维小空间,其中每一个小空间可以分配在一个处理器上。
各个处理器之间相互通信并且存储每一个小空间边界上的”ghost”原子的信息。
LAMMPS(并行情况)在模拟3维矩行盒子并且具有近均一密度的体系时效率最高。
2.LAMMPS的功能总体功能:可以串行和并行计算分布式MPI策略模拟空间的分解并行机制开源高移植性C++语言编写MPI和单处理器串行FFT的可选性(自定义)可以方便的为之扩展上新特征和功能只需一个输入脚本就可运行有定义和使用变量和方程完备语法规则在运行过程中循环的控制都有严格的规则只要一个输入脚本试就可以同时实现一个或多个模拟任务粒子和模拟的类型:(atom style命令)原子粗粒化粒子全原子聚合物,有机分子,蛋白质,DNA联合原子聚合物或有机分子金属粒子材料粗粒化介观模型延伸球形与椭圆形粒子点偶极粒子刚性粒子所有上面的杂化类型力场:(命令:pair style, bond style, angle style, dihedral style, improper style, kspace style)对相互作用势:L-J, Buckingham, Morse, Yukawa, soft, class2(COMPASS), tabulated.带点对相互作用势:Coulombic, point-dipole.多体作用势:EAM, Finnis/Sinclair EAM, modified EAM(MEAM), Stillinger-Weber, Tersoff, AIREBO, ReaxFF粗粒化作用势:DPD, GayBerne, Resquared, Colloidal, DLVO介观作用势:granular, Peridynamics键势能:harmonic, FENE, Morse, nonlinear, class2, quartic键角势能:harmonic, CHARMM, cosine, cosine/squared, class2(COMPASS)二面角势能:harmonic, CHARMM, multi-harmonic, helix, OPLS, class2(COMPASS) 不合理势能:harmonic, CVFF, class2(COMPASS)聚合物势能:all-atom, united-atom, bead-spring, breakable水势能:TIP3P,TIP4P,SPC隐式溶剂势能:hydrodynamic lubrication, Debye长程库伦与分散:Ewald, PPPM, Ewald/N(针对长程L-J作用)可以有与普适化力场如CHARMM,AMBER,OPLS,GROMACS相兼容的力场可以采用GPU加速的成对类型杂化势能函数:multiple pair, bond, angle, dihedral, improper potentials(多对势能处于更高的优先级)原子创建:(命令:read_data, lattice, create-atoms, delete-atoms, displace-atoms, replicate)从文件中读入各个原子的坐标在一个或多个晶格中创建原子删除几何或逻辑原子基团复制已存在的原子多次替换原子系综,约束条件,边界条件:(命令:fix)二维和三维体系正角或非正角模拟空间常NVE,NVT,NPT,NPH积分器原子基团与几何区域可选择不同的温度控制器有Nose/Hoover和Berendsen压力控制器来控制体系的压力(任一维度上)模拟合子的变形(扭曲与剪切)简谐(unbrella)束缚力刚体约束摇摆键与键角约束各种边界环境非平行太分子动力学NEMD各种附加边界条件和约束积分器:Velocity-verlet积分器Brown积分器rRESPA继承时间延化积分器刚体积分器共轭梯度或最束下降算法能量最小化器输出:(命令:dump, restart)热力学信息日志原子坐标,速度和其它原子量信息的文本dump文件二进制重启文件各原子量包括:能量,压力,中心对称参数,CAN等用户自定义系统宽度或各原子的计算信息每个原子的时间与空间平均系统宽量的时间平均原子图像,XYZ,XTC,DCD,CFG格式数据的前处理与后处理:包里提供了一系列的前处理与后处理工具另外,可以使用独立发行的工具组pizza.py, 它可以进行LAMMPS模拟的设置,分析,作图和可视化工作。
LAMMPS_in文件注意事项及详细解释

LAMMPS in文件注意事项及详细解释lammps做分子动力学模拟时,需要一个输入文件(input script),也就是in文件,以及关于体系的原子坐标之类的信息的文件(data file)。
lammps在执行计算的时候,从这个in文件中读入命令,所以对LAMMPS的使用最主要的就是对in文件的编写和使用。
下面介绍一些关于in文件的事项:每一非空行都被认为是一条命令(大小写敏感,但极少有命令或参数大写的)。
in文件中各命令的顺序可能会对计算产生影响,但大部分情况下不会有影响。
每行后的“&”表示续行(类似fortran)。
“#”表示注释(类似bash)。
每行命令中的不同字段由空格或者制表符分隔开来,每个字段可以由字母、数字、下划线、或标点符号构成。
每行命令中第一个字段表示命令名,之后的字段都是相关的参数。
很多命令都是在需要修改默认值的情况下才特别设置的。
in文件整体来看分为4个部分Initialization这一部分包含了关于计算体系最基本的信息,例如:units: 单位系统(units style),lammps现在提供包括lj、real、metal、si和cgs几种单位系统。
dimension: 定义了两维或者三维模拟(默认是三维)。
boundary: 定义了分子动力学体系使用的边界条件,例如周期性边界条件或者自由边界条件等。
atom_style: 定义模拟体系中的原子属性,这一命令与力场设置的参数中的原子类型(atom type)不同。
pair_style: 相互作用力场类型,例如范德化势或者硬球势等。
bond_style: 键合相互作用势类型。
angle_style: 键角作用势类型。
dihedral_style: 二面角作用势类型。
improper_style: 混合作用势类型。
其他还有一些参数设置,例如newton, processors,boundary, atom_modify等。
LAMMPS手册-中文版讲解

LAMMPS手册-中文解析一、简介本部分大至介绍了LAMMPS的一些功能和缺陷.1.什么是LAMMPS?LAMMPS是一个经典的分子动力学代码,他可以模拟液体中的粒子,固体和汽体的系综。
他可以采用不同的力场和边界条件来模拟全原子,聚合物,生物,金属,粒状和粗料化体系。
LAMMPS可以计算的体系小至几个粒子,大到上百万甚至是上亿个粒子.LAMMPS可以在单个处理器的台式机和笔记本本上运行且有较高的计算效率,但是它是专门为并行计算机设计的.他可以在任何一个按装了C++编译器和MPI的平台上运算,这其中当然包括分布式和共享式并行机和Beowulf型的集群机.LAMMPS是一可以修改和扩展的计算程序,比如,可以加上一些新的力场,原子模型,边界条件和诊断功能等。
通常意义上来讲,LAMMPS是根据不同的边界条件和初始条件对通过短程和长程力相互作用的分子,原子和宏观粒子集合对它们的牛顿运动方程进行积分.高效率计算的LAMMPS通过采用相邻清单来跟踪他们邻近的粒子。
这些清单是根据粒子间的短程互拆力的大小进行优化过的,目的是防止局部粒子密度过高。
在并行机上,LAMMPS采用的是空间分解技术来分配模拟的区域,把整个模拟空间分成较小的三维小空间,其中每一个小空间可以分配在一个处理器上。
各个处理器之间相互通信并且存储每一个小空间边界上的”ghost"原子的信息.LAMMPS(并行情况)在模拟3维矩行盒子并且具有近均一密度的体系时效率最高.2.LAMMPS的功能总体功能:可以串行和并行计算分布式MPI策略模拟空间的分解并行机制开源高移植性C++语言编写MPI和单处理器串行FFT的可选性(自定义)可以方便的为之扩展上新特征和功能只需一个输入脚本就可运行有定义和使用变量和方程完备语法规则在运行过程中循环的控制都有严格的规则只要一个输入脚本试就可以同时实现一个或多个模拟任务粒子和模拟的类型:(atom style命令)原子粗粒化粒子全原子聚合物,有机分子,蛋白质,DNA联合原子聚合物或有机分子金属粒子材料粗粒化介观模型延伸球形与椭圆形粒子点偶极粒子刚性粒子所有上面的杂化类型力场:(命令:pair style, bond style,angle style, dihedral style, improper style, kspace style) 对相互作用势:L-J, Buckingham, Morse, Yukawa, soft,class2(COMPASS), tabulated。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Lammps初学者——in文件中文解析(1)初始化Units:Units命令是用来设定模拟的原子类型。
Units style(lammps现在提供的有style=LJ、real、metal、si、cgs、electron)LJ是硬球模型Real是真实的原子模型Metal是金属原子模型Si是硅(半导体)原子模型CgsElectron是电子模型Dimension:Dimension命令是用来定义模拟的维度,默认情况为三维。
Dimension N (N=2,3)Boundary:Boundary命令是用来设定模拟的边界条件。
Boundary x y z (x,y,z=p,s,f,m四种类型中的一种或者两种)P是周期性边界条件S是自由边界条件(但是具有收缩性)F是固定边界条件M是具有最小值的自由边界条件(但是具有收缩性)Atom-style:Atom-style定义了模拟体系中的原子属性。
Delete-atoms:Pair-style:Pair-style定义了相互作用力场类型,即势函数。
(2)原子定义1、Read-data/read-restart:Read-data或read-restart为从data或restart文件中读取内容来定义原子。
2、Lattice:lattice是用来原子类型构建模型晶格结构。
Lattice style scale keyword values...Style表示点阵类型,点阵类型有none、sc、bcc、fcc、hcp、diamond、sq、sq2、hex、custom。
Scale表示构建的点阵类型的单位长度Keyword表示后面可以追加0个或者多个关键字,关键字有origin、orient、spacing、a1、a2、a3、basis。
各关键字意思为:Region:Create-box:Create-box命令用于在region box命令指定的区域内创建一个模拟的盒子。
Create_box N region-IDN为使用该原子类型进行模拟Region-ID为使用区域的ID使用模拟域Create-atoms:Create-atoms用于在所创建的模拟的盒子中填充某种原子。
Create_atoms type style args keyword values ...(3)设定:力场系数Pair-coeff:模拟参数NeighborNeighbor是定义Neighbor skin styleSkin为Style可取bin、nsq、multiNeighbor-modify:Group:Timestep:Timestep是定义模拟的时间步长。
Timestep dtDt为时间步长(时间单位),默认为1psReset-timestep:FixFix为定义对部分原子或者对系综的操作。
/doc/fix.htmlFix ID group-ID style argsID=指定的操作名称编号(如1、2、3…….)Group-ID=制定操作范围的原子(如all……)Style=操作内容,如何操作Args=相关操作内容的相关操作参数Fix-nvt:恒定N(原子数量)、V(体积)、T(温度)对时间积分Fix-npt:恒定N、P、T对时间积分Unfix:Compute/compute-modify:输出选项Thermo:Thermo命令用于定义每隔一定时间步长输出一次采样内容。
Thermo N每隔N个时间步长输出一次采样内容至屏幕或者log文件Thermo_style:Thermo_style命令主要是用来说明采样的内容,即输出到屏幕或者LOG文件中的内容。
(/doc/thermo_style.html)Thermo_style style argsStyle=one、multi、customArgs=特定的参数列表One args=noneMulti args=noneCustom args=list of attributesPossible attributes=step、elaosed、elaplong、dt、cpu、tpcpu、spcpu、Atoms、temp、press、pe、ke、otatal、enthalpy、Evdwl、ecoul、epair、ebond、eangle、edihed、eimp、Emol、elong、etail、V ol、lx、ly、lz、xlo、xhi、ylo、yhi、zlo、zhi、Xy、xz、yz、xlat、ylat、zlat、Pxx、pyy、pzz、pxy、pyz、pxz、Fmax、fnorm、Cella、cellb、cellc、cellalpha、cellbeta、cellgamma、c_ID、c_ID[I]、c_ID[I][J]、f_ID、f_ID[I]、f_ID[I][J]、V_nameDump:Dump命令主要是用来输出计算后单个原子的相关信息的。
Dump ID group-ID style N file argsID:自己给这个dump命令定义的一个代号(自定义)group-ID:那些信息需要被输出的原子群(预先定义好group)Style:类型N:每经过多少时间步输出信息File:输出名称Args:相关参数(每个类型不同)Restart:(4)运行Run:Minimize:例一units metal # 单位为lammps 中的metel 类型boundary p p p # 周期性边界条件atom_style atomic # 原子模式lattice fcc 3.61 # Cu 的晶格常数3.61region 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 # 能量最小化模式,sdminimize 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=100Ktimestep 0.005 # 步长0.005fsrun 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.0001Krun 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 sdminimize 1.0e-12 1.0e-12 10000 10000 # 再次能量最小化print "the final state: $N atoms, total energy is $E" # 打印信息~例二boundary p s s # 边界条件,拉伸方向是周期性,其余是自由边界;如果是薄膜拉伸则是两个周期性,块体则是三个周期性units metal #单位制定义为metalatom_style atomic #原子类型自动neighbor 2.0 bin #截断半径相关的东西neigh_modifydelay 1 check yes # 邻近原子列表更新速度#create geometrylattice fcc 3.61 # 定义晶胞为fcc,晶格常数3.61Aregion box block 0 30 0 3 0 3 #定义一个长方体区域叫box,长30,宽和高是3create_box 1 box #创建了这样一个box create_atoms 1 box #在box里创建了一种原子mass 1 63.546 #定义这种原子的质量是63.546# potentialspair_style eam # 定义势函数是EAM pair_coef * * Cu_u3.eam #势所需要的参数在此文件里#define groupsregion 1 block INF 1 INF INF INF INF # 定义了一个叫1的区域group left region 1 #定义此区域里的原子叫leftregion 2 block 29 INF INF INF INF INF #定义了一个叫2的区域group right region 2 #定义此区域里的原子叫rightgroup boundary union left right #定义left+ right = boundarygroup mobile subtract all left # 定义mobile= all - left# initialvelocitiesvelocity left set 0.0 0.0 0.0 # 设置原子初速度为0computep all pressure thermo_temp # 计算应力,计算结果记为pvariable pressx equal c_p[1] #定义变量pressx=c_p[1],c_p[1]的意思是p里第一个值variable pressy equal c_p[2] #定义变量pressy=c_p[2],c_p[2]的意思是p里第二个值variable pressz equal c_p[3] #定义变量pressz=c_p[3],c_p[3]的意思是p里第三个值thermo_style custom step temp etotal press v_pressx v_pressy v_pressz voldump 1 all atom 1000 dump.tensile # 输出结果到dump.tensileminimize 1.0e-6 1.0e-6 1000 1000 # 驰豫fix 1 left setforce 0.0 NULL NULL #固定左边的原子fix 2 all npt 1.0 1.0 1.0 aniso 0.0 0.0 NULL NULL NULL NULL 10.0 drag 1.0thermo 1000 # 每1000步输出一次结果timestep 0.002 #时间步长0.002psrun 10000#运行10000步unfix2fix 3 all nvefix 4 all temp/rescale 100 1.0 1.0 5 1.0fix 5 all deform 1000 x erate 0.002 units box #设置沿x方向拉伸,应变率为0.002(1/ps)compute s all stress/atom #计算每个原子上的应力,计算结果记为scompute strea all reduce sum c_s[1] #将s里第一个值求和,计算结果记为streavariable stressa equal c_strea/vol # 定义变量stressa= strea/vol, vol是体积compute streb all reduce sum c_s[2]variable stressb equalc_streb/volcompute strec all reduce sum c_s[3]variable stressc equal c_strec/volthermo_style custom step tempetotal press v_stressa v_stressb v_stressc vol run 300000。