数据类型
Roy Kid
# 数据类型
以下小节主要介绍不同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)处的数据 |
换句话说,使用一次括号则会将数据的维数降低一次(矢量->标量、数组->矢量)。使用两次括号则会将数据的维数降低两次(数组->标量)。因此,使用标量值作为输入的命令通常也可以处理矢量或数组的元素。