【LAMMPS学习】八、基础知识(3.1)LAMMPS 的输出

8. 基础知识

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

8.1.通用基础知识

8.2. 设置入门

8.3. 分析入门

8.3.1. LAMMPS 的输出(thermo, dumps, computes, fixes, variables

LAMMPS 输出有四种基本形式:

  • Thermodynamic output, 热力学输出,是每隔几个时间步打印到屏幕和日志文件的数量列表。

  • Dump files, 转储文件,其中包含原子快照和各种每个原子值,并以指定频率写入。

  • 某些fixes可以将用户指定的数量输出到文件:fix ave/time进行时间平均, fix ave/chunk以进行空间或其他平均,以及fix print进行variables的单行输出。Fix print 也可以输出到屏幕上。

  • Restart files. 重新启动文件。

模拟打印一组热力学输出和(可选)重启文件。它可以生成任意数量的转储文件并修复输出文件,具体取决于您指定的dump 和 fix 命令。

如下所述,LAMMPS 为您提供了多种方法来确定当上面列出的热力学、转储或修复命令执行输出时计算和打印哪些量。在整个讨论中,请注意,用户还可以 add their own computes and fixes to LAMMPS ,LAMMPS 可以生成然后可以使用这些命令输出的值。

以下小节讨论与输出相关的不同 LAMMPS 命令以及它们操作和生成的数据类型:

  • Global/per-atom/local/per-grid data

  • Scalar/vector/array data

  • Disambiguation

  • Thermodynamic output

  • Dump file output

  • Fixes that write output files

  • Computes that process output quantities

  • Fixes that process output quantities

  • Computes that generate values to output

  • Fixes that generate values to output

  • Variables that generate values to output

  • Summary table of output options and data flow between commands

Global/per-atom/local/per-grid data

各种与输出相关的命令可处理四种不同“样式”的数据:全局、每个原子、本地和每个网格。全局数据是一个或多个系统范围的值,例如系统的温度。每原子数据是每个原子的一个或多个值,例如每个原子的动能。本地数据由每个处理器根据其拥有的原子计算,并且每个原子可能有零个或多个,例如键距列表。

对于覆盖模拟域的网格,每网格数据是每个网格单元的一个或多个值。与原子和每原子数据类似,网格单元及其存储的数据分布在处理器之间;每个处理器拥有其中心点落在其子域内的网格单元。

Scalar/vector/array data

全局、每原子、局部和每网格数据可以分为三种“类型”:单个标量值、值向量或二维值数组。更具体地说,这些是每种样式的有效类型:

  • global scalar 全局标量

  • global vector 全局向量

  • global array 全局数组

  • per-atom vector 每原子向量

  • per-atom array 每原子阵列

  • local vector 局部向量

  • local array 局部数组

  • per-grid vector 每网格向量

  • per-grid array 每网格阵列

每个原子向量意味着每个原子有一个值; “矢量”是原子数量的长度。每个原子数组意味着每个原子有多个值。类似地,局部向量或数组意味着每个实体有一个或多个值(例如系统中的每个键)。每个网格向量或数组意味着每个网格单元有一个或多个值。

生成数据的计算、修复或变量的文档页面将指定其生成的数据的样式和类型,例如每个原子的向量。请注意,计算或修复可能会生成多种样式和类型的输出。但是,对于每个原子数据,仅输出向量或数组,而不是两者都输出。对于每个本地和每个网格数据也是如此。生成多种样式和类型数据的修复示例是 fix mdi/qm 命令。它输出系统的量子机械能和维里以及每个原子上的力的全局标量、全局向量和每原子阵列。

相比之下,不同的变量样式仅生成单一类型的数据:相等样式变量的全局标量、矢量样式变量的全局向量以及原子样式变量的每原子向量。

当数据被另一个命令访问时,正如下面讨论的许多输出命令一样,可以通过以下括号表示法来引用它,其中 ID 在这种情况下是compute的 ID。前导“c_”将替换为“f_”以进行fix,或将“v_”替换为变量(ID 将是变量的名称):

c_ID

entire scalar, vector, or array
整个标量、向量或数组

c_ID[I]

one element of vector, one column of array
向量的一个元素,数组的一列

c_ID[I][J]

one element of array 数组的一个元素

请注意,使用一个括号会减少数据的维度一次(向量 -> 标量,数组 -> 向量)。使用两个括号可将维度减少两倍(数组 -> 标量)。因此,使用标量值作为输入的命令在概念上也可以对向量或数组的元素进行操作。

每个网格向量或数组的访问方式类似,只是计算或修复的 ID 包括网格名称和数据名称。这是因为修复或计算可以创建多个网格(不同大小)和多组数据(针对每个网格)。修复或计算定义了每个网格和每个数据集的名称,以便其他命令可以访问所有这些名称。有关更多详细信息,请参阅 Howto grid 文档页面。

Disambiguation消歧义

当计算或修复产生多种样式的数据时,例如全局和每个原子,对数据的引用有时可能是不明确的。通常,输入脚本引用数据的上下文决定了所指的样式。

例如,如果计算输出全局向量和每原子数组,则将通过在 thermodynamic output中使用 c_ID[I] 来访问全局向量的元素,而每原子数组的列将被访问。通过在 dump custom 命令中使用 c_ID[I] 进行访问。

但是,如果atom-style variable 引用 c_ID[I] ,那么它可能旨在引用全局向量的单个元素或每个原子数组的列。任何具有潜在歧义的命令(变量是最常见的)的文档页面将解释如何解决歧义。

在这种情况下,原子样式变量引用每个原子数据(如果存在)。如果需要访问全局向量的元素(如本例所示),则可以定义引用该值的相等样式变量并在原子样式变量公式中使用。

同样,thermodynamic output 只能引用来自计算或修复的全局数据。但您可以按如下方式间接访问每个原子的数据。compute displace/atom命令 ID 的引用 c_ID[245][2] 指 ID 为 245 的原子位移的 y 分量。虽然您不能直接在 thermo_style 命令中使用该引用,但可以使用它是一个等式变量公式,然后在热力学输出中引用该变量。

Thermodynamic output热力学输出

热力学输出的频率和格式由 thermo, thermo_style, 和 thermo_modify 命令设置。 Thermo_style 命令还指定计算和写出哪些值。可以指定预定义的关键字(例如 press、etotal 等)。还可以指定三种附加类型的关键字(c_ID、f_ID、v_name),其中 compute 或 fix 或 variable 提供要输出的值。在每种情况下,计算、修复或变量必须生成全局值以输入到thermo_style custom命令。

请注意,热力学输出值可以是“广泛的”或“密集的”。前者与系统中原子的数量(例如总能量)成正比,后者则不然(例如温度)。 thermo_modify norm的设置决定是否对大量数量进行归一化。计算和修复产生广泛或密集的值;有关详细信息,请参阅其各自的文档页面。 Equal-style variables仅产生密集值;如果需要,您可以在公式中除以“natoms”,以使广泛的计算产生密集的结果。

Dump file output转储文件输出

转储文件输出由 dump 和 dump_modify 命令指定。有几种预定义的格式(转储原子、转储 xtc 等)。

还有一种 dump custom 格式,用户可以在其中指定每个原子输出的值。可以指定预定义的原子属性(id、x、fx 等)。还可以指定三种附加类型的关键字(c_ID、f_ID、v_name),其中 compute or fix or variable 提供要输出的值。在每种情况下,计算、修复或变量必须生成每个原子值以输入到 dump custom 命令。

还有一种 dump local 格式,用户可以在其中指定要输出的本地值。可以指定预定义的索引关键字来枚举本地值。还可以指定另外两种关键字(c_ID、f_ID),其中  compute or fix or variable 提供要输出的值。在每种情况下,计算或修复都必须生成本地值以供 dump local 命令的输入。

还有一种dump grid 格式,用户可以在其中指定从生成每个网格数据的计算或修复中输出哪些每个网格值。

Fixes that write output files固定写入输出文件

多个fixes将不同的量作为输入,并可以写入输出文件: fix ave/time, fix ave/chunk, fix ave/histo, fix ave/correlate, 和 fix print。

fix ave/time命令可以直接输出到文件和/或对全局标量或向量进行时间平均。用户指定一个或多个数量作为输入。这些可以是全局计算值、全局固定值或除生成每个原子值的原子样式之外的任何样式的变量。由于变量可以引用 thermo_style custom 命令(如 temp 或 press)使用的关键字和各个原子值,因此可以以这种方式对各种数量进行时间平均和/或输出。如果输入是一个或多个标量值,则修复会生成输出的全局标量或向量。如果输入是一个或多个向量值,则修复会生成一个全局向量或输出数组。此修复的时间平均输出也可以用作其他输出命令的输入。

fix ave/chunk 命令允许直接输出到块平均每个原子数量的文件,就像转储文件中的输出一样。块可以表示空间仓或其他原子集合,例如单个分子。每个原子的量可以是原子密度(质量或数量)或原子属性,例如位置、速度、力。它们也可以是通过计算、修复或原子类型变量计算出的每个原子的数量。此修复的块平均输出是全局的,也可以用作其他输出命令的输入。

请注意,fix ave/grid 命令还可以对空间箱内相同的每个原子数量进行平均,但它针对网格单元由不同处理器拥有的分布式网格执行此操作。它输出每个网格的数据,而不是全局数据,因此对于大量平均箱来说更有效。

请注意,fix ave/grid 命令还可以对空间箱内相同的每个原子数量进行平均,但它针对网格单元由不同处理器拥有的分布式网格执行此操作。它输出每个网格的数据,而不是全局数据,因此对于大量平均箱来说更有效。

fix ave/histo 命令允许直接输出到直方图数量的文件,这些数量可以是全局的、每个原子的或局部的数量。此修复的直方图输出也可以用作其他输出命令的输入。

fix ave/correlate 命令允许直接输出到时间相关量的文件,这些量可以是全局值。此修复的相关矩阵输出也可以用作其他输出命令的输入。

fix print 命令可以在运行模拟期间定期生成一行输出,写入屏幕和日志文件或单独的文件。该行可以包含任何样式变量的一个或多个变量值(矢量或原子样式除外)。如上所述,变量本身可以包含对由热力学关键字、计算、修复或其他变量生成的全局值的引用,或者对特定原子的每个原子值的引用。因此,fix print 命令是一种输出与正常热力学或转储文件输出不同的各种量的方法。

Computes that process output quantities计算过程输出量 

 compute reduce 和 compute reduce/region 命令将一个或多个每原子或局部向量作为输入,并将它们(sum、min、max、ave)“减少”为标量。这些作为输出值生成,可以用作其他输出命令的输入。

 compute slice 命令将一个或多个全局向量或数组量作为输入,并提取其值的子集以创建新的向量或数组。这些作为输出值生成,可以用作其他输出命令的输入。

 compute property/atom命令获取一个或多个预定义原子属性(id、x、fx 等)的列表,并将这些值存储在每个原子向量或数组中。这些作为输出值生成,可以用作其他输出命令的输入。原子属性列表与dump custom 命令相同。

 compute property/local 命令获取一个或多个预定义本地属性(键合信息、角度信息等)的列表,并将这些值存储在本地向量或数组中。这些作为输出值生成,可以用作其他输出命令的输入。

compute property/grid 命令获取一个或多个预定义的每网格属性(id、网格单元坐标等)的列表,并将这些值存储在每网格向量或数组中。这些作为输出值生成,可用作 dump grid 命令的输入。

 compute property/chunk 命令采用一个或多个预定义块属性(空间箱的 ID、计数、坐标)的列表,并将这些值存储在全局向量或数组中。这些作为输出值生成,可以用作其他输出命令的输入。

Fixes that process output quantities固定过程输出量

fix vector 命令可以创建全局向量作为输入的全局标量的输出,一次累积一个元素。

fix ave/atom命令对每个原子向量执行时间平均。每个原子的量可以是原子属性,例如位置、速度、力。它们也可以是通过 compute, fix或原子类型variable计算出的每个原子的量。此fix的每个原子的时间平均输出可用作其他输出命令的输入。

fix store/state 命令可以在特定时间归档一个或多个每原子属性,以便旧值可以在将来的计算或输出中使用。原子属性列表与 dump 自定义命令相同,包括由计算、修复或原子类型变量计算的每个原子数量。此修复的输出可用作其他输出命令的输入。

 fix ave/grid 命令对每个原子或每个网格数据执行时间平均。

对于每个原子数据,它对每个网格单元内的原子执行平均,类似于当其块被定义为常规 2d 或 3d bin 时的 variable命令。每个原子的量可以是原子密度(质量或数量)或原子属性,例如位置、速度、力。它们也可以是通过计算、修复或原子类型变量计算出的每个原子的数量。

在此上下文中使用fix ave/grid and fix ave/chunk 命令之间的主要区别在于,前者使用分布式网格,而后者使用全局网格。分布式意味着每个处理器拥有其子域内的网格单元子集。全局意味着每个处理器都拥有整个网格的副本。因此,fix ave/grid 命令对于大型网格来说更有效。

对于每个网格数据, fix ave/grid 命令获取其他计算生成的网格数据的输入,或固定并平均每个网格点随时间的值。

Computes that generate values to output生成输出值计算

LAMMPS 中的每次计算都会生成全局值或每个原子值、局部值或每个网格值。这些值可以是标量、向量或数据数组。可以使用本节中描述的其他命令输出这些值。每个计算命令的页面都描述了它产生的结果。生成每个原子或本地或每个网格值的计算将单词“atom”或“local”或“grid”作为其样式名称的最后一个单词。不使用“原子”或“局部”或“网格”一词的计算会产生全局值。

Fixes that generate values to output生成输出值固定

LAMMPS 中的一些修复会生成全局或每个原子或本地或每个网格值,这些值可以通过其他命令访问。这些值可以是标量、向量或数据数组。可以使用本节中描述的其他命令输出这些值。每个修复命令的页面都会告诉您它是否产生任何输出数量并对其进行描述。

Variables that generate values to output生成输出值变量

输入脚本中定义的变量可以存储一个或多个字符串。但是 equal 样式、向量样式和原子样式或atomfile 样式变量在访问时分别生成全局标量值、全局向量或值或每个原子向量。用于定义这些变量的公式可以包含对热力学关键字以及对由计算、修复和其他变量生成的全局和每原子数据的引用。变量生成的值可用作本节中描述的其他命令的输入并由此输出。

每个网格变量尚未实现。

Summary table of output options and data flow between commands输出选项和命令之间的数据流汇总表

此表总结了可用于从 LAMMPS 生成输出的各种命令。每个命令都会生成某种类型的输出数据和/或将数据写入文件。大多数命令可以从其他命令获取数据作为输入。因此,您可以以管道形式将许多这些命令链接在一起,其中一个命令生成的数据用作另一命令的输入,并最终写入屏幕或文件。请注意,要将两个命令挂钩在一起,输出和输入数据类型必须匹配,例如全局/每个原子/局部数据和标量/向量/数组数据。

另请注意,如上所述,当命令采用标量作为输入时,该标量也可以是向量或数组的元素。同样,向量输入可以是数组的列。

Command

Input

Output

thermo_style custom

global scalars

screen, log file

dump custom

per-atom vectors

dump file

dump local

local vectors

dump file

dump grid

per-grid vectors

dump file

fix print

global scalar from variable

screen, file

print

global scalar from variable

screen

computes

N/A

global/per-atom/local/per-grid scalar/vector/array

fixes

N/A

global/per-atom/local/per-grid scalar/vector/array

variables

global scalars and vectors, per-atom vectors

global scalar and vector, per-atom vector

compute reduce

per-atom/local vectors

global scalar/vector

compute slice

global vectors/arrays

global vector/array

compute property/atom

N/A

per-atom vector/array

compute property/local

N/A

local vector/array

compute property/grid

N/A

per-grid vector/array

compute property/chunk

N/A

global vector/array

fix vector

global scalars

global vector

fix ave/atom

per-atom vectors

per-atom vector/array

fix ave/time

global scalars/vectors

global scalar/vector/array, file

fix ave/chunk

per-atom vectors

global array, file

fix ave/grid

per-atom vectors or per-grid vectors

per-grid vector/array

fix ave/histo

global/per-atom/local scalars and vectors

global array, file

fix ave/correlate

global scalars

global array, file

fix store/state

per-atom vectors

per-atom vector/array

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

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

相关文章

maven引入外部jar包

将jar包放入文件夹lib包中 pom文件 <dependency><groupId>com.jyx</groupId><artifactId>Spring-xxl</artifactId><version>1.0-SNAPSHOT</version><scope>system</scope><systemPath>${project.basedir}/lib/Spr…

Android gdb调试

Android gdb调试 前置条件&#xff1a; 1.Linux环境&#xff0c;比如Ubutun 2.python工具&#xff1a;建议2,7&#xff0c; 安装命令 sudo apt-get install libpython2.7 3.Android完整codebase 4.开发板 操作步骤&#xff1a; adb root adb remount adb shell #4027为进程id g…

电商技术揭秘二十四:无人仓储与自动化技术

相关系列文章 电商技术揭秘一&#xff1a;电商架构设计与核心技术 电商技术揭秘二&#xff1a;电商平台推荐系统的实现与优化 电商技术揭秘三&#xff1a;电商平台的支付与结算系统 电商技术揭秘四&#xff1a;电商平台的物流管理系统 电商技术揭秘五&#xff1a;电商平台…

华媒舍:7种方式,打造出旅游媒体套餐

现如今&#xff0c;伴随着旅游业发展与繁荣&#xff0c;更多旅游业发展从业人员越来越重视产品营销品牌基本建设&#xff0c;希望可以将自己的度假旅游产品和服务营销推广给更多的潜在用户。而建立一个优秀的旅游业发展媒体套餐内容品牌是吸引目标客户的重要步骤。下面我们就详…

Golang | Leetcode Golang题解之第30题串联所有单词的子串

题目&#xff1a; 题解&#xff1a; func findSubstring(s string, words []string) (ans []int) {ls, m, n : len(s), len(words), len(words[0])for i : 0; i < n && im*n < ls; i {differ : map[string]int{}for j : 0; j < m; j {differ[s[ij*n:i(j1)*n]…

把握零碎时间,开启长期副业兼职之旅!在家也能轻松赚钱!

转眼间&#xff0c;2024年已悄然走过三分之一。这一年&#xff0c;外界环境似乎并不那么友好&#xff0c;但对我而言&#xff0c;我的月收入仍然相对稳定。我找到的副业让我每月能赚到3000元以上&#xff0c;这让我深感庆幸。 现实中&#xff0c;只依赖主业工资的日子确实艰辛…

【LeetCode热题100】【回溯】分割回文串

题目链接&#xff1a;131. 分割回文串 - 力扣&#xff08;LeetCode&#xff09; 要找出所有分割这个字符串的方案使得每个子串都是回文串&#xff0c;写一个判断回文串的函数&#xff0c;深度遍历回溯去找出所有分割方案&#xff0c;判断分割的子串是否是回文串 class Soluti…

c++编译成汇编以及对汇编学习笔记

1. 引言 为了深入理解c&#xff0c;决定学习一些简单的汇编语言。使用ubuntu系统下g很容易将一个c的文件编译成汇编语言。本文使用此方法&#xff0c;对一个简单的c文件编译成汇编语言进行理解。 2.示例 文件名&#xff1a;reorder_demo.cpp #include<stdio.h>typede…

Linux Ubuntu 网络异常

1.开发背景 ubuntu 虚拟机下开发程序时&#xff0c;出现网络 IP 地址找不到问题 2.开发需求 在 ubuntu 网络找不到的情况下重启网络 3.开发环境 ubuntu20.04 4.实现步骤 4.1 挂起虚拟机恢复后异常 解决方法&#xff1a;重启网络管理器 sudo /etc/init.d/network-manager …

更改ip地址的几种方式有哪些

在数字化时代&#xff0c;IP地址作为网络设备的标识&#xff0c;对于我们在网络世界中的活动至关重要。然而&#xff0c;出于多种原因&#xff0c;如保护隐私、访问特定网站或进行网络测试&#xff0c;我们可能需要更改IP地址。虎观代理将详细介绍IP地址的更改方法与步骤&#…

在Ubuntu 14.04上配置Redis集群的方法

简介 Redis 是一个开源的键值对数据存储&#xff0c;采用内存存储模型&#xff0c;并可选择磁盘写入以实现持久化。它具有事务、发布/订阅和自动故障转移等功能。推荐在生产环境中使用 Linux 来部署 Redis&#xff0c;但开发人员也提到 OS X 作为他们开发和测试的平台。Redis …

如何配置和使用网关(Gateway)

简介 在现代的微服务架构中,网关(Gateway)扮演着非常重要的角色。本文将介绍网关的基本概念以及如何配置和使用它。我们将以一个实际的示例来说明如何设置和使用网关。 什么是网关? 简要介绍网关在微服务架构中的作用,以及为什么我们需要它。选择网关 介绍当前流行的网关…

Spring Boot 学习(5)——组件注册

也是学得头晕眼花&#xff0c;终于知道学有多么难了&#xff0c;更知道教有多么难了…… 各位大神们出的教程终归和正规出版社还是差距的&#xff0c;我觉得是没有“审定”&#xff0c;这对于大多数做教程的人来说这应该通病&#xff1a;自己做&#xff08;讲&#xff09;的东西…

Java基础(一)--语法入门

文章目录 第一章、语法入门一、Java简介1、JVM2、Java程序执行过程3、JDK4、JRE5、JDK、JRE和JVM三者关系 二、Java常量与变量1、标识符2、关键字3、保留字4、变量5、数据类型6、常量 三、运算符1、算术运算符2、赋值运算符3、关系运算符4、逻辑运算符5、条件运算符6、运算符的…

DataX自动化生成配置json,创建ODS表,多线程调度脚本[mysql-->hive]

DataX自动生成json配置文件及多线程执行脚本(仅支持mysql-->hive),其他版本自行实现,修改json模版即可 执行Datax任务 datax_run.py # 指定项目下的所有的ods任务,如果不指定参数,默认执行dw下的prefix过滤后的所有抽取任务 # 使用方式:python3 datax_run.py -p 项目名 -…

反爬虫之代理IP封禁-协采云IP池

反爬虫之代理IP封禁-协采云IP池 1、目标网址2、IP封禁4033、协采云IP池 1、目标网址 aHR0cDovL3d3dy5jY2dwLXRpYW5qaW4uZ292LmNuLw 2、IP封禁403 这个网站对IP的要求很高&#xff0c;短时间请求十几次就会遭关进小黑屋。如下图&#xff1a; 明显是网站进行了反爬处理&…

【JVM】JVM的垃圾回收机制与垃圾回收器的选择

昨天说了JVM的工作流程&#xff0c;感兴趣的可以先去看一看。今天咱们接着来探讨JVM的垃圾回收机制&#xff0c;包括其工作原理、如何确定对象回收、可用的垃圾回收器以及如何进行垃圾回收器的选择与配置。 1.工作原理 JVM的垃圾回收机制主要依赖于垃圾回收器来自动管理内存的…

Cannot access ‘androidx.activity.FullyDrawnReporterOwner‘

Android Studio新建项目就报错&#xff1a; Cannot access ‘androidx.activity.FullyDrawnReporterOwner’ which is a supertype of ‘cn.dazhou.osddemo.MainActivity’. Check your module classpath for missing or conflicting dependencies 整个类都报错了。本来原来一直…

OpenCV-AMF算法(自适应中值滤波Adaptive Median Filtering)

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 实现原理 AMF&#xff08;Adaptive Median Filter&#xff0c;自适应中值滤波&#xff09;是一种用于图像处理和信号处理的滤波算…

了解.DevicData-P-XXXXXXXX勒索病毒,以及如何保护您的数据

导言&#xff1a; 随着网络技术的快速发展&#xff0c;网络安全问题日益凸显&#xff0c;其中勒索病毒成为了一种严重的网络安全威胁。在众多勒索病毒中&#xff0c;.DevicData-P-XXXXXXXX勒索病毒以其强大的加密能力和恶劣的勒索行为引起了广泛关注。本文将对该病毒进行详细介…