计算化学公社

 找回密码 Forget password
 注册 Register
Views: 9699|回复 Reply: 0
打印 Print 上一主题 Last thread 下一主题 Next thread

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

[复制链接 Copy URL]

1187

帖子

5

威望

2876

eV
积分
4163

Level 6 (一方通行)

又一个以前写的约等于没有用途的程序。
这个用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到能级图边上。

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


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

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

有各种问题欢迎反馈。


评分 Rate

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

查看全部评分 View all ratings

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-2-24 03:28 , Processed in 0.179484 second(s), 24 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list