【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.rhkb.cn/news/317145.html

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

相关文章

Go 学习笔记

Go 学习相关笔记 Go 官方的教学文档顺序不怎么友好,这里根据我自己的学习曲线来记录文档的查看顺序 基础知识 文档预备 新手先要看 Go 的模块管理介绍,这样才知道基础 Go 怎么导入外部包和进行本地的包管理 https://go.dev/doc/modules/managing-dep…

【快速入门】数据库的增删改查与结构讲解

文章的操作都是基于小皮php study的MySQL5.7.26进行演示 what 数据库是能长期存储在计算机内,有组织的,可共享的大量数据的集合。数据库中的数据按照一定的数据模型存储,具有较小的冗余性,较高的独立性和易扩展性,并为…

本地CPU搭建知识库大模型来体验学习Prompt Engineering/RAG/Agent/Text2sql

目录 1.环境 2.效果 3.概念解析 4.架构图 5. AI畅想 6.涉及到的技术方案 7. db-gpt的提示词 1.环境 基于一台16c 32G的纯CPU的机器来搭建 纯docker 打造 2.效果 3.概念解析 Prompt Engineering : 提示词工程 RAG: 检索增强生成; …

CTFHub-Web-SQL注入

CTFHub-SQL注入-WP 1.整数型注入 1.题目说输入1,先将1输入查看结果 2.接着输入4-1,发现输出的结果为4-1,判定存在整数型注入 3.查询字段数,出现了回显,判断这里的字段数为2 1 order by 24.判断注入点在2的位置&…

复杂度(3)

目录 1.二分查找的时间复杂度 2.斐波那契数列及其优化 3.空间复杂度 1.二分查找的时间复杂度 我们熟知的二分查找绝对是一种很厉害的算法,因为这个算法每进行一次都会砍掉一半的数据,相当于是指数级增长,假设我们刚开始的时候数据的个数是…

MS8241/MS8242高速、高输出电流、电压反馈放大器

产品简述 MS8241/MS8242 是一颗高速的电压反馈放大器,具有电流 反馈放大器的高速转换特性,可以应用在所有传统的电压反馈运 放应用方案中。 MS8241/MS8242 能够稳定工作在低增益环路下 (增益为 2 和 -1 ),仅消耗…

Java项目:基于SSM框架实现的实践项目管理系统(ssm+B/S架构+源码+数据库+毕业论文+开题报告)

一、项目简介 本项目是一套基于SSM框架实现的实践项目管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff…

【算法】【贪心算法】【leetcode】870. 优势洗牌

题目地址:https://leetcode.cn/problems/advantage-shuffle/description/ 题目描述: 给定两个长度相等的数组 nums1 和 nums2,nums1 相对于 nums2 的优势可以用满足 nums1[i] > nums2[i] 的索引 i 的数目来描述。 返回 nums1 的任意排列&…

HTML5(1)

目录 一.HTML5(超文本&#xff08;链接&#xff09;标记&#xff08;标签<>&#xff09;语言) 1.开发环境&#xff08;写代码&#xff0c;看效果&#xff09; 2.vscode 使用 3.谷歌浏览器使用 4.标签语法 5.HTML基本骨架&#xff08;网页模板&#xff09; 6.标签的…

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

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

透视天气:数据可视化的新视角

数据可视化在天气方面能够为我们带来极大的帮助。天气是人类生活中一个重要的因素&#xff0c;对于农业、交通、航空、能源等各个领域都有着重要的影响。而数据可视化技术通过将复杂的天气数据转化为直观、易懂的图表、图像或地图等形式&#xff0c;为我们提供了更深入、更全面…

接口测试 - postman

文章目录 一、接口1.接口的类型2. 接口测试3. 接口测试流程4. 接口测试用例1. 测试用例单接口测试用例-登录案例 二、HTTP协议1. HTTP请求2. HTTP响应 三、postman1. 界面导航说明导入 导出用例集 Get请求和Post请求的区别:2.postman环境变量和全局变量3. postman 请求前置脚本…

ECharts在网页中添加可视化图标-在网页中添加交互图表+option模块案列详解

一、引言 ECharts 是一个使用 JavaScript 编写的开源可视化库&#xff0c;它可以在浏览器中生成交互式的图表。无论是折线图、柱状图、散点图还是饼图&#xff0c;ECharts 都能轻松应对。本文将带领大家了解如何在网页中添加 ECharts 可视化图标。 本章可以直接跳到第五点完整…

【Spring基础】关于Spring IoC的那些事

文章目录 一、如何理解IoC1.1 Spring IOC 概述1.2 IoC 是什么 二、Ioc 配置的方式2.1 xml 配置2.2 Java 配置2.3 注解配置 三、依赖注入的方式3.1 setter方式3.2 构造函数3.3 注解注入 小结 一、如何理解IoC 1.1 Spring IOC 概述 控制反转 IoC(Inversion of Control)是一种设计…

2024数学建模时间汇总与竞赛攻略

目录 2024数学建模汇总&#xff08;时间、报名费、获奖率、竞赛级别、是否可跨校&#xff09; 中国高校大数据挑战赛 “华数杯”国际大学生数学建模竞赛 美国大学生数学建模竞赛&#xff08;美赛&#xff09; 数学中国&#xff08;认证杯&#xff09;数学建模网络挑战赛 …

解决RuntimeError: cuDNN error: CUDNN_STATUS_EXECUTION_FAILED

下图说明在一瞬间我的GPU就被占满了 我的模型在训练过程中遇到了 CUDA 相关的错误&#xff0c;这是由于 GPU资源问题或内存不足导致的。这类错误有时候也可能是由于某些硬件兼容性问题或驱动程序问题引起的。 为了解决这个问题&#xff0c;可以尝试以下几个解决方案&#xff1a…

【Godot4.2】有序和无序列表函数库 - myList

概述 在打印输出或其他地方可能需要构建有序或无序列表。本质就是构造和维护一个纯文本数组。并用格式化文本形式&#xff0c;输出带序号或前缀字符的多行文本。 为此我专门设计了一个类myList&#xff0c;来完成这项任务。 代码 以下是myList类的完整代码&#xff1a; # …

模型剪枝-Network Slimming算法分析

代码见文末 论文地址&#xff1a;Learning Efficient Convolutional Networks through Network Slimming ICCV 2017 Open Access Repository 1.概述 由于边缘设备的限制&#xff0c;在模型的部署中经常受到模型大小、运行内存、计算量的限制。之前的方法要么只能解决其中一个…

spark实验求TOP值

实验1&#xff1a;求TOP值 已知存在两个文本文件&#xff0c;file1.txt和file2.txt&#xff0c;内容分别如下&#xff1a; file1.txt 1,1768,50,155 2,1218, 600,211 3,2239,788,242 4,3101,28,599 5,4899,290,129 6,3110,54,1201 7,4436,259,877 8,2369,7890,27 fil…

合泰杯(HT32F52352)RTC的应用(计时)--->掉电不丢失VBAT(代码已经实现附带源码)

摘要 在HT32F52352合泰单片机开发中&#xff0c;rtc在网上还是挺少人应用的&#xff0c;找了很久没什么资料&#xff0c;现在我根据手册和官方的代码进行配置理解。 RTC在嵌入式单片机中是一个很重要的应用资源。 记录事件时间戳&#xff1a;RTC可以记录事件发生的精确时间&…