欢迎光临散文网 会员登陆 & 注册

Lammps命令与in文件

2021-08-19 18:22 作者:Studying9  | 我要投稿

文章来源:“分子动力学”公众号

链接:https://mp.weixin.qq.com/s/lYRYV4h7PZkWppGxalqc9w


in 文件描述一个符合牛顿定律的模拟过程,内容大致包含三个部分:

构建所模拟的体系,创造一个模拟环境的以及最后输出想得到的数据


一、各类文件

in :程序写入
log :写入状态信息(if the switch is used?)
screen : 决定结果的是否进行屏幕输出
var name : 定义一个变量,name指变量名,可为字母也可为字符串,形式$x / $ {abc}


二、指令系统介绍

1.一般来说指令的顺序并不重要,但在以下几种情况中必须注意:1. LAMMPS并不是全部读完所有指令才执行,而是读一行执行一次,因此下面的两组语句是不同的:

timestep 0.5   #以下的两个模拟其步长均为0.5 fmsec run 100 run 100 run 100         #第一个模拟采用缺省值步长为1 fmsec timestep 0.5 run 100         #第二个采用步长为0.5 fmsec

2. 某些指令只在其他指令之后才生效,如要得到系统温度必须先进行各种定义
3 .若A指令在B之前,B可以引用A定义的变量

三、in语法规则

1.在LAMMPS中要区分大小写,一般指令名称用小写字母,文件及用户定义ID Strings 用大写。

2.LAMMPS对每行语句的语法要求如下:

  • 当语句太长一行放不下时,在语句一行结束的时候输入字符 “&” 表示下一行的语句接着上一行继续。

  • #注释,但有例外

  • 紧跟在$后的为定义变量

  • 单词间用空格隔开

  • 第一个词为指令名,后面的字段都是相关的参数


四、 语句结构

1.Lammps官网命令,写in data文件时注意看:lammps.sandia.gov/doc/C

2.in文件包括四个部分:初始值,定义原子和盒子,设定条件,run

大致了解这些命令如下:


  • lattice(晶格参数),region(选择一个而区域),create_box(创建一个盒子),create-atoms(创建原子)——通过这四个命令创建原子(按晶格的方式),这种方式适合没有分子拓扑信息的晶体,如金属,盐等有规则晶体信息的物质。

五、撰写data,in文件并计算

以TIP4P水分子为例。#用in文件撰写简单的小分子模拟

水分子模型参数(看下面in文件对照着来看):Lammps官网-教程-8.5节howto discussions:lammps.sandia.gov/doc/H

#强力安利软件:UltraEdit——超强大的文本编辑器,编辑in data文件。(真的超好用,之后遇到很多更复杂的文件,如力场,记事本已经无法满足了,会乱序)


data  file for tip4p 3 atoms 2 bonds 1 angles                #非刚体结构in文件中不能写masses,刚体的话要写。full中read_data格式无masses Coords          #坐标 x y z 1   1.360   1.39    0.570 2   1.770   0.81    1.220 3   0.430   1.31    0.740 Types          #原子编号 类型 1  1 2  2 3  2 Charges        #电荷 1   -1.0484   2   0.5242   3   0.5242               #下面时拓扑信息 可看最开头总数 Bonds          #键的编号 键的类型 谁和谁连在一起 1  1  1 2 2  1  1 3 Angles        #一个角 1  1  2 1 3



# in file for tip4p model echo           screen         #调试用,打印到屏幕或log文件。none or screen or log or both units          real           #lj or real or metal or si or cgs or electron or micro or nano dimension      3              #2 or 3 boundary       p p p          #p f s m atom_style     full           #重要  full:molecular + charge; atomic:only the default values;charge:charge bond_style     harmonic angle_style    harmonic #创建一个box,并选择一个区域把水放进去 region         box block 0 10 0 10 0 10   #规划区域:定义一个长方体区域叫box,长宽高 单位angstrom create_box     2 box bond/types 1 angle/types 1  extra/bond/per/atom 2 extra/angle/per/atom 1   #create_box N region-ID keyword value .....;box支持多少种(大于等于实际最大值):原子类型 键 角 每个原子包含键和角 molecule       tip4 mol.data    #导入模型,需要molecule安装包才支持。 #read_data     tip4.data        #计算完后,生成restart.data,再把in文件改一下并且下面的设置部分改一下继续算。 #region        w2 block 10 30 10 30 10 30   #可定义一个之间空的区域w2 lattice        sc 5.0     #设置晶格:晶胞类型,晶格常数。让加入的原子分子在个点上。注意边界也有分子 create_atoms   0 region w1  mol tip4 515  units box  #从0开始,实际上没有0这种原子类型。设1之后,加上分子就有三种原子类型,上面create_atoms可改为3 #create_atoms  0 random 10 1234 w1 mol tip4 12 3units box  #random不用在格点上,故lattice可不用。随机生成,前面部分是生成原子,如果后面跟了分子,则是生成以随机点为质心的分子,前面注意要对应box要支持这种分子的拓扑结构,要对应。如果没跟分子,不能从0开始 mass            1 15.9994   #原子类型,质量 mass            2 1.008 neighbor    2.0    bin   #截断半径相关的东西 neigh_modify    delay 0    every 1 check yes      #邻近原子列表更新速度 pair_style      lj/cut/tip4p/long 1 2 1 1 0.125 8.5    #相互作用势:原子编号类型, 键和角的相互作用势:OM距离 ,截断 pair_coeff      1 1  0.1852573718 3.1589               pair_coeff      1 2  0.0000000000 1.5795 pair_coeff      2 2  0.0000000000 0.0000 bond_coeff      1 1000 0.9572 angle_coeff     1 3000 104.52 kspace_style    pppm/tip4p    1.0e-5   #计算长程库仑项,需要kspace安装包才支持 dump               1 all    custom 10 tip4.lammpstrj id type x y z    #将信息写入tip4.lammpstrj,此后可用vmd打开视图 dump_modify     1 sort id #dielectric      80.0 fix             1 all  shake 0.0001    2  0  b    1 a 1   #设置偏差控制精度提示,步数,步数,键和角 fix             2 all nve  #系综,后面可跟定义的参数 fix             3 all temp/rescale 1  300 300 1 1.0  1.0 #minimize 1.0e-12 1.0e-12 1000 1000   #能量最小化参数,指数越大最小化成都越深 thermo          1000 timestep        0.05    #步长fs run            100000 write_data      tip41.data    #输出 write_restart   tip41.restart


Lammps命令与in文件的评论 (共 条)

分享到微博请遵守国家法律