Compute命令
语法:
Compute ID group-ID style args
ID用户分配给compute命令的名字
group-ID要进行计算的原子组的名字
style可能的类型之一(见下文)
args某些特定类型的对象
描述:
定义一种计算来计算一组原子的性质。利用compute命令计算的性质是瞬时值,也就是说他们是由当前步的原子信息计算得到的,通过compute命令可以存储先前体系的一些信息。定义计算时并不进行计算,而是在其他命令需要时才进行计算,例如a thermostat fix or to generate thermodynamic or dump file output需要计算温度 时,进行计算。
ID只能是字符、数字和下划线
compute命令能够得到三种类型的参量:全局、每个原子和局部量。全局量是一个或多个系统性的量,比如系统的温度。每个原子量是一个或多个每个原子所具有的量,例如每个原子的动能。对于不进行计算的原子的每个原子量的值为0.局部量是通过计算每个处理器所拥有的原子信息所得到的量,可以是0个原子或多个原子,例如一系列键长。Compute命令计算每个原子量时,类型中都含有“atom”,例如ke/taom。Compute命令计算局部量时,类型中都含有“local”,例如bond/local。没有“atom”和“local”的类型计算的是全局量。
注意单个的计算能够产生全局量、每个原子量和局部量,但仅能产生一种。
三种量中每种量都有三种数值类型:单个数字、向量和二维数组。每个类型的介绍中详细说明了产生的量的类型。邮寄计算命令能够产生多种类型,例如全局数字量和全局向量。
当计算完成时,很多输出命令可以通过[]来调用这些产生的量。
C_ID 整个数、向量或数组。
C_ID[I]向量中的一个元素或数组中的一列。
C_ID[I][J]数组内的一个元素。
换句话说,利用[]可以降低量的维数。
注意:使用量的命令和变量不能同时使用所有的类型,例如需要向量的命令,不能够使用数。
利用compute命令得到的值可以通过以下的几种方式进行使用:
fixes命令能够利用comute得到的全局温度和压力来进行恒温或恒压设置,或初始计算原子的速度。
全局量可以通过thermo_style custom和fix ave/time命令进行输出。或者被variable equal和variable atom命令引用。
每个原子量可以通过dump custom命令或fix ave/spatial命令输出。或者通过fix ave/atom命令进行时间平均,或者通过compute reduce命令进行减小。或者被子atom-style variable命令引用。
局部量可以用过compute reduce命令进行减小,或者通过fix ave/histo 命令进行histogrammed,或者通过dump local命令输出。
通过compute计算出的全局量可以是集约的,也可以是外延的。集约表示值与原子的个数无关,例如温度。外延表示值与原子的个数有关,例如整体的转动动能。
thermodynamic output能够根据thermo_modify norm的设置对外延量进行标准化。对集约量不能进行标准化。
LAMMPS内部自带了一些compute命令,用来进行热动力学参数的输出。有三个compute总是被创建,thermo_temp、thermo_press和thermo_pe,这是哪个命令已经包含在输入文件中。
compute thermo_temp all temp
compute thermo_press all pressure thermo_temp
compute thermo_pe all pe
如果thermo style需要的话,其他的计算命令也会被创建,详见thermo_style命令。
fixes命令同样有可能创建compute命令。详见fix命令
在这些例子中,可以通过thermo_modify和fix_modify命令对这些默认计算进行修改。
任何compute命令都可以通过compute_modify命令进行修改。
compute命令利用uncompute命令删除。
每一种类型的compute命令都有自己的对象和用法。详见各个类型style。