上周花了周末的时间完成了动力学模型energy profile的自动作图部分,写这个部分的主要目的是能够更加直观的查看整个动力学模型中的反应的热力学行为,也就是快速的数值可视化,通过做出来的图能够和动力学计算的结果做对比分析,方便查看吸附能、能垒、脱附能等数据。
此部分作图的主要实现是依赖matplotlib库这一面向对象的作图工具,借助numpy和scipy的数组和插值函数(我自己写写了个小的插值函数)根据输入的反应热力学数据计算出energy profile中的points,进而开启Artist Mode!虽然只是作图但是为了能够做出好看的图以及能够自动显示note等功能,这个类还是写了700行左右的python代码(包括注释和空行)。

下面来大致记录下实现的过程:

1.插值

好了,扯了前面这些,上点做出来的图吧(均自动生成,可选择是否显示注释/箭头和阴影)。
基元反应:

1
2
3
4
'HCOOH_g + 2*_s <-> H-COOH_s + *_s -> COOH_s + H_s',  
'COOH_s + *_s <-> COO-H_s + *_s -> CO2_s + H_s',
'H_s + H_s <-> H-H_s + *_s -> H2_g + 2*_s',
'CO2_s -> CO2_g + *_s',

每一步基元反应的图:




整条路径的energy profile:

[点击查看大图]

另,可以根据这个动力学库单独写脚本,把不同路径的图和在一张图中,后面我会写一套针对这个动力学模型进行计算的脚本(包括各种作图),到时候添加。

Comments