DeePMD-Kit实际上手操作|VASP篇
本文使用dpdata对vasp生成的第一性原理数据(结构弛豫)进行格式转化,并使用DeePMD-Kit对其势函数进行拟合。
学习基础:VASP基本知识,DeePMD-Kit基本知识
软件使用:VASP(6.3.0) DeepMD-Kit v2.2.4
特别感谢DeepMD-Kit每一位开发者的贡献
1.VASP数据集的准备
本文采用Cu和石墨烯的异质结结构作为初始的结构,将其作为输入的POSCAR文件。众所周知,我们可以利用Material Studio的refine lattice和bulid layers功能搭建异质结,但是明显这样做是比较花费时间的。运行的是vaspkit的804功能为我们提供了一个快速构建异质结的方法。关于804功能的介绍在 http://vaspkit.cn/index.php/8.html 中已经阐述的十分详细了,本文不做赘述,接下来使用其中一个构建好的异质结做为演示例子。
INCAR文件的展示,和一般的结构优化不同,请注意需要打开范德华相互作用,以保证体系的真实性。
随后提交任务,可以用grep功能获得体系能量。
2.Deep-Kit输入文件的准备
计算完毕后,我们需要提取OUTCAR文件中的力,以及能量等信息提取出来,并转为DEEP-Kit可以识别的形式,这里可以使用dpdata和简单的python语句,就可以完成这个工作,非常的方便。
上面的代码不仅完成了对于数据的转化,同时也完成了对训练集和验证集的划分,本文所用的代码示例使用的是随机选取数据集总量的百分之十作为验证集,其他作为训练集。它会在当前目录下建立好training_data和validation_data两个文件夹。
这样Deep-Kit的初始数据集我们就构建好了,下面我们要给出它的输入文件input.json,这里建议最好将此文件放入一个新的文件夹中,这样Deep-Kit的输出文件都会出现在这个文件夹里。
本文给出的是Cu-石墨烯体系的例子,如果你想修改成自己的体系,最简单的方法是将"type_map":["Cu","C"]修改成对应体系的元素,并将training_data和validation_data两个文件夹的路径进行修改,当若你变换了元素种类的数量,记得将"sel": [60,60],也改成相应的维数,当然你可以选择'auto'作为sel的参数,但个人不建议这样做,因为后面你想增加数据集继续训练的时候会由维数不同产生报错。
随后写好提交脚本就可以提交了!我们可以看到计算的细节,以及最后计算的结果。
3.模型结果的分析
在第 10000000 步结束时,模型保存在 TensorFlow 的检查点文件 model.ckpt中。同时,训练和测试错误显示在文件lcurve.out中。
第 4、5 和 6、7 列分别介绍了能量和力量训练和测试错误。 证明经过 10000000 步训练,能量测试误差小于 1 meV,力测试误差在 312meV/Å左右。
随后可以通过以下命令检查模型的质量,我们可以自由选择n的数量。
随后我们可以在当前目录下看到results.e.out,results.e_peratom.out,results.f.out,results.v.out,results.v_peratom.out这五个文件,分别代表了DFT的结果和预测的结果。可以将文件放入Origin中轻松可视化。
乌日根
半杯茶叶子