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

news2024/11/19 11:30:27

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.coloradmin.cn/o/1636904.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言:数据结构(双向链表)

目录 1、双向链表的结构2、顺序表和双向链表的优缺点分析3、双向链表的实现 1、双向链表的结构 注意:这⾥的“带头“跟前面我们说的“头节点”是两个概念,实际前面的在单链表阶段称呼不严谨,但是为了更好的理解就直接称为单链表的头节点。 带…

上位机开发PyQt(五)【Qt Designer】

PyQt5提供了一个可视化图形工具Qt Designer,文件名为designer.exe。如果在电脑上找不到,可以用如下命令进行安装: pip install PyQt5-tools 安装完毕后,可在如下目录找到此工具软件: %LOCALAPPDATA%\Programs\Python\…

2024人工智能“百模大战“,竞争格局分析

中国“百模大战”竞争格局分析 大模型是一个重资源禀赋和高进入门槛的赛道,“百模大战”是一场重投入和高消耗的持久战役。“百模大战”的上半场是资源和技术的碰撞,入局企业需要长久的资源支持获得高密度的人才、高质量的数据和大规模的算力&#xff0c…

Vue.js课后练习(登录注册和大小比较)

第一题 请编写登录页面和注册页面&#xff0c;通过动态组件实现动态切换页面中显示的组件&#xff0c;效果如图1和图2所示。 图1 登录页面 图2 注册页面 代码&#xff1a; my.vue代码: <template>登录 </template><script setup> </script><st…

再谈有效地访问Github

文章目录 1. 知识回顾2. 问题描述3. 问题解决3.1 Mac系统3.2 Windows系统4. 内容总结1. 知识回顾 我们在之前的内容中介绍过如何有效地访问Github。如果大家忘记的话可以点击这里查看。之前的内容主要偏重于问题的分析和解决的思路,有些朋友看了后还是不清楚如何解决问题。 …

半监督节点分类:标签传播和消息传递

基础概念回顾 传统图机器学习的特征工程——节点层面&#xff0c;连接层面&#xff0c;全图层面 节点层面&#xff1a;信用卡欺诈 连接层面&#xff1a;推荐可能认识的人 全图层面&#xff1a;预测分子结构 半监督节点分类 半监督节点分类&#xff1a;用已知标签节点预测未…

【Java EE】多线程(二)Thread 类与常用方法

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更…

低代码工业组态数字孪生平台

2024 两会热词「新质生产力」凭借其主要特征——高科技、高效能及高质量&#xff0c;引发各界关注。在探索构建新质生产力的重要议题中&#xff0c;数据要素被视为土地、劳动力、资本和技术之后的第五大生产要素。数据要素赋能新质生产力发展主要体现为&#xff1a;生产力由生产…

linux安装Redis 7.2.4笔记

一.保姆级安装 1.下载Redis 7.2.4安装包 sudo wget https://download.redis.io/releases/redis-7.2.4.tar.gz2.解压&#xff0c;可以指定 sudo tar -zvxf redis-7.2.4.tar.gz 3.检测并安装 GCC 编译器&#xff1a; yum 是基于 Red Hat 的 Linux 发行版&#xff08;如 CentOS、…

问卷新项目新玩法,一个2-5元,零基础,日赚50-200元零花钱,适合宝妈

问卷调研是许多机构或企业为了获取大数据技术结论&#xff0c;进行抽样调查&#xff0c;进而针对特定人群进行付费调查个人行为。问卷调查内容通常涉及新产品&#xff0c;例如通过比较不同类别的商品&#xff0c;展示某些产品的优势和劣势。我们都喜欢某款手机&#xff0c;究竟…

Docker在linux安装步骤超详细

官网 Install Docker Engine on CentOS | Docker Docs yum -y install gcc yum -y install gcc-c 安装工具 sudo yum install -y yum-utils 设置国内的镜像 yum-config-manager \ --add-repo \ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yu…

【配置】Docker搭建JSON在线解析网站

云服务器打开端口8787 连接上docker运行 docker run -id --name jsonhero -p 8787:8787 -e SESSION_SECRETabc123 henryclw/jsonhero-webhttp://ip:8787访问 Github&#xff1a;地址

AutoCAD 2025 for mac/win:设计未来,触手可及

在数字化时代&#xff0c;设计不再局限于纸笔之间&#xff0c;而是跃然于屏幕之上&#xff0c;AutoCAD 2025正是这一变革的杰出代表。无论是Mac用户还是Windows用户&#xff0c;AutoCAD 2025都以其卓越的性能和出色的用户体验&#xff0c;成为了CAD设计绘图领域的佼佼者。 Aut…

Linux修改文件权限命令 chmod

【例子引入】 以下面命令为例&#xff1a; chmod 777 Random.py 当写入下面名为Random.py的代码后&#xff1a; 如果直接运行&#xff0c;会显示权限不够 当输入 chmod 777 Random.py 更改权限后&#xff0c;才能够正常运行 在终端中输入 这条命令是关于Linux或Unix-like系…

一周学会Django5 Python Web开发 - Django5 ORM数据库事务

锋哥原创的Python Web开发 Django5视频教程&#xff1a; 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计50条视频&#xff0c;包括&#xff1a;2024版 Django5 Python we…

Linux基础part-3

1、Linux一般系统查看类命令 【stat】命令 格式&#xff1a;stat [option] file显示文件的元数据信息&#xff0c;包括文件的权限、拥有者、大小、修改时间等。eg&#xff1a;stat myfile.txt 【file】命令 用于确定文件类型格式&#xff1a;file [option] filefile myfile.t…

逻辑漏洞:初识水平越权与垂直越权

目录 1、什么是越权漏洞呢&#xff1f; 2、水平越权 3、垂直越权 4、burpsuite autorize插件 最近在学习逻辑漏洞的相关知识和技能&#xff0c;这里pikachu靶场作为演示进行学习一下&#xff1a; pikachu靶场&#xff1a;GitHub - zhuifengshaonianhanlu/pikachu: 一个好玩…

【Web】2024XYCTF题解(全)

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

运行DeepSORT_YOLOv5_Pytorch时出现的问题

文章目录 前言问题1&#xff1a;Loaderyaml.FullLoader问题2&#xff1a;utils. -> yolov5.utils.问题3&#xff1a;np.float -> float问题4&#xff1a;np.int -> int问题5&#xff1a;ImportError: cannot import name time_synchronized from yolov5.utils.torch_u…