请选择 进入手机版 | 继续访问电脑版
第13届北京科音初级量子化学培训班将于10月5~8日于北京举办,请点击此链接查看详情。这是新人一次性正确、完整学习量子化学计算的最好、最快机会,能少走无数弯路,欢迎参加并相互转告!(已报满)

计算化学公社

 找回密码
 现在注册!
查看: 112|回复: 0

[辅助/分析程序] 按照轨道能量差高低绘制轨道能级图的工具

[复制链接]

500

帖子

2

威望

1098

eV
积分
1638

Level 5 (御坂)

发表于 5 天前 | 显示全部楼层 |阅读模式
又一个以前写的约等于没有用途的程序。
这个用python写的,受到之前论坛里一个生成cdxml的energy plot程序的启发。

本程序可以读取Gaussian或者ORCA的【单行列式方法】的【单点能计算】的输出out文件中的各轨道能级,按照轨道能级差的相对大小,生成轨道能级图的cdxml
文件。该文件属于xml文件,可以被ChemDraw较新版本支持,用ChemDraw打开后可修改和另存为图片。

【地址在】 https://github.com/snljty/draw_orb_energy_level_chemdraw
README不用看,可以直接看代码里注释提到的细节。

运行方法:
1.安装python3
2.命令行输入
  1. python draw_orb_energy_level_chemdraw.py
复制代码

如果这个脚本不在当前目录下,就先cd到含有这个脚本的目录。输入文件要是满足上面要求的Gaussian/ORCA输出文件.out,支持R/U/RO方法。可以自动识别简并。
可以直接在命令行中输入out文件的路径作为命令行参数,比如
  1. python python draw_orb_energy_level_chemdraw.py benzene.out
复制代码

也可以不带参数,这时候程序会提示输入一个out文件的路径。如果直接回车,会打开一个GUI窗口来选择out文件。
随后程序会提示所有轨道的能量,然后让你输入两个数,单位eV,只输出能量在这两个之间的轨道。这是为了避免输出文件太长,很容易就几十页上百页导致ChemDraw直接崩溃。
而且大多数轨道我们也不关心。

输入两个阈值之后回车。如果直接按回车没有输入阈值,默认会用-50eV和50eV。
然后程序会提示,在某个区间内的轨道能级会被输出,已经输出到某个cdxml文件(out文件的非扩展名部分_orbital_energy_level.cdxml)。
当.out文件名直接作为命令行参数提供了的时候,这两个阈值不会要求输入,取而代之的是从.out文件名后面的两个命令行参数读取,或者直接用上面的默认值。

用ChemDraw打开这个cdxml,即可另存为图片。通常这个文件长度都会超过一页,Chemdraw会提示是否要延长到多于1页。【一定选OK】。
可以通过这个图直观了解轨道简并情况、各轨道能级差相对大小、HOMO和LUMO接近程度方便参考体系的多参考特征等。也可以用PhotoShop把各个轨道的
等值面图ps到能级图边上。

效果图如下。还有一些细节可以自己试试。
Capture.PNG

代码第114行之后有两个变量,一个是energyThreshold,另一个是EnergyGapToGraphGap。前者是判断是否简并的能量差上限阈值,后者是一定的能量差对应作图高度差的比例。如果对效果不满意,可以修改代码里这两个参数,然后重新执行程序。

test目录里有6个测试过的测试文件。

有各种问题欢迎反馈。


评分

参与人数 2eV +10 收起 理由
hebrewsnabla + 5
sobereva + 5

查看全部评分

您需要登录后才可以回帖 登录 | 现在注册!

本版积分规则

手机版|北京科音自然科学研究中心|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949-1号 )

GMT+8, 2020-9-20 21:49 , Processed in 0.163633 second(s), 28 queries .

快速回复 返回顶部 返回列表