【LAMMPS学习】八、基础知识(5.4)黏结粒子(BMP)模型

2024-05-01 08:52

本文主要是介绍【LAMMPS学习】八、基础知识(5.4)黏结粒子(BMP)模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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.体粒子

8.5.4.黏合粒子(BMP)模型

BPM 包实现了可用于模拟介观固体的粘合粒子模型。固体被构造为粒子的集合,每个粒子代表一个比原子尺度大得多的粗粒度空间区域。然后,固体区域内的颗粒通过键网络连接以提供固体弹性。

与分子动力学中的传统键不同,不同键的平衡键长可能不同。 Bonds 存储参考状态。这包括将平衡长度设置为等于两个粒子之间的初始距离,但也可以包括有关旋转模型的键方向的数据。这会产生无压力的初始状态。此外,在大应变下键会断裂,产生断裂。 example/bpm 目录包含示例输入脚本,用于模拟受影响板的破碎和扩展弹性体的浇注。


可以使用read data或create bonds命令来创建黏结。或者,带有键的分子模板可以与 fix deposit或 fix pour t​​​​​​一起使用以创建固体颗粒。

在此实现中,债券在第一次模拟运行的设置中首次计算时存储其参考状态。然后,数据将在运行命令中保留,并写入 binary restart files文件,以便重新启动系统不会重置绑定的参考状态。在运行中途创建的键(例如通过使用 fix pour浇注颗粒而创建的键)会在该时间步上初始化。


目前,BPM 包中包含两种类型的键。第一种键合方式,bond bpm/spring,仅应用成对的中心体力。点粒子必须具有bond atom style,并且可以被视为弹簧网络中的节点。

第二种粘合方式, bond bpm/rotational,可以解决由于粒子的旋转或位移而引起的粘合剪切、弯曲和扭曲所产生的切向力和扭矩。颗粒与granular package, atom style sphere类似。然而,它们还必须跟踪粒子的当前方向并存储键,因此使用 bpm/sphere atom style。这还需要一个独特的积分器fix nve/bpm/sphere,它对方向进行数值积分,类似于fix nve/asphere.

除了  bond styles之外,还添加了新的 pair style对  pair bpm/spring来配合 bpm/spring Bond 样式。这种对类型只是胡克斥力,其速度阻尼与其姊妹键类型相似。


可以使用标准 LAMMPS 命令的组合来输出键合数据。可以使用compute property/local命令生成键合原子的ID列表。可以使用compute bond/local 命令计算键的各种属性。此命令允许访问保存到债券历史记录中的数据,例如债券的参考长度。有关债券历史数据的更多信息,请参阅特定 BPM 债券样式的文档页面。最后,可以使用  dump local 命令输出该数据。由于可能会从同一计算输出许多列,因此可以使用dump modify colname选项来提供更有用的列名称。此过程的示例位于 /examples/bpm/pour/ 中。外部软件(例如 OVITO)可以读取这些转储文件以呈现键合数据。


由于邻居列表构建之间的绑定可能会被破坏,因此special_bonds命令对于BPM绑定样式的工作方式有所不同。有两种可能的设置决定了键合粒子之间的配对相互作用如何发挥作用。首先,可以用键力叠加对力,使得所有键合粒子也感受到对相互作用。这可以通过将所有 bpm bond 样式中存在的overlay/pair 关键字设置为 yes 来完成,并且需要使用以下特殊的 bond 设置

special_bonds lj/coul 1 1 1

或者,可以关闭键合粒子之间的所有配对相互作用。与bond quartic不同,这不是通过在键计算期间减去对力来完成的,而是通过动态更新特殊键列表来完成。这是 BPM 债券样式的默认行为,通过在债券断裂时更新 1-2 特殊债券列表来完成。为此,LAMMPS 需要 newton 键关闭,以便所有包含原子的处理器都知道键何时断裂。此外,必须使用以下特殊键设置

special_bonds lj 0 1 1 coul 1 1 1

这些设置实现两个目标。首先,他们关闭 1-3 和 1-4 特殊债券列表,目前 BPM 不支持这些列表。由于 BPM 通常具有密集的债券网络,因此生成 1-3 和 1-4 特殊债券列表的成本很高。通过将 1-2 个键的 lj 权重设置为零,可以关闭成对相互作用。尽管 BPM 模型中没有费用,但为 1-2 个绑定设置非零的 coul 权重可确保所有绑定的邻居仍包含在邻居列表中,以防绑定在邻居列表构建之间中断。如果在模拟运行期间通过将break关键字设置为no来禁用键断裂,则可以使用1-2个键的零库权重来从邻居列表构建中排除键合原子

这对于后处理或确定不同键合粒子之间的配对相互作用特性非常有用。

为了监控系统中的键断裂,所有 BPM 键样式都能够使用 dump local 命令记录键断裂实例并输出。由于人们可能经常输出损坏的键的列表以及它们损坏的时间,因此 dump modify 选项标头 no 可能有助于避免重复打印转储文件的标头。此过程的示例可在 /examples/bpm/impact/ 中找到。此外,可以使用 compute nbond/atom来计算每个原子当前的键数。

有关详细信息,请参阅有关断裂键的 Howto 。

 

虽然 LAMMPS 具有许多用于创建和删除绑定的实用程序,但目前只有以下实用程序与 BPM 绑定样式兼容:

  • create_bonds 

  • delete_bonds

  • fix bond/create 

  • fix bond/break 

  • fix bond/swap 

a87eb2115cf646de9da8449063b34030.png

 

 

这篇关于【LAMMPS学习】八、基础知识(5.4)黏结粒子(BMP)模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/951247

相关文章

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Python实现PDF与多种图片格式之间互转(PNG, JPG, BMP, EMF, SVG)

《Python实现PDF与多种图片格式之间互转(PNG,JPG,BMP,EMF,SVG)》PDF和图片是我们日常生活和工作中常用的文件格式,有时候,我们可能需要将PDF和图片进行格式互转来满足... 目录一、介绍二、安装python库三、Python实现多种图片格式转PDF1、单张图片转换为PDF2、多张图

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首