势能面绘制
势能面(PES)绘制对于反应机理的研究是十分重要的,使用 GVasp 可以很容易的进行绘制,仅需提供所需的数据即可。
简单的例子
一个非常简单的反应数据类似这样(相对能量):
data = [0, -0.09, 0.75, 0.06, 0.26, -2.46, -1.02, -1.58]
我们可以运行下面的命令来进行绘制:
gvasp plot PES -j plot.json --save
势能面类似这样:
plot.json 如下所示:
{
"data": [[0, -0.09, 0.75, 0.06, 0.26, -2.46, -1.02, -1.58]]
}
备注
data 参数是一系列线的集合,因此即使你只绘制一条线,它的类型也应该是 List[List[float]]。
改变风格
通过增加 style="solid_curve",势能面图可以更改为如下所示:
{
"data": [[[0, -0.09, 0.75, 0.06, 0.26, -2.46, -1.02, -1.58],["MS", "MS", "TS", "MS", "TS", "MS", "TS", "MS"]]],
"style": "solid_curve"
}
注意
对于 “solid_curve” 风格, 需要指定数据点归属为中间态(MS)还是过渡态(TS),所以 data 参数的类型变为 List[List[List[float], List[str]]]。
空值
如果你的数据中含有 None,GVasp 也可以正常工作。
例如,
data = [0, None, None, 0.06, None, None, 0.39, -1.51]
绘制出的图类似这样:
plot.json 如下所示:
{
"data": [[0, null, null, 0.06, null, null, 0.39, -1.51]]
}
重要
Json 文件不识别 None,需要替换 None 为 null 。
同一文件多态密度图绘制
如果你想比较不同的反应路径,数据类似这样:
data = [[0, -0.09, 0.75, 0.06, 0.26, -2.46, -1.02, -1.58],
[None, None, None, None, None, -2.46, -0.95, -1.66],
[None, None, None, 0.06, None, None, 0.39, -1.51]]
绘制出的图类似这样:
plot.json 如下所示:
{
"data" : [[0, -0.09, 0.75, 0.06, 0.26, -2.46, -1.02, -1.58],
[null, null, null, null, null, -2.46, -0.95, -1.66],
[null, null, null, 0.06, null, null, 0.39, -1.51]],
"text_type": null
}
And we close the text by add text_type = null.
specify legends
If you want to add the legends for different reaction pathways, data like below:
data = [[0, -0.18, 0.02, -2.35, -2.26, -3.17, -3.25, -2.97, -6.76],
[0, -0.07, 0.33, -2.13, -2.09, -3.05, -3.04, -2.60, -6.65]]
绘制出的图类似这样:
plot.json 如下所示:
{
"data" : [[0, -0.18, 0.02, -2.35, -2.26, -3.17, -3.25, -2.97, -6.76],
[0, -0.07, 0.33, -2.13, -2.09, -3.05, -3.04, -2.60, -6.65]],
"text_type": null,
"legends": [[0,0,"clean $CeO_4$-t"],
[0,0,"hydro $CeO_4$-t"]]
}
Where the legends are described by a tri-tuple (x_position, y_position, label).
现在,你应该知道如何通过 GVasp 来绘制 PES 了,当然我们还会持续改进。