【LAMMPS学习】八、基础知识(2.2)类型标签

2024-04-12 21:28

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

8. 基础知识

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

8.1.通用基础知识

8.2. 设置入门

8.2.1.二维模拟

8.2.2.类型标签

2022 年 9 月 15 日版本中的新增功能。

LAMMPS 中的每个原子都有一个关联的数字原子类型。类似地,每个 bond, angle, dihedral, 和 improper都被指定为键类型、角类型等。

这些类型的主要用途是将势(力场)参数映射到原子、 bond, angle, dihedral, 和 improper的相互作用。

默认情况下,类型值以 1 到 Ntypes 之间的整数形式输入,无论它们出现在 LAMMPS 输入或输出文件中。每次交互的 Ntype 总数在创建模拟框时被“锁定”。

LAMMPS 最近添加的一项功能是使用字符串(称为类型标签)作为替代方案。使用类型标签代替数字类型在各种场景中都具有优势。例如,类型标签可以使输入更具可读性和通用性(即,可以通过为类型分配不同数值的不同系统使用 include 命令。这种通用性也适用于其他输入,例如由 read_data 读取的数据文件或由 read_data 读取的分子模板文件分子命令。请参阅下面的列表,了解可以以不同方式使用类型标签的其他命令。

LAMMPS 将在内部继续使用数字类型,这意味着许多以前的限制仍然适用。例如,在创建模拟框时,类型的总数被锁定,并且即使没有被任何交互使用,也必须提供每种类型的潜在参数。

所有类型种类(原子类型、键类型等)的类型标签集合存储为“标签映射”,它只是数字类型及其关联类型标签的列表。在类型种类中,每个类型标签必须是唯一的。它只能分配给一种数字类型。要在给定类型种类的数据文件中读取和写入类型标签,所有关联的数值类型都需要分配一个类型标签。可以使用 labelmap write 命令保存部分映射,并使用 include 命令读回。

有效的类型标签可以包含大多数 ASCII 字符,但不能以数字、“#”或“*”开头。此外,标签不得包含空格字符。在 LAMMPS 输入中使用 labelmap 命令时,如果类型标签中出现某些字符,例如单引号 (') 或双引号 (") 或 '#' 字符,则标签必须放入双引号、单引号、或三引号(“””)。三引号允许使用最通用的类​​型标签字符串,但它们需要有前导和尾随空格。定义类型标签时,空格将被忽略。例子:

labelmap angle 1 """ C1'-C2"-C3# """

此命令会将字符串 `C1'-C2"-C3#` 映射到角度类型 1。

有两种定义标签映射的方法。一种是通过 labelmap 命令。另一种是通过 read_data 命令。数据文件可以包含原子类型标签、键类型标签等部分,这些部分将类型标签分配给数字类型。可以通过  write_data 命令将标签映射写入数据文件。该映射还可以通过 write_restart 和 read_restart 命令写入重新启动文件或从重新启动文件中读取。

在 LAMMPS 输入或输出中使用类型标签 

许多采用数字类型作为参数的 LAMMPS 输入脚本命令可以改用关联的类型标签。如果没有为特定数字类型定义类型标签,则只能使用其数字类型。

此示例为原子类型分配标签,然后使用类型标签重新定义对系数。

pair_coeff 1 2 1.0 1.0              # numeric types
labelmap atom 1 C 2 H
pair_coeff C H 1.0 1.0              # type labels

向各种命令添加对类型标签的支持是一个正在进行的项目。如果输入脚本命令(或命令读取的文件中的部分)允许用类型标签替换数字类型参数,则该命令的文档页面中将明确提及。

作为临时措施,输入脚本命令可以利用变量以及如何在输入处理过程中扩展变量。变量可以使用将类型标签字符串转换为当前标签映射中定义的各自数字的函数。详细信息请参见变量命令。

例如,如果尚不支持类型标签,则pair_coeff命令可以与类型标签一起使用,无论是使用显式变量命令还是pair_coeff命令中使用的隐式变量。

labelmap atom 1 C 2 H
variable atom1 equal label2type(atom,C)
variable atom2 equal label2type(atom,H)
pair_coeff ${atom1} ${atom2} 1.0 1.0
labelmap atom 1 C 2 H
pair_coeff $(label2type(atom,C)) $(label2type(atom,H)) 80.0 1.2

可以使用标签类型的命令 

任何涉及读取多个数据文件、分子模板或两者组合的工作流程都可以通过使用类型标签而不是数字类型来简化,因为类型会在文件之间自动同步。使用类型标签时,为fix bond/react 创建模拟就绪反应模板要简单得多,并且生成的模板可以在多个模拟或不同系统中无需修改即可使用。

fb0790c10a094df09aad28dac816ac7a.png

这篇关于【LAMMPS学习】八、基础知识(2.2)类型标签的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

PyQt5 GUI 开发的基础知识

《PyQt5GUI开发的基础知识》Qt是一个跨平台的C++图形用户界面开发框架,支持GUI和非GUI程序开发,本文介绍了使用PyQt5进行界面开发的基础知识,包括创建简单窗口、常用控件、窗口属性设... 目录简介第一个PyQt程序最常用的三个功能模块控件QPushButton(按钮)控件QLable(纯文本

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取

SpringBoot改造MCP服务器的详细说明(StreamableHTTP 类型)

《SpringBoot改造MCP服务器的详细说明(StreamableHTTP类型)》本文介绍了SpringBoot如何实现MCPStreamableHTTP服务器,并且使用CherryStudio... 目录SpringBoot改造MCP服务器(StreamableHTTP)1 项目说明2 使用说明2.1

HTML中meta标签的常见使用案例(示例详解)

《HTML中meta标签的常见使用案例(示例详解)》HTMLmeta标签用于提供文档元数据,涵盖字符编码、SEO优化、社交媒体集成、移动设备适配、浏览器控制及安全隐私设置,优化页面显示与搜索引擎索引... 目录html中meta标签的常见使用案例一、基础功能二、搜索引擎优化(seo)三、社交媒体集成四、移动

HTML input 标签示例详解

《HTMLinput标签示例详解》input标签主要用于接收用户的输入,随type属性值的不同,变换其具体功能,本文通过实例图文并茂的形式给大家介绍HTMLinput标签,感兴趣的朋友一... 目录通用属性输入框单行文本输入框 text密码输入框 password数字输入框 number电子邮件输入编程框

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

HTML5 中的<button>标签用法和特征

《HTML5中的<button>标签用法和特征》在HTML5中,button标签用于定义一个可点击的按钮,它是创建交互式网页的重要元素之一,本文将深入解析HTML5中的button标签,详细介绍其属... 目录引言<button> 标签的基本用法<button> 标签的属性typevaluedisabled

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio