0%

LAMMPS 笔记 (1)

[TOC]

典型的LAMMPS input 文件流程

  1. 初始化
    • 在设置原子或者从文件中读取数据之前初始化参数。
    • 相关的命令包括units, dimension, newton , processors, boundary, atom_style, atom_modify
    • 如果力场参数在文件中可读,相关的命令包括pair_style, bond_style, angle_style, dihedral_style, improper_style
  2. 定义原子
    • 通过read_dataread_restart 命令读取文件中的数据
    • 通过盒子创建原子,lattice, region, create_box, create_atoms
    • 通过replicate 命令重复整个原子集以运行更大规模的模拟
  3. 设置
    • 定义原子、分子拓扑结构之后,包括力场参数、模拟参数、输出选项等可设置
    • 力场参数通过以下命令进行设置, 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
  4. 运行模拟
    • 使用run 命令开始模拟,使用minimize 命令进行能量最小化

input 文件读取规则

input 文件中每一个非空行都视为一行命令。在LAMMPS中,命令区分大小写。命令一般为小写,后面紧跟命令参数。大写的字母一般为文件名或者用户自定义的ID

  1. 一行命令的最后一个字符&表示与下一行相连
  2. #开头的行视为注释
  3. 后紧跟圆括号,则在括号内的字符串表示变量。若后可紧跟表达式,表示临时变量,用于计算表达式等操作。在临时变量后还添加C语言风格的格式化字符串:%f。需要注意的是,对于使用括号表示的变量或者字符串,都不能使用嵌套的括号。
  4. 每一行的所有词使用空格和制表符分隔,这里的词包括字母、数字、下划线或者标点符号
  5. 每一行的第一个词都是命令字符串,其后紧跟命令的声明变量
  6. 使用引号表示带空格的变量。较长的字符串可使用&换行。

三斜模拟盒子(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自由能:

  • 化学势: