lammps的restart重启动相关命令

这是我以前写过的一篇博文,发表在新浪博客上,转载过来,并做适当修正。

restart作用

restart命令是lammps提供的重启动命令,用于重启lammps计算。这样可以省去一些共有的计算,从而节省计算时间,特别是对于比较大的体系。

比如原子弛豫一般是各种计算都必须要做的,那么就可以先单独弛豫一下,生成restart文件,供其他计算直接调用,从而避免每一个计算都进行弛豫。

restart原理

重启动的原理很简单,就是写一个中间restart文件,在这个文件中记录某个状态的绝大部分信息,在重启动时,只需要读入这个文件,接着完成剩下的计算即可。restart文件是二进制文件。

restart命令

restart相关的命令有三个:restart, write_restart, read_restart。还有一个相关的脚本在lammps的tools目录下restart2data,可以用来将二进制的restart文件转换成可识别的文文文件,即data file文件,可以由read_data读入。

restart命令和write_restart命令是用来写重启动文件的,区别是前者用来周期性地将系统状态写入不同的restart文件,而后者则是写出该命令使用前的系统状态。

read_restart命名是用来读入restart文件,开始新的计算。

tools目录下的restart2data工具提供的是cpp源文件,需要编译后才可使用。

下面以lammps/bench目录下的输入文件为例进行简要介绍。

写restart文件

# FENE beadspring benchmark

units lj
atom_style bond
special_bonds fene

read_data data.chain

neighbor 0.4 bin
neigh_modify every 1 delay 1

bond_style fene
bond_coeff 1 30.0 1.5 1.0 1.0

pair_style lj/cut 1.12
pair_modify shift yes
pair_coeff 1 1 1.0 1.0 1.12

fix 1 all nve
fix 2 all langevin 1.0 1.0 10.0 904297

thermo 100
timestep 0.012

restart 50 tmp.restart # write restart file periodiclly
run 100
#write_restart tmp*.restart # write restart file of the current state

注意restart和write_restart命令的使用位置是不同的。这里使用restart命令,会产生两个文件tmp.restart.50, tmp.restart.100.

转换restart文件

首先编译restar2data.cpp,如下:

$ g++ restart2data.cpp -o restart2data

这时就会在当前目录下产生可执行的restart2data文件,cp到bench目录下,转换上面例子产生的tmp50.restart文件。

restart2data tmp50.restart data.tmp50

这时就会在bench目录下产生data.tmp50文件,它是可直接辨识的文本文件。

读入restart文件

把in.chain文件拷贝成in.chain.restart文件,用来测试restart。由于restart文件中包含了很多的命令,所以需要重新设置的命令不多,这里如下:

read_restart    tmp.restart.50

neighbor        0.4 bin
neigh_modify    every 1 delay 1

fix             1 all nve
fix             2 all langevin 1.0 1.0 10.0 904297

timestep        0.012

run             50

这里实际就是接着timestep等于50的那个状态重启计算的。

参考:restart, write_restart, read_restart, restart2data, Restarting a simulation

标签: lammps

相关文章推荐

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

已有 4 条评论

  1. 乔克笑小丑

    博主你好 请问tmp.restart.50, tmp.restart.100中的50和100分别表示run50步生成restart文件和run100步生成restart文件吗?

    1. 是的。manual里有介绍。

  2. lammps

    楼主,请问restart2data.cpp在哪里可以找到?我15年8月10日版本的lammps的tool文件夹中有binary2txt.cpp这个文件,生成可执行文件binary2txt后,cp到bench 目录下,输入binary2txt relax.restart data.20000后linux系统说command not found, 请问这是怎么回事呢?如果直接read_restart就会报错:Restart file byte ordering is not recognized,我想应该是要把二进制文件转换成数据文件的,但是应该怎么做呢?

    1. 我爱搜集网博主

      我记不清了,15年以前的版本里有这个工具。你可以下载以前的老版本看看。