🗓️ 2025-06-17 🎖️ LAMMPS 🗂️ MolecularDynamics

LAMMPS中的常见命令

前言

虽然说是常见,但也未必常见吧,可能只是我遇到的不懂的、或者觉得有趣的。

1.labelmap

lablemap atom 1 H 2 O

这个命令用于给atom type指定一个映射关系。在用write_data写当前帧的data文件时,文件会含有额外的信息,如下:

但只限于data文件,无法影响dump的轨迹文件,所以想要写带有元素符号的轨迹,还是用dump的custom风格比较好。

2. variable

想要精通LAMMPS中的variable总是要费一番功夫的,今日有幸认真研究一番(本身又涉及很多别的命令,真似高中时看牛津字典,遇到一个个新单词,好爽快)。

不同风格的variable定义使用,会有一些差异。

variable name style args ...

这是官方给出的variable语法,简明扼要,variable由名字、风格、参数组成。

3. fix ave/time

fix ID group-ID ave/time Nevery Nrepeat Nfreq value1 value2 ... keyword args ...

用于统计平均。

这里以fix ave all ave/time 1 1 1000 v_tdiff ave running为例子,

Nfreq控制多少步统计一次,

Nrepeat控制某次(每经历Nfreq步时)会有多少个数据用于计算平均,

Nevery控制某次(每经历Nfreq步时)用于取平均的数据的步长间隔。

在这个例子中,其实是每1000步取一个数据。

如果改成1 3 1000,就是每1000步,取第998,999,1000步的数据的平均值。

ave running的作用是:

最后输出的f_ave,是所有Nfreq间隔的平均的平均。

4. fix ave/chunk

fix ID group-ID ave/chunk Nevery Nrepeat Nfreq chunkID value1 value2 ... keyword args ...

这个命令本质上还是求时间的平均,只是可以很方便的对chunk中所有的区域同时计算。

fix 2 all ave/chunk 10 100 1000 layers v_temp file profile.mp为例子,

这里是每一千步,取100个数据的平均,数据间隔为10.

可以看到,这是输出间隔为1000的profile.mp

第三列是原子数,第四列是温度。

这些值其实是这1000步内的平均,平均方法是10,100,1000.

Comment