Bulk Cu system
下文将以 Cu 系统为例,介绍如何使用 PWMLFF Deep Potential Model 进行训练及 lammps 模拟。
整个程序运行逻辑大致分为:
1. 产生数据集
以 PWmat AIMD 模拟得到的 Cu 数据为例,数据文件为MOVEMENT300
, MOVEMENT1500
,各包含 100 个结构,每个结构包含 72 个 Cu 原子。
etot.input输入文件示例:
8 1
JOB = MD
MD_DETAIL = 2 100 1 300 300
XCFUNCTIONAL = PBE
ECUT = 60
ECUT2 = 240
MP_N123 = 2 2 3 0 0 0 3
IN.ATOM = atom.config
IN.PSP1 = Cu.SG15.PBE.UPF
ENERGY_DECOMP = T
OUT.STRESS = F
- 可选项
ENERGY_DECOMP
:是否将总 DFT 能量分解为属于每个原子的能量(原子能量)。结果输出在MOVEMENT
文件中。如需使用或训练原子能量,需要将其设置为T
。 - 可选项
OUT.STRESS
:是否输出应力信息,如需训练Virial
,则需要将其设置为T
。 - 其他参数含义参考PWmat manual。
2. 训练力场
2.1 处理数据集
工作目录下新建*.json
文件(如extract.json
),该文件用于调用 pwdata 对分子动力学轨迹文件进行处理,提取标签。
示例如下:
{
"valid_shuffle": true,
"train_valid_ratio": 0.8,
"raw_files": ["./MOVEMENT300", "./MOVEMENT1500"],
"format": "pwmat/movement"
}
其中:
valid_shuffle
: 是否对全部数据进行随机打乱。例如,分子动力学步长为 10,存在 10 个 images,valid_shuffle
为true
时,将对 10 个 images 进行随机打乱,然后按照train_valid_ratio
的比例划分训练集和验证集。valid_shuffle
为false
时,将按照train_valid_ratio
的比例按顺序划分训练集和验证集。默认为True
train_valid_ratio
: 训练集和验证集的比例raw_files
: 原始数据的路径format
: 原始数据的格式,用于训练集的生成,所以支持的格式有movement
,outcar
,cp2k/md
执行命令pwdata extract.json
,将会在当前目录下生成PWdata
文件夹,包含train
和valid
两个子文件夹,分别存放训练集和验证集的数据。
然后需要修改力场训练输入控制文件*.json
(如dp_cu.json
)中的datasets_path
路径,指定标签文件所在路径。(见下文)