没有输出,再好的模拟也没用:dump命令4种用法

虽然lammps模拟没有可视化的前处理和后处理程序,但lammps提供了两种方式输出模拟结果。

thermo和thermo_style命令输出模拟过程中总体系的信息,如体系的温度、势能、动能、压力等结果,但是不能输出单个原子的信息。

lammps提供了dump命令输出单个原子的信息,如原子坐标、受力、原子速度等。

本文主要介绍一下dump命令的使用。dump命令非常强大,不仅可以输出文本、二进制、压缩文件,还可以输出图像和视频。

dump命令格式为:

dump ID group-ID style N file args

ID:dump命令编号

group-ID:输出的原子组ID

style:输出类型

N:每隔N步输出一次文件

file:文件名

args:参数

对于我们来说,并不需要输出这么多的类型,只需要掌握以下几种常用的dump输出方式足以满足大部分的模拟需求。

 

1. 最省心的输出方式:dump atom

在调试程序的时候,如果我们仅仅需要输出原子坐标,可以使用这一条命令:

dump 1 all atom 100 dump.atom

每隔100步输出全部原子的坐标,原子坐标存到dump.atom中,文件的后缀名没有统一标准,可以任意取。

使用atom方式输出的dump.atom文件中只包含原子类型和原子坐标。

只输出某个原子组的信息,把all改成原子组ID即可:

dump 1 subgroup atom 100 dump.atom

2.个性化的输出方式:dump custom
dump atom类型仅输出原子坐标,如需输出更多的原子信息,可使用dump custom命令自定义输出。

custom类型可输出的原子信息包括:

possible attributes = id, mol, proc, procp1, type, element, mass,
                      x, y, z, xs, ys, zs, xu, yu, zu,
                      xsu, ysu, zsu, ix, iy, iz,
                      vx, vy, vz, fx, fy, fz,
                      q, mux, muy, muz, mu,
                      radius, diameter, omegax, omegay, omegaz,
                      angmomx, angmomy, angmomz, tqx, tqy, tqz,
                      c_ID, c_ID[N], f_ID, f_ID[N], v_name

使用方法也比较简单,在输出文件名的后面列出要输出的原子信息即可,例如:

dump 1 all custom 100 dump.atom id type x y z vx vy vz fx fy fz

上一句命令输出的原子信息包括:原子id,原子类型,xyz坐标,xyz方向的速度,xyz方向的受力

custom类型不仅能够输出原子系统自带的属性,也支持输出compute、fix等命令计算的原子信息:

compute myPress all stress/atom NULL
dump 2 all custom 100 tmp.dump id myPress[1] myPress[2] myPress[3] &
                                  myPress[4] myPress[5] myPress[6]

 

3. 压缩文件输出:dump atom/gz

如果体系比较大,包含的原子比较多,输出的dump.atom文件会比较大,可以使用atom/gz样式,将坐标文件进行压缩后再保存。

dump 1 all atom/gz 100 dump.atom.gz

压缩文件的类型为gz,使用常用的解压软件都可以进行解压,解压之后得到dump.atom文件,与上一步得到的文件内容一致。

4. 文件分步输出:dump *

对于非常大的体系,原子信息输出到一个文件中可能会比较大。

我曾经算过一次大体系的,一个dump.atom文件大约20G左右,即使是进行压缩存储,也接近10G。这么大的文件导入到ovito分析时电脑反应比较慢,后期处理不是很方便。

lammps提供了一种分步输出轨迹文件的方法:

dump 1 all custom 100 dump.atom.* id type x y z

在文件名的后面加上”.*”,每隔100步系统会把原子轨迹保存到1个新文件里,“*”会被自动的替换成步数。

例如模拟300步,系统会保存4个文件:dump.atom.0、dump.atom.100、dump.atom.200、dump.atom.300。

dump.atom.0是模拟0步时的初始状态信息,每次模拟时,系统会自动保存该文件。

这样进行分步保存之后,每个轨迹文件会小的多,把单个文件导入到ovito后,ovito也会自动的寻找同文件夹下的其他轨迹文件,分析起来和单个文件效果是一样的,但是速度要快很多。

对于一般模拟来说,上面4种方法基本上能够满足要求,如有更高级的需求,可以查阅dump命令手册。

上一篇
下一篇