势能面绘制

势能面(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

势能面类似这样:

../../_images/pes1.svg

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",势能面图可以更改为如下所示:

../../_images/pes2.svg
{
  "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]]]。

空值

如果你的数据中含有 NoneGVasp 也可以正常工作。

例如,

data = [0, None, None, 0.06, None, None, 0.39, -1.51]

绘制出的图类似这样:

../../_images/pes3.svg

plot.json 如下所示:

{
  "data": [[0, null, null, 0.06, null, null, 0.39, -1.51]]
}

重要

Json 文件不识别 None,需要替换 Nonenull

同一文件多态密度图绘制

如果你想比较不同的反应路径,数据类似这样:

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]]

绘制出的图类似这样:

../../_images/pes4.svg

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]]

绘制出的图类似这样:

../../_images/pes5.svg

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 了,当然我们还会持续改进。