[TOC]
典型的LAMMPS input
文件流程
- 初始化
- 在设置原子或者从文件中读取数据之前初始化参数。
- 相关的命令包括
units
,dimension
,newton
,processors
,boundary
,atom_style
,atom_modify
- 如果力场参数在文件中可读,相关的命令包括
pair_style
,bond_style
,angle_style
,dihedral_style
,improper_style
- 定义原子
- 通过
read_data
或read_restart
命令读取文件中的数据 - 通过盒子创建原子,
lattice
,region
,create_box
,create_atoms
- 通过
replicate
命令重复整个原子集以运行更大规模的模拟
- 通过
- 设置
- 定义原子、分子拓扑结构之后,包括力场参数、模拟参数、输出选项等可设置
- 力场参数通过以下命令进行设置,
pair_coeff
,bond_coeff
,angle_coeff
,dihedral_coeff
,improper_coeff
,kspace_style
,dielectric
,special_bonds
- 模拟参数可通过以下命令设置,
neighbor
,neigh_modify
,group
,timestep
,reset_timestep
,run_style
,min_style
,min_modify
- 运行模拟
- 使用
run
命令开始模拟,使用minimize
命令进行能量最小化
- 使用
input
文件读取规则
input
文件中每一个非空行都视为一行命令。在LAMMPS中,命令区分大小写。命令一般为小写,后面紧跟命令参数。大写的字母一般为文件名或者用户自定义的ID
。
- 一行命令的最后一个字符
&
表示与下一行相连 - 以
#
开头的行视为注释 - 后紧跟圆括号,则在括号内的字符串表示变量。若后可紧跟表达式,表示临时变量,用于计算表达式等操作。在临时变量后还添加C语言风格的格式化字符串
:%f
。需要注意的是,对于使用括号表示的变量或者字符串,都不能使用嵌套的括号。 - 每一行的所有词使用空格和制表符分隔,这里的词包括字母、数字、下划线或者标点符号
- 每一行的第一个词都是命令字符串,其后紧跟命令的声明变量
- 使用引号表示带空格的变量。较长的字符串可使用
&
换行。
三斜模拟盒子(triclinic box)
默认情况下,LAMMPS使用正交的盒子来囊括粒子。boundary
命令设置了盒子的边界条件。正交的盒子的原点在$(xlo, ylo, zlo)$ ,通过三个矢量来定义盒子的边界,$a = (xhi-xlo, 0, 0), b=(0, yhi-ylo, 0), c = (0, 0, zhi-zlo)$ 。
对于三斜的平行六面体模拟盒子,该平行六面体的起点在$(xlo, ylo, zlo)$,而定义盒子边界的三个矢量分别为$ a = (xhi-xlo, 0, 0), b = (xy, yhi-ylo, 0), c = (zx, yz, zhi-zlo)$,$xy, xz, yz$三个量为倾斜因子,表示将一个正交盒子的某一个面倾斜到对应的三斜盒子的距离。在LAMMPS中,a
必须指向x
的正方向,b
必须位于xy
平面上,而c
可以指向z
轴正方向的任意方向。这样的规则是为了保证所形成的盒子可以用右手定则来表示。
三斜晶体的结构通常使用晶格常数$a, b, c$以及晶格角$\alpha,\beta, \gamma$ 来表示。在这种命名方法中,$a, b, c$表示上述三个晶矢的长度。上述六个变量$a, b, c, \alpha, \beta, \gamma$以及LAMMPS中使用的盒子大小$(lx, ly, lz) = (xhi-xlo, yhi-ylo, zhi-zlo)$以及倾斜因子$(xy, xz, yz)$有如下关系。
- $a = lx$
- $b^2 = ly^2 + xy^2$
- $c^2 = lz^2 +xz^2 + yz^2$
- $cos\alpha = \frac{xy \cdot xz + ly\cdot yz}{b\cdot c}$
- $cos\beta = \frac{xz}{c}$
- $cos\gamma = \frac{xy}{b}$
对应地
- $lx = a$
- $xy = bcos\alpha$
- $xz = ccos\beta$
- $ly^2 = b^2 - xy^2$
- $yz = \frac{b \cdot ccos\alpha - xy\cdot xz}{ly}$
- $lz^2 = c^2 - xz^2 - yz^2$
平衡态统计物理基本概念
势能面(potential energy surface):由不同构型组成的势能的集合
系综(ensemble):系统在给定宏观条件下所有状态的集合
等几率原理(principle of equal weights):一个热力学体系会有相同的几率访问每一个微观态。由等几率原理可推导出Boltzmann分布 ,其中配分函数(partition function)$Q = \sum_i e^{-\beta E_i} \qquad \beta=1/k_BT$
各态历经(egodicity):只要系统演化无穷长的时间,总有几率历经势能面上的所有点。即在极限情况下,系综平均和时间平均是等价的。
微正则系综(Microcanonical ensemble):$NVE$均为常数
正则系综(Canonical ensemble):$NVT$均为常数
巨正则系综(Grand-canonical ensemble):$\mu VT$均为常数,粒子数可变
等压等温系综(Isobaric-isothermal ensemble):$NPT$ 均为常数
等张力-等温系综(Isotension-isothermal ensemble):模拟盒子的形状可变
系综平均:对蒙特卡洛模拟(Monte Carlo)有
时间平均:对分子动力学模拟(Molecular Dynamics)有
动能:
温度:
势能:
压强:
焓:
熵:
Helmholtz自由能:
Gibbs自由能:
化学势: