【LAMMPS学习】八、基础知识(5.3)Body particles体粒子

8. 基础知识

此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语,以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各种模拟。

8.1.通用基础知识

8.2. 设置入门

8.3. 分析入门

8.4. 力场入门

8.5. 软件包入门

8.5.1.有限尺寸球形和非球形粒子
8.5.2. 粒度模型

8.5.3.体粒子

概述:

在 LAMMPS 中,体粒子是广义的有限尺寸粒子。单个体粒子可以表示复杂的实体,例如离散点的表面网格、子粒子的集合、可变形物体等。请注意,LAMMPS 还支持其他类型的有限尺寸球形和非球面粒子,例如球体、椭球体、线段和三角形,但它们是比体粒子更简单的实体。有关所有这些粒子类型的一般概述,请参阅 Howto spherical 页面。

体粒子通过atom_style body 命令使用。它以body style作为参数。目前LAMMPS支持的body样式如下。第一列中的名称用作atom_style body命令的bstyle 参数。

nparticle

rigid body with N sub-particles
具有 N 个子粒子的刚体

rounded/polygon 圆形/多边形

2d polygons with N vertices
具有 N 个顶点的 2d 多边形

rounded/polyhedron 圆形/多面体

3d polyhedra with N vertices, E edges and F faces
具有 N 个顶点、E 个边和 F 个面的 3d 多面体

体样式决定了为每个主体存储哪些属性,以及如何使用它们来计算成对的主体/主体或键/非主体(点粒子)相互作用。下面描述了每种样式的更多细节。

将来可能会添加更多样式。有关如何向代码添加新主体样式的详细信息,请参阅page on creating new body styles

何时使用体粒子:

如果成对刚体之间的相互作用只是较简单粒子之间成对相互作用的总和,则不应使用体粒子来模拟由较简单粒子(例如点、球体、椭球体、线段、三角形粒子)组成的刚体。 LAMMPS 已经通过fix rigid ​​​​​​​命令支持这种模型。可以使用计算更简单粒子之间相互作用的众多对样式中的任何一种。fix rigid命令对刚体的运动进行时间积分。所有用于恒温、添加约束、执行输出等的标准 LAMMPS 命令都将在简单粒子上按预期运行。

相比之下,当使用主体粒子时,LAMMPS 将整个主体视为单个粒子,用于计算成对相互作用、构建邻居列表、在处理器之间迁移粒子、将粒子输出到转储文件等。这意味着对之间的相互作用物体的粒子或物体与非物体(点)粒子之间的粒子需要以适当的对样式进行编码。如果这样的配对样式要模仿固定刚性模型,则每次计算单个body/body​​​​​​​相互作用时,都需要循环两个物体内简单粒子对之间相互作用的整个集合。
因此,只有当粒子/粒子相互作用比
fix rigid命令已经可以计算的更复杂时,使用体粒子并开发这样的pair style​​​​​​​才有意义。例如,考虑具有以下一项或多项属性的粒子:

  • 由表面网格表示

  • 由几何实体的集合表示(例如平面+球体)

  • 可变形的

  • 引起碎裂的内应力

对于这些模型,粒子对之间的相互作用可能比简单的成对相互作用的总和更复杂。一个例子是具有相互渗透的平面表面的颗粒之间的接触力或摩擦力。同样,体粒子可以存储内部状态,例如用于计算断裂准则的应力张量。

这些是附加的 LAMMPS 命令,可与不同样式的体粒子一起使用

fix nve/body

integrate motion of a body particle in NVE ensemble
将体粒子的运动积分到 NVE 系综中

fix nvt/body

ditto for NVT ensemble NVT 系综也同上

fix npt/body

ditto for NPT ensemble NPT 系综也同上

fix nph/body

ditto for NPH ensemble NPH 系综也同上

compute body/local 计算主体/本地

store sub-particle attributes of a body particle
存储体粒子的子粒子属性

compute temp/body 计算温度/身体

compute temperature of body particles
计算体粒子的温度

dump local

output sub-particle attributes of a body particle
输出体粒子的子粒子属性

dump image

output body particle attributes as an image
将体粒子属性输出为图像

体样式​​​​​​​n粒子特性:

n粒子体样式将体粒子表示为具有可变数量 N 的子粒子的刚体。它作为体粒子的普通原型示例提供,尽管如上所述, fix rigid命令已经复制了其功能。

此体样式的atom_style体命令需要两个附加参数:

atom_style body nparticle Nmin Nmax
Nmin = minimum # of sub-particles in any body in the system
Nmax = maximum # of sub-particles in any body in the system

Nmin 和 Nmax 参数用于限制每个粒子内部使用的数据结构的大小。

read_data ​​​​​​​命令读取此正文样式的数据文件时,必须为数据文件的正文部分中的每个条目提供以下信息:

atom-ID 1 M
N
ixx iyy izz ixy ixz iyz
x1 y1 z1
...
xN yN zN

其中M = 6 + 3*N,N是体粒子中子粒子的数量。

整数线具有单个值 N。浮点线列出 6 个惯性矩,后跟 N 个子粒子(x1 到 zN)的坐标(作为 3N 个值)。这些值可以在任意多行中列出;有关详细信息,请参阅 read_data命令。

6 个惯性矩 (ixx,iyy,izz,ixy,ixz,iyz) 应与刚体当前围绕质心的方向一致。这些值是相对于模拟框 XYZ 轴的,而不是相对于刚体本身的主轴的。 LAMMPS 在内部执行后一种计算。

每个子粒子的坐标被指定为其距体粒子质心的 x,y,z 位移。粒子的质心位置由数据文件“原子”部分中的 x、y、z 值指定,物体粒子的总质量也是如此。

请注意,如果数据文件定义了通用三斜模拟框,则这些子粒子位移与方向相关,并且如上所述,应反映通用三斜框内体粒子的方向。

 pair_style body/nparticle命令可与此体样式一起使用来计算body/body 和 body/non-body​​​​​​​相互作用。

圆形/多边形体样式的特性:

圆形/多边形主体样式将主体粒子表示为具有可变数量的 N 个顶点的 2d 多边形。该样式只能用于2d模型;请参阅边界命令。请参阅pair_style body/rounded/polygon 页面,了解两个顶点带有圆角的正方形的图。还可以指定 N = 1(circle​​​​​​​)和 N = 2(rod with rounded ends​​​​​​​)的特殊情况。

这种主体样式的一种用途是用于二维离散元素模型,如 Fraige.​​​​​​​ 中所述。

与体样式 narticle 类似,此体样式的atom_style body 命令需要两个附加参数:

atom_style body rounded/polygon Nmin Nmax
Nmin = minimum # of vertices in any body in the system
Nmax = maximum # of vertices in any body in the system

Nmin 和 Nmax 参数用于限制每个粒子内部使用的数据结构的大小。

 read_data命令读取此正文样式的数据文件时,必须为数据文件的正文部分中的每个正文提供以下信息:

atom-ID 1 M
N
ixx iyy izz ixy ixz iyz
x1 y1 z1
...
xN yN zN
diameter

其中 M = 6 + 3*N + 1,N 是主体粒子的顶点数。

整数线具有单个值 N。浮点线列出 6 个惯性矩,后跟 N 个顶点的坐标(x1 到 zN)作为 3N 个值(每个值 z = 0.0),后跟一个直径值 = 围绕每个顶点的圆的圆直径。每个主体粒子的直径值可以不同。这些浮点值可以在任意多行中列出;有关详细信息,请参阅read_data ​​​​​​​命令。

注:重要的是,每个多边形体粒子的顶点按其周边的顺序列出,以便可以推断出边。 LAMMPS 不会检查情况是否如此。

6 个惯性矩 (ixx,iyy,izz,ixy,ixz,iyz) 应与刚体当前围绕质心的方向一致。这些值是相对于模拟框 XYZ 轴的,而不是相对于刚体本身的主轴的。 LAMMPS 在内部执行后一种计算。

每个顶点的坐标被指定为其距主体粒子质心的 x、y、z 位移。粒子的质心位置由数据文件“原子”部分中的 x、y、z 值指定。

例如,以下信息将指定一个方形粒子,其边长为 sqrt(2),圆角直径为 1.0。正方形的方向与 xy 坐标轴对齐,这与 6 个惯性矩一致:ixx iyy izz ixy ixz iyz = 1 1 4 0 0 0。请注意,在 2D 模拟中只有 Izz 很重要。

3 1 19
4
1 1 4 0 0 0
-0.7071 -0.7071 0
-0.7071 0.7071 0
0.7071 0.7071 0
0.7071 -0.7071 0
1.0

一根二维棒,其长度为 4.0,质量为 1.0,两端被直径为 0.5 的圆磨圆,指定如下:

1 1 13
2
1 1 1.33333 0 0 0
-2 0 0
2 0 0
0.5

直径为 3.0、质量为 1.0 的圆盘指定如下:

1 1 10
1
1 1 4.5 0 0 0
0 0 0
3.0

请注意,如果数据文件定义了通用三斜模拟框,则这些多边形顶点位移与方向相关,并且如上所述,应反映通用三斜框内体粒子的方向。

 pair_style body/rounded/polygon命令可与此体样式一起使用来计算主体/主体交互。 fix wall/body/polygon 命令可与此主体样式一起使用来计算体粒子与墙的相互作用。

圆形/多面体体样式的特性:

圆形/多面体主体样式将主体粒子表示为具有可变数量的 N 个顶点、E 边和 F 面的 3d 多面体。该样式只能用于3d模型;请参阅边界命令。请参阅“pair_style body/rounded/polygon”页面,了解两个顶点带有圆角的二维正方形的图。一个 3d 立方体在 8 个顶点和 12 个圆边上有圆球体,也是类似的。还可以指定 N = 1(球体)和 N = 2(带有圆端的杆)的特殊情况。

此主体样式适用于 3D 离散元素模型,如 Wang中所述。

与圆形/多边形主体样式类似,此主体样式的atom_style body命令需要两个附加参数:

atom_style body rounded/polyhedron Nmin Nmax
Nmin = minimum # of vertices in any body in the system
Nmax = maximum # of vertices in any body in the system

Nmin 和 Nmax 参数用于限制每个粒子内部使用的数据结构的大小。

当 read_data 命令读取此正文样式的数据文件时,必须为数据文件的正文部分中的每个条目提供以下信息:

atom-ID 3 M
N E F
ixx iyy izz ixy ixz iyz
x1 y1 z1
...
xN yN zN
0 1
1 2
2 3
...
0 1 2 -1
0 2 3 -1
...
1 2 3 4
diameter

其中 M = 6 + 3*N + 2*E + 4*F + 1,N 是主体粒子中的顶点数,E = 边数,F = 面数。对于 N = 1 或 2,格式更简单。 E 和 F 被忽略,并且没有列出边或面,因此 M = 6 + 3*N + 1。

整数线具有三个值:顶点数 (N)、边数 (E) 和面数 (F)。浮点线列出 6 个惯性矩,后跟 N 个顶点(x1 到 zN)的坐标(作为 3N 个值),后跟与 E 边的端点相对应的 2E 个顶点索引,然后是 4*F 顶点索引定义 F 面。最后一个值是直径值 = 围绕每个顶点的球体的圆直径。每个主体粒子的直径值可以不同。这些浮点值可以在任意多行中列出;有关详细信息,请参阅 read_data 命令。

请注意,顶点编号从 0 到 N-1(含)。每条边中 2 个顶点的顺序并不重要。面可以是三角形或四边形。在这两种情况下都必须指定 4 个顶点。对于三角形,第四个顶点是 -1。每个三角形或四边形面内的 4 个顶点应按右手定则排序,以便面的法向量从质心向外指向。对于面数超过4个顶点的多面体,应将复杂面拆分为多个简单面,每个简单面都是三角形或四边形。

注:如果一个面是四边形,那么它的 4 个顶点必须共面。 LAMMPS 不会检查情况是否如此。如果您有一个非平面的多面体四边形面(例如,顶点已随机移位的立方体),那么您应该将单个四边形面表示为两个三角形面。

6 个惯性矩 (ixx,iyy,izz,ixy,ixz,iyz) 应与刚体当前围绕质心的方向一致。这些值是相对于模拟框 XYZ 轴的,而不是相对于刚体本身的主轴的。 LAMMPS 在内部执行后一种计算。

每个顶点的坐标被指定为其距体粒子质心的 x、y、z 位移。粒子的质心位置由数据文件“原子”部分中的 x、y、z 值指定。

例如,以下信息将指定边长为 2.0、圆角直径为 0.5 的立方粒子。立方体的方向与 xyz 坐标轴对齐,这与 6 个惯性矩一致:ixx iyy izz ixy ixz iyz = 0.667 0.667 0.667 0 0 0。

1 3 79
8 12 6
0.667 0.667 0.667 0 0 0
1 1 1
1 -1 1
-1 -1 1
-1 1 1
1 1 -1
1 -1 -1
-1 -1 -1
-1 1 -1
0 1
1 2
2 3
3 0
4 5
5 6
6 7
7 4
0 4
1 5
2 6
3 7
0 1 2 3
4 5 6 7
0 1 5 4
1 2 6 5
2 3 7 6
3 0 4 7
0.5

3D 的一根杆,长度为 4.0,质量为 1.0,两端带有直径为 0.5 的圆,指定如下:

1 3 13
2 1 1
0 1.33333 1.33333 0 0 0
-2 0 0
2 0 0
0.5

直径为 3.0、质量为 1.0 的球体指定如下:

1 3 10
1 1 1
0.9 0.9 0.9 0 0 0
0 0 0
3.0

杆或球体的边和面的数量必须列出,但会被忽略。
请注意,如果数据文件定义了一般三斜模拟框,则这些多面体顶点位移与方向相关,并且如上所述,应反映一般三斜框内体粒子的方向。

pair_style body/rounded/polhedron命令可与此主体样式一起使用来计算主体/主体交互。  fix wall/body/polyhedron命令可与此体样式一起使用来计算主体粒子与墙壁的相互作用。

所有体样式的输出特性:

对于计算主体/本地和转储本地命令,其页面上描述的所有 3 种主体样式都会为体粒子中的 N 个(子粒子)顶点中的每一个生成一个数据。该数据有 3 个值:

1 = x position of vertex (or sub-particle)
2 = y position of vertex
3 = z position of vertex

这些值是模拟域内顶点的当前位置,而不是距体粒子本身质心 (COM) 的位移。这些值是使用当前 COM 和体粒子的方向计算的。

 dump image 命令及其 body 关键字可用于渲染体粒子。​​​​​​​

对于 n粒子体样式,每个体都被绘制为球体的集合,每个球体对应一个子粒子。每个球体的大小由 body 关键字的 bflag1 参数确定。 bflag2 参数被忽略。
对于圆形/多边形体样式,每个主体都绘制为具有 N 条线段的多边形。对于圆形/多面体样式,每个主体的每个面都绘制为具有 N 条线段的多边形。每条线段的绘制直径由 body 关键字的 bflag1 参数确定。 bflag2 参数被忽略。
请注意,对于圆角/多边形和圆角/多面体样式,线段是在顶点对之间绘制的。根据线段的直径,这可能与通过
 pair_style rounded/polygon 或 pair_style rounded/polyhedron命令计算的实体的物理范围略有不同。从概念上讲,对样式通过与放置在每个顶点位置上的指定直径的有限尺寸球体相切的线或平面来定义 2d 或 3d 实体的表面。

参考文献:

(Fraige) F. Y. Fraige, P. A. Langston, A. J. Matchett, J. Dodds, Particuology, 6, 455 (2008).

