绘制反应机理势能面的小工具

类别:    标签: 编程 fortran js   阅读次数:   版权: (CC) BY-NC-SA

2015-07-15 10:03:33

缘起

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

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

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

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

使用

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

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

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

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

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

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

在线工具

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

基准能量: 能量因子:
Origin单列数据
Origin多列数据

相应的Fortran程序

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

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

2016-02-15 附记

最近看到一篇类似的文章在Origin中绘制能量折线图的方法, 里面提供了一些方法, 可供参考.

随意赞赏

微信

支付宝
◆本文地址: , 转载请注明◆
◆评论问题: https://jerkwin.herokuapp.com/category/3/博客, 欢迎留言◆


前一篇: 一维谐振子薛定谔方程的数值解
后一篇: GROMACS中的相关函数拟合

访问人次(2015年7月 9日起): | 最后更新: 2017-06-16 03:43:39 UTC | 版权所有 © 2008 - 2017 Jerkwin