8. 基础知识
此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语,以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples
目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各种模拟。
8.1.通用基础知识
8.2. 设置入门
8.3. 分析入门
8.3.1. LAMMPS 的输出(thermo, dumps, computes, fixes, variables)
8.3.2.使用chunks计算系统属性
8.3.3.使用分布式网格
8.3.4.计算温度
8.3.5.计算弹性常数
弹性常数表征材料的刚度。形式定义是由在无限小变形极限下应力和应变张量之间保持的线性关系提供的。在张量表示法中,这表示为 s_ij = C_ijkl * e_kl,其中重复的索引意味着求和。 s_ij 是对称应力张量的元素。 e_kl 是对称应变张量的元素。 C_ijkl 是弹性常数四阶张量的元素。在三维空间中,该张量有 3^4=81 个元素。使用 Voigt 表示法,张量可以写成 6x6 矩阵,其中 C_ij 现在是 s_i w.r.t 的导数。 e_j。因为 s_i 本身就是一个导数。 e_i,因此 C_ij 也是对称的,最多有 7*6/2 = 21 个不同元素。
在零温度下,通过使用 change_box 命令使模拟盒在六个方向之一变形并测量应力张量的变化,可以轻松估计这些导数。 Examples文档页面上描述的示例/ELASTIC 目录中给出了执行此操作的通用脚本。
计算有限温度下的弹性常数更具挑战性,因为需要运行对微分属性进行时间平均的模拟。在 LAMMPS 中至少有 3 种方法可以做到这一点。最可靠的方法是利用弹性常数、应力波动和玻恩矩阵之间的关系,玻恩矩阵是能量w.r.t.应变(Ray)的二阶导数。
玻恩矩阵计算已通过compute born/matrix 命令启用,该命令适用于 LAMMPS 中的任何键合或非键合势。计算中最昂贵的部分是应力波动的采样。
Examples 文档页面上描述的 Examples/ELASTIC_T/BORN_MATRIX 目录中提供了此方法的几个示例。
第二种方法是在 NVT 模拟中测量当单元体积经历有限变形时平均应力张量的变化。为了平衡该方法中的系统误差和统计误差,必须明智地选择变形的大小,并且在对应力张量采样之前必须注意完全平衡变形单元。 Examples文档页面上描述的 Examples/ELASTIC_T/DEFORMATION 目录中提供了此方法的示例。
另一种方法是对 NPT 模拟中发生的三斜晶胞波动进行采样。这种方法收敛速度也很慢,并且需要仔细的后处理 (Shinoda)。
Clavier 等人的论文对所有这些方法的优点和缺点进行了很好的回顾。(Clavier).
Ref:
(Ray) J. R. Ray and A. Rahman, J Chem Phys, 80, 4423 (1984).
(Shinoda) Shinoda, Shiga, and Mikami, Phys Rev B, 69, 134103 (2004).
(Clavier) G. Clavier, N. Desbiens, E. Bourasseau, V. Lachet, N. Brusselle-Dupend and B. Rousseau, Mol Sim, 43, 1413 (2017).