遍历法搜索环氧基团的位点(一)
遍历法搜索环氧基团的位点(一)
近期在与师姐合作计算关于ORR电催化方面的内容,在这个过程中师姐提出可能环氧基团对性能有影响,希望我能通过计算验证一下,所以就有了我进行的这一部分尝试,在这个过程中我也想练习一下bash语言的批处理,不过这个计算比较耗费时间,所以博文会分为两篇记录。
计算思路
在初期的工作中,我们已经建立了一些模型,不过模型的准确性还有待验证,这里以以及这两种配位环境进行计算,以下是这两种配位环境的模型。
为了节约计算资源,计算的过程尽可能的简化了,对于没有加环氧基团的模型,K点设置为2×2×1(真空层为15埃),而对于添加了环氧基团的所有模型,K点我直接用的Gamma点计算(1×1×1),然后收敛标准相较于之前的模型优化也略有降低。
建模
此前我已经采用过的模型初步计算尝试了一下(16个模型),发现环氧基团要是离锚定Mn原子的O原子太近的话就会发生畸变,环氧基团中的氧原子会向Mn原子偏移,与Mn原子成键,以下为其中两个发生了畸变的模型。
而且根据这里的尝试,我简单画了一个散点图来简单分析一下:
在2.9Å附近有一个能量低点,但是这里与氧原子的距离其实跟上面那两个发生畸变的模型的氧原子间距很接近(2.5Å左右),这里就先作为误差点排除,那么就可以看出,在5.5Å的距离左右,是接近达到能量最低点的,所以接下来主要尝试在O原子的这个距离附近进行建模,多处采点进行验证。
这里之所以会筛一下的环氧基团位点,主要也是为了验证上述言论的准确性,测试一下不含氧原子锚定的结构会不会没有差异,如果计算结果没有出现类似的差异,那么就可以确定主要是锚定Mn原子的O原子对环氧基团的位点有影响。
构型的部分模型:
构型的部分模型:
对构型我建立了10个模型,对构型我建立了20个模型,模型的差异就是环氧基团的位置不同,等计算结束后我会统计它们的能量差异并分析原因。
文件处理并提交计算任务
对于如此多的模型,用以前的老办法来生成POSCAR显然是一件非常浪费时间的事儿,所以我这里决定大部分交给脚本来做。以前的老办法就是通过MS的xsd文件,导出对应的cif文件,再用vesta打开,然后再用vesta导出POSCAR文件,这样中间要倒腾一遍文件而且还要跨软件操作,极其的费时间,所以我在网上找到了武汉理工大学首席教授赵焱写的perl脚本,然后对它的脚本进行了一些修改,让它更加易用,具体可以参考我的这个博文,此外后续的自动化操作脚本我都会更新在这个系列的博文中。
一些小脚本来提高工作效率(一)
这里贴一下我计算用的INCAR吧,这里面DFT+U中Mn的U值我是参考B站上面的视频,采用的3.1
1 |
|
总结
整体来说,这次的工作对我来说也算是一个小挑战了,对我敲代码的能力有极大的提升,比如perl和bash语言,用代码来实现自动化真的是一个非常美妙的过程,但是中间也有一些小意外,不过现在也都解决了,任务也全部提交开始计算,接下来等计算结果出来,我还会继续写一篇数据后处理的文章,进一步提升自己的代码能量。