跳到主要内容

DP-GEN model_devi步骤 LAMMPS自定义模板

有时在DP-GEN的model_devi步骤,用户需要自定义脚本。比如https://github.com/deepmodeling/dpgen/tree/master/examples/run/dp-lammps-enhance_sampling 是做增强采样的一个示例脚本。

参数文件 param.json

当"model_devi_jobs"下有"template"参数时,model_devi步骤使用指定的lmp/input.lammps为模板

    "model_devi_jobs":  [        
{ "sys_idx": [0],"traj_freq": 10,"_idx": "00",
"template":{ "lmp": "lmp/input.lammps", "plm": "lmp/input.plumed" },
"rev_mat":{ "lmp": {"V_NSTEPS": [20000], "V_TEMP": [300], "V_PRES": [1]},
"plm": {"V_TEMP": [300], "V_STRIDE": [10]}
}
},

"plm"指定的是增强采样用到的文件。如果您不需要plumed, 需要删去示例参数文件95行的"model_devi_plumed"参数(它默认为false)。

lammps脚本 input.lammps

需要注意dump行需要修改为dump dpgen_dump

dump           dpgen_dump
#dump 2 all custom 100 vel.xyz id type vx vy vz

使用模板时dpgen会调用revise_lmp_input_dump函数来写input.lammps里的trj_freq,而不是像一般情况下在文件开头定义DUMP_FREQ再调用。

def revise_lmp_input_dump(lmp_lines, trj_freq):
idx = find_only_one_key(lmp_lines, ['dump', 'dpgen_dump'])
lmp_lines[idx] = "dump dpgen_dump all custom %d traj/*.lammpstrj id type x y z\n" % trj_freq
return lmp_lines