本文主要是介绍【LAMMPS学习】八、基础知识(5.1)有限尺寸球形和非球形粒子,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
8. 基础知识
此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语,以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples
目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各种模拟。
8.1.通用基础知识
8.2. 设置入门
8.3. 分析入门
8.4. 力场入门
8.5. 软件包入门
8.5.1.有限尺寸球形和非球形粒子
典型的 MD 模型将原子或粒子视为点质量。有时需要一个具有有限尺寸粒子的模型,例如球体或椭球体或广义非球体。不同之处在于,此类粒子具有惯性矩、旋转能和角动量。旋转是由与其他粒子相互作用产生的扭矩引起的。
LAMMPS 有多种选项可用于对此类粒子进行模拟。依次讨论以下几个方面:
-
atom styles 原子样式
-
pair potentials 对势
-
time integration 时间积分
-
computes, thermodynamics, and dump output计算、热力学和转储输出
-
rigid bodies composed of finite-size particles由有限尺寸粒子组成的刚体
此类模型的示例输入脚本位于 LAMMPS 发行版示例目录的 body、colloid、dipole、ellipse、line、peri、pour 和 tri 目录中。
Atom styles 原子样式
有几种atom styles可以定义有限尺寸的粒子:
球体、偶极子、椭球体、线、三角形、近周和体。
球体样式定义为球体的粒子,每个粒子可以具有唯一的直径和质量(或密度)。这些粒子存储角速度 (omega),并且可以受到扭矩的作用。 “set”命令可用于修改单个粒子的直径和质量,然后创建。
偶极子样式实际上并不定义有限尺寸的粒子,但通常通过类似命令与球形粒子结合使用
atom_style hybrid sphere dipole
这是因为当偶极子彼此相互作用时,它们会产生扭矩,并且粒子必须具有有限尺寸(即具有惯性矩)才能响应和旋转。有关详细信息,请参阅atom_style dipole 命令。 “set”命令可用于修改单个粒子的偶极矩的方向和长度,然后创建。
椭球样式定义了椭球粒子,因此可以是非球面的。每个颗粒都有一个形状,由 3 个直径和质量(或密度)指定。这些粒子存储角动量及其方向(四元数),并且可以受到扭矩的作用。它们不存储角速度 (omega),角速度可能与角动量的方向不同,而是根据需要进行计算。 “set”命令可用于修改单个粒子的直径、方向和质量,然后创建。它还对四元数是什么进行了简要说明。
线型定义具有两个端点和质量(或密度)的线段粒子。它们可以用于二维模拟,并且可以连接在一起形成代表任意多边形的刚体。
tri 样式定义具有三个角点和质量(或密度)的三角形粒子。它们可用于 3D 模拟,并且可以连接在一起形成刚体,代表具有三角形表面的任意粒子。
Peridynamic models 与近场动力学模型一起使用,并将粒子定义为具有体积,在 pair_style peri内部使用。
体样式允许定义可以表示复杂实体的粒子,例如离散点的表面网格、子粒子的集合、可变形对象等。主体样式在Howto body 文档页面上有更详细的讨论。
请注意,如果使用这些原子样式之一(或通过atom_style hybrid 命令使用多种样式),则并非系统中的所有粒子都需要是有限尺寸或非球面的。
例如,在椭球样式中,如果将 3 个形状参数设置为相同的值,则粒子将是球体而不是椭球体。如果3个形状参数全部设置为0.0或者直径设置为0.0,则为点粒子。在 line 或 tri 样式中,如果 lineflag 或 triflag 指定为 0,则它将是点粒子。
用于计算有限大小粒子之间的成对相互作用的一些对样式也计算与点粒子的正确相互作用,例如点粒子与有限尺寸粒子之间或两个点粒子之间的相互作用。如有必要,可以使用pair_style hybrid 来确保为适当的交互样式计算正确的交互。同样,使用组来划分粒子(椭球体、球体、点粒子)将允许您为每类粒子使用适当的时间积分器和温度计算。有关详细信息,请参阅各种命令的文档页面。
另请注意,对于 2d simulations,原子样式球体和椭球体仍然使用 3d 粒子,而不是圆盘或椭圆体。这意味着它们具有与 3d 对象相同的惯性矩。计算温度时,正确的自由度用于 2d 与 3d 系统中的旋转。
Pair potentials对势
当定义具有有限尺寸粒子的系统时,如果力场计算这种相互作用,则粒子只会旋转并经历扭矩。这些是产生扭矩的各种pair styles:
-
pair_style gran/history
-
pair_style gran/hertz
-
pair_style gran/no_history
-
pair_style dipole/cut
-
pair_style gayberne
-
pair_style resquared
-
pair_style brownian
-
pair_style lubricate
-
pair_style line/lj
-
pair_style tri/lj
-
pair_style body/nparticle
颗粒对样式与球形颗粒一起使用。偶极对样式与偶极原子样式一起使用,可应用于球形或椭球体粒子。 GayBerne 和 REsquared 势需要椭圆体粒子,但如果 3 个形状参数相同(球体),它们也将起作用。布朗势和润滑势与球形颗粒一起使用。线、三角形和体势分别与线段、三角形和体粒子一起使用。
Time integration时间积分
有几个fixs程序可以对有限尺寸的球形粒子执行时间积分,这意味着积分器会更新粒子的旋转方向和角速度或角动量:
-
fix nve/sphere
-
fix nvt/sphere
-
fix npt/sphere
同样,有 3 个fixs对椭圆体粒子执行时间积分:
-
fix nve/asphere
-
fix nvt/asphere
-
fix npt/asphere
这些修复的优点是那些对粒子进行恒温的修复包括温度计算和恒温中的旋转自由度。fix langevin 命令还可以与其 omgea 或 angmom 选项一起使用,以恒温球形或椭球体粒子的旋转自由度。其他恒温修复仅对有限尺寸粒子的平移动能起作用。
这些修复在线段、三角形和体粒子上执行恒定的 NVE 时间积分:
-
fix nve/line
-
fix nve/tri
-
fix nve/body
请注意,对于点和有限尺寸粒子的混合,这些积分修复只能用于包含有限尺寸粒子的groups 。
计算、热力学和转储输出
有几种计算方法可以计算球形或椭球体粒子的温度或旋转能:
-
compute temp/sphere 计算温度/球体
-
compute temp/asphere 计算温度/非球面
-
compute erotate/sphere 计算旋转/球体
-
compute erotate/asphere 计算旋转/非球面
其中包括计算中的旋转自由度。如果您希望温度或压力的热力学输出使用这些计算之一(例如,对于完全由有限尺寸粒子组成的系统),则可以定义计算并使用 thermo_modify 命令。请注意,默认情况下,将使用仅包含平移自由度的温度来计算热力学量。有关详细信息,请参阅 thermo_style 命令。
这些命令可用于输出有限尺寸粒子的各种属性:
-
dump custom 转储自定义
-
compute property/atom 计算属性/原子
-
dump local 转储本地
-
compute body/local 计算主体/本地
属性包括偶极矩、角速度、角动量、四元数、扭矩、端点和角点坐标(对于线粒子和三粒子)以及物体粒子的子粒子属性。
由有限尺寸粒子组成的刚体
fix rigid命令将粒子集合视为刚体,计算其惯性张量,对每个时间步由于其组成粒子上的力而对刚体施加的总力和扭矩求和,并对刚体的运动进行积分。
如果刚体的任何组成粒子是有限尺寸粒子(球体或椭球体或线段或三角形),则它们对刚体惯性张量的贡献与点粒子不同。这意味着刚体的旋转动力学将会不同。因此,如果二聚体由两个点质量与两个球体组成,即使两个粒子具有相同的质量,二聚体的模型也是不同的。由于与其他粒子相互作用而承受扭矩的有限尺寸粒子也会将该扭矩传递给它们所属的刚体。
请参阅“修复刚性”命令,了解可以在 LAMMPS 中定义的复杂刚体模型的示例。
请注意,fix shake 命令也可用于将 2、3 或 4 个粒子视为刚体,但它始终假设粒子是点质量。
另请注意,无法使用 fix rigid 命令对体粒子进行建模。体粒子被 LAMMPS 视为单个粒子,尽管它们可以存储内部状态,例如子粒子列表。单个主体粒子通常被视为刚体,它们的运动与诸如fix nve/body之类的命令集成。身体粒子对之间的相互作用是通过诸如pair_style body/nparticle之类的命令计算的。
这篇关于【LAMMPS学习】八、基础知识(5.1)有限尺寸球形和非球形粒子的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!