数据类型

# 数据类型

作者 : 杨越

以下小节主要介绍不同LAMMPS输出命令及其所能操作的相应数据类型:

# 全局数据global、粒子数据per atom和局部数据local

各种与输出相关的命令均可使用三种不同的数据样式:global, per atom, local。global是一个或多个体系级范围的数值,例如体系的温度。per atom是每个粒子所具有的一个或多个数值,例如每个粒子的动能。local是每个处理器根据其所拥有的粒子体系来计算的局域数据值,此时每个原子的值可以有零个也可以是多个,例如,键距列表。

# 标量scale、矢量vectoe和数组数据array

global、pre atom以及local又可以分为三种:标量值,矢量值和二维数组。由compute命令、fix命令或variable命令的手册可以看到,这些命令生成数据时都需要指定其生成的数据类型和种类。例如,每个原子的速度即是一个矢量,输出时可根据实际需要输出某原子沿某一坐标方向的速度。

如下面讨论的许多输出命令一样,当需要使用某一量值时,可以通过以下“括号符号”的方式引用该量的值。其中,ID为某个命令的ID;compute命令以“c_”为前缀。当引用的量为fix命令或variable命令得到的值时,则以分别以“f_”或“v_”表示。

c_ID 整个标量、矢量或数组
c_ID[i] 矢量的第i个元素或数组的第i列数据
c_ID[j] 数组中的第(i, j)处的数据

换句话说,使用一次括号则会将数据的维数降低一次(矢量->标量、数组->矢量)。使用两次括号则会将数据的维数降低两次(数组->标量)。因此,使用标量值作为输入的命令通常也可以处理矢量或数组的元素。