(Wang) J. Wang, H. S. Yu, P. A. Langston, F. Y. Fraige, Granular Matter, 13, 1 (2011).

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/661791.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TCP/IP和HTTP协议

TCP/IP OSI 七层模型在提出时的出发点是基于标准化的考虑,而没有考虑到具体的市场需求,使得该模型结构复杂,部分功能冗余,因而完全实现 OSI 参考模型的系统不多。而 TCP/IP 参考模型直接面向市场需求,实现起来也比较…

java:错误:不支持发行版本

你在运行的时候是否遇见过这样的问题: 有时候新建一个Java项目后,运行起来就会提示这样的错误。主要原因是因为项目使用的Java版本和安装的Java版本不符合 ,在这里总结一下解决方法: 首先点击file的project 把Java编译器也设置成 一样的版本 即可解决问…

计算机毕业设计python_django宠物领养系统z6rfy

本宠物领养系统主要包括两大功能模块,即管理员模块、用户模块。下面将对这两个大功能进行具体功能需求分析。 (1)管理员:管理员登录后主要功能包括个人中心、用户管理、送养宠物管理、地区类型管理、失信黑名单管理、申请领养管理…

c#数据库: 4.修改学生成绩

将4年级的学生成绩全部修改为100分,。修改前的学生信息表如图所示: using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks;namespace StudentUpdate {internal class Program{s…

麒麟服务器操作系统SP3如何设置GRUB密码

原文链接:麒麟服务器操作系统SP3如何设置GRUB密码 Hello,大家好啊!为了增强系统的安全性,设置GRUB(GNU GRand Unified Bootloader)密码是一个非常有效的方法。这可以防止未经授权的用户修改启动参数或使用恢…

面试二十四、继承多态

一、继承的本质和原理 组合(Composition): 组合是一种"有一个"的关系,表示一个类包含另一个类的对象作为其成员。这意味着一个类的对象包含另一个类的对象作为其一部分。组合关系通常表示强关联,被包含的对象…

idea No versioned directories to update were found

idea如何配置svn以及svn安装时需要注意什么 下载地址:https://112-28-188-82.pd1.123pan.cn:30443/download-cdn.123pan.cn/batch-download/123-820/3ec9445a/1626635-0/3ec9445a25ba365a23fc433ce0c16f34?v5&t1714358478&s171435847804276f7d9249382ba512…

翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习二

合集 ChatGPT 通过图形化的方式来理解 Transformer 架构 翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习一翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习二翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深…

PHP定时任务框架taskPHP3.0学习记录7宝塔面板手动可以执行自动无法执行问题排查及解决方案(sh脚本、删除超过特定天数的日志文件、kill -9)

PHP定时任务框架taskPHP3.0学习记录 PHP定时任务框架taskPHP3.0学习记录1(TaskPHP、执行任务类的实操代码实例)PHP定时任务框架taskPHP3.0学习记录2(环境要求、配置Redis、crontab执行时间语法、命令操作以及Screen全屏窗口管理器&#xff0…

算法:双指针题目练习

目录 题目一:移动零 题目二:复写零 题目三:快乐数 题目四:盛最多水的容器 题目五:有效三角形的个数 题目六:和为s的两个数字(剑指offer) 题目七:三数之和 题目八:四数之和 常…

线上线下收银一体化,新零售POS系统引领连锁门店数字化转型-亿发

在市场竞争日益激烈的背景下,没有哪个商家能够永远屹立不倒。随着互联网技术的快速发展,传统的线下门店面临着来自电商和新零售的新型挑战。实体零售和传统电商都需要进行变革,都需要实现线上线下的融合。 传统零售在客户消费之后就与商家失…

【Web】2024XYCTF题解(全)

目录 ezhttp ezmd5 warm up ezMake ez?Make εZ?мKε? 我是一个复读机 牢牢记住,逝者为大 ezRCE ezPOP ezSerialize ezClass pharme 连连看到底是连连什么看 ezLFI login give me flag baby_unserialize ezhttp 访问./robots.txt 继…