李继存
绘制反应机理势能面的小工具
2015-7-16 01:03
阅读:13473
2015-07-15 10:03:33缘起

在使用量子化学计算反应机理的论文中, 经常需要绘制反应的势能面(或称势能剖面图). 我以前也做过从头算方面的工作, 曾经写了一个Fortran小程序用来帮助绘制势能面. 主要思路是给出各个反应物种的能量及相对位置, 然后使用程序生成Origin的数据文件, 将数据文件导入Origin就可以直接绘出势能面了.

现在我基本已经不再做从头算方面的工作了, 所以这个小程序已经很长时间未用了, 一直躺在我电脑的某个文件夹中. 可时不时地, 我还会看到有人请教有了计算结果之后如何画反应的势能面. 网上给出的答案有ChemDraw, Origin甚至PowerPoint. 当然, 如果你有闲情逸致, 用Windows自带的画图软件也是可以做出很漂亮的图的. 但那不是我喜欢的方式.

既然我已经不再画势能面了, 这个小程序放在我这里也就没多大用处了. 所以, 我就花了点时间, 将其改造成了一个网上的在线工具, 你可以在直接在浏览器中编辑控制文件, 然后看到绘制效果. 程序还会给出用于Origin的数据文件, 将其导入Origin就可以使用Origin作图了. 我现在将这个小工具放在这里, 希望能对那些需要绘制势能面的人有所帮助.

如果你觉得在线使用不方便, 你可以直接将本页面保存在你的电脑上, 这样不需要上网, 在本机上也可以使用.

使用

在线工具的使用很简单, 在控制文件中编辑好每个翻译物种的编号, 名称, 相对位置, 能量, 与其连接的物种的编号, 然后点击绘图就可以看到绘制效果了.

下面的Origin单列数据和Origin多列数据两个文本框内给出了用于导入Origin的数据. 单列数据绘图时只绘制能量与连接线, 多列数据绘图时可将每一物种在图例中显示出来. 根据需要选择使用哪种数据. 具体区别见下面的说明.

对单列数据, 将其保存为文本文件后, 导入Origin后, 将Pos和adjPos列指定为X, 绘制Eng和adjEng列就可以了. 操作步骤如下:

对多列数据, 操作方法类似, 导入Origin后, 将Pos和adjPos列指定为X, 绘制每个物种对应的列和adjEng列就可以了.

在上面的图中, 使用了绝对能量(Hartree为单位)作图, 由于数值差异过小, Origin确定Y轴坐标范围出现问题, 所以建议使用以kcal/mol为单位的相对能量作图, 这样得到的相对能量数值上差异较大, 导入Origin后容易设置显示范围. 只要将基准能量设为反应物是能量-567.9303804, 能量因子设为627.5095重新生成数据就可以了. 这样得到的图就好多了.

你可以对得到的图进行修饰, 要改变反应物种的相对位置, 也可以直接在Origin中修改.

在线工具
控制文件(编号, 名称, 位置, 能量, 连接编号)

基准能量: 能量因子:  
Origin单列数据
Origin多列数据
相应的Fortran程序

如果你需要一个编译好的程序, 可以点击这里下载一个压缩包, 里面有Fortran的源代码, 编译好的程序, 两个示例控制文件及其输出文件. Fortran源码是很久前写的了, 有点粗糙.

如果有什么问题, 你可以在下面留言.

◆本文地址: http://jerkwin.github.io/2015/07/15/绘制反应机理势能面的小工具/, 转载请注明◆

转载本文请联系原作者获取授权,同时请注明本文来自李继存科学网博客。

链接地址:https://wap.sciencenet.cn/blog-548663-905730.html?mobile=1

收藏

分享到:

当前推荐数:0
推荐到博客首页
网友评论0 条评论
确定删除指定的回复吗?
确定删除本博文吗?