【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

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

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

相关文章

基于ssm的校园短期闲置资源置换平台(java项目+文档+源码)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的校园短期闲置资源置换平台。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 校园短期闲置资源置换…

大话设计模式——9.单例模式(Singleton Pattern)

简介 确保一个类只有一个实例,并提供全局访问点来获取该实例,是最简单的设计模式。 UML图: 单例模式共有两种创建方式: 饿汉式(线程安全) 提前创建实例,好处在于该实例全局唯一,不…

C程序的编译

经过预处理后的源文件,退去一切包装,注释被删除,各种预处理命令也基本上被处理掉,剩下的就是原汁原味的C代码了。接下来的第二步,就开始进入编译阶段。编译阶段主要分两步:第一步,编译器调用一系列解析工具,去分析这些C代码,将C源文件编译为汇编文件;第二步,通过汇编…

anaconda创建了虚拟python环境,且安装了pytorch,但是pycharm中import torch运行时报错

报错如下: C:\Users\tashi\.conda\envs\test1\python.exe D:\project\python\transformer\main.py C:\Users\tashi\.conda\envs\test1\lib\site-packages\numpy\__init__.py:127: UserWarning: mkl-service package failed to import, therefore Intel(R) MKL init…

AI预测体彩排3第2弹【2024年4月13日预测--第1套算法开始计算第2次测试】

各位小伙伴,今天实在抱歉,周末回了趟老家,回来比较晚了,数据今天上午跑完后就回老家了,晚上8点多才回来,赶紧把预测结果发出来吧,虽然有点晚了,但是咱们前面说过了,目前的…

将Visio绘图导出PDF文件,使其自适应大小,并去掉导入Latex的边框显示

问题描述 将Visio绘图导成pdf文件,首先在Visio绘图如下: 如果直接导出或者另存为pdf文件,则会发现pdf文件是整个页面大小,而不是图片大小。而且在导入latex等排版工具现实时,会显示边框。 问题解决 1.调整Visio中的页…

vox2vec论文速读

vox2vec: A Framework for Self-supervised Contrastive Learning of Voxel-Level Representations in Medical Images 摘要 本文介绍了 vox2vec——一种体素级表示的自监督学习 (SSL) 对比方法 vox2vec 表示由特征金字塔网络 (FPN&#xf…

Cascader 级联选择器 - 选择器最后一级数据为空

原因:将扁平数据转化为树形数据时,给每个项都添加了 children export const transList2Tree (list, rootPid) > {const result []list.forEach(item > {if (item.pid rootPid) {const children transList2Tree(list, item.id)item.children …

Unity绘制地图

首先在项目/Assets文件夹下创建一个Tiles文件夹 在层级下点击鼠标右键选择2D对象选择瓦片地图创建Tilemap。 选择地图素材 如果素材需要裁剪,在检查器Sprite模式选择多个,点击Sprite Editor,选择切 ,选择类型Grid By Cell Count,…

BoostCompass(建立正排索引和倒排索引模块)

阅读导航 一、模块概述二、编写正排索引和倒排索引模块✅安装 jsoncpp✅Jieba分词库的安装1. 代码基本框架2. 正排索引的建立3. 倒排索引的建立 三、整体代码⭕index.hpp 一、模块概述 这个模块我们定义了一个名为Index的C类,用于构建和维护一个文档索引系统。该系…

【计算机毕业设计】停车场管理系统——后附源码

🎉**欢迎来到琛哥的技术世界!**🎉 📘 博主小档案: 琛哥,一名来自世界500强的资深程序猿,毕业于国内知名985高校。 🔧 技术专长: 琛哥在深度学习任务中展现出卓越的能力&a…

Harmony鸿蒙南向驱动开发-SDIO接口使用

功能简介 SDIO是安全数字输入输出接口(Secure Digital Input and Output)的缩写,是从SD内存卡接口的基础上演化出来的一种外设接口。SDIO接口兼容以前的SD卡,并且可以连接支持SDIO接口的其他设备。 SDIO接口定义了操作SDIO的通用…

21 标准错误

标准输出重定向关闭无数据 下面的代码&#xff1a; #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h>int main() {close(1);i…

Xilinx Zynq UltraScale+ MPSoC无人机控制器

官方术语是无人驾驶飞行器&#xff08;UAV&#xff09;&#xff0c;这显然有点拗口&#xff0c;所以我们更喜欢说无人机。在过去的几十年里&#xff0c;无人机技术有了巨大的进步。我们为一个客户开发了一个无人机的飞行和视频控制器。 客户挑战 客户需要一种混合FPGA/CPU硬件&…

是的,本科毕业八年,我考研了

今天&#xff0c;是一篇纯分享文。 是的&#xff0c;本科毕业八年&#xff0c;我考研了。 停更10个月&#xff0c;历时296天&#xff0c;我考研上岸了。 小伙伴们&#xff0c;好久不见。 一 发今年第一篇文章的时候刚处理完后续事宜&#xff0c;就简单说了句&#xff0c;后台…

MoCo v1(CVPR 2020)原理与代码解读

paper&#xff1a;Momentum Contrast for Unsupervised Visual Representation Learning official implementation&#xff1a;https://github.com/facebookresearch/moco 背景 最近的一些研究提出使用对比损失相关的方法进行无监督视觉表征学习并取得了不错的结果。尽管是受…

【DM8】临时表空间

临时表分类 事务级临时表会话级临时表 临时表&#xff0c;可以像普通表一样插入、更新和删除数据临时表的DML操作产生较少的redo日志临时表支持创建索引&#xff0c;以提高查询性能在一个会话或事务结束之后&#xff0c;数据将自动从临时表中删除不同的用户访问相同的临时表&a…

吴恩达深度学习 (week3,4)

文章目录 一、神经网络概述二、神经网络的表示三、神经网络的输出四、多个例子的向量化五、向量化实现的解释六、深度学习激活函数七、激活函数导数八、神经网络的梯度下降法九、深度学习随机初始化十、上述学习总结1、第一题2、第二题3、第三题4、第四题5、第五题6、第六题7、…

关于Transformer的面试题

文章目录 前言1、Transformer模型1. 1 基本要点1.2 提升 2、BN和LN的区别和联系2.1 基本要点2.2 扩展 3、PreNorm和PostNorm的区别[链接](https://www.zhihu.com/question/519668254)4、Multi-head self-attention中为什么要用三个不同的矩阵 前言 Transformer大模型的一些问题…

【GEE实践应用】哨兵1号和2号数据叠加

目录 1.数据叠加代码 2.代码逐句解释 1.数据叠加代码 var geometry table; //table是我们提前导入的矢量数据 // 加载Sentinel-2影像 var sentinel2 ee.ImageCollection("COPERNICUS/S2").filterBounds(geometry) // geometry是你感兴趣区域的几何对象.filte…