【LAMMPS翻译系列】compute temp命令

compute temp用来定义一个计算过程,用来计算一组原子的温度。

使用语法

compute ID group-ID temp
  • ID = compute命令的ID
  • group-ID = 该compute命令所作用的原子组的ID
  • temp = 该compute命令的类型名

使用举例

compute 1 all temp
compute myTemp mobile temp

使用介绍

定义一个计算过程,用来计算一组原子的温度。所有可以计算温度的命令都可以调用该命令,如thermo_modify, fix temp/rescale, fix npt等。

在这里,计算温度使用的公式是:KE = dim/2 N k T,其中:

  • KE:该组原子总的动能,即每个原子动能(1/2 m v^2)之和
  • dim:模拟的维度,取2或3
  • N:该组原子的数目
  • k:波尔兹曼常数
  • T:温度
该命令会也会计算一个存有6个元素的动能张量,从而用于压力张量的计算。计算这些张量元素的公式与上面计算温度的公式类似,区别在于将其中v^2进行相应的替换,如对于xy张量元素,使用vx*vy进行替换。动能张量中6个元素按着顺序分别是 xx, yy, zz, xy, xz, yz.

在计算温度的过程中,默认认为组内原子的数目是常量。如果不是这种情况,可以参考命令compute_modify 的dynamic选项。

该计算命令会减掉由于使用某些命令,分子运动受到限制的自由度,如fix shake and fix rigid。换句话说,即便计算组内包括了一些被添加了约束的原子,该命令仍然可以计算出正确的结果。当然,如果需要考虑这些被默认减掉的自由度,可以通过使用compute_modify 的extra选项进行修改。

在LAMMPS启动的时候,会自动以thermo_temp为ID,创建一个该类型的计算过程,就好像输入脚本中使用了下面的命令:

compute thermo_temp all temp
参考命令thermo_style,了解更多信息。

以cuda作为后缀类型的计算过程,在功能上与没有后缀是一样的,区别在于cuda类型的计算过程是经过优化的,因此计算更快。不过,cude类型是需要硬件支持的,而且需要在编译的时候,把USER-CUDA编进去。


输出信息

该计算命令会计算一个全局的标量,即温度,和一个全局的长度为6的矢量,即动能张量。动能张量的每一个值可以通过索引1-6进行引用。任何可以使用全局标量或矢量的命令都可以使用该命令所计算出的值作为输入。

该命令所计算的标量值是内含的(intensive),而矢量值则是外显的(extensive)。

标量值是以温度作为单位,而矢量值是以能量作为单位。

相关命令

compute temp/partial, compute temp/region, compute pressure

标签: lammps, lammps翻译

相关文章推荐

添加新评论 (无需注册,可直接评论)

已有 3 条评论

  1. 热能老六

    最后一句翻译不对吧:
    该命令所计算的标量值是内含的(intensive),而矢量值则是外显的(extensive)。
    热力学里intensive翻译为非广延的(强度量);extensive翻译为广延的

  2. 真言我

    博主,能不能请教一个问题,我想输出一个group的势能,我试了好多输出命令,compute 这个不能输出指定group,我用fix ave/time 也不可以,都是输出的整体的势能。

    1. 我爱搜集网博主

      你可以参考下命令:compute pe/atom
      http://lammps.sandia.gov/doc/compute_pe_atom.html
      See the compute pe/atom command if you want per-atom energies. These per-atom values could be summed for a group of atoms via the compute reduce command.