计算化学公社

标题: SOC计算辅助 for ORCA (更新c++版本) [打印本页]

作者
Author:
wal    时间: 2025-3-1 21:24
标题: SOC计算辅助 for ORCA (更新c++版本)
本帖最后由 wal 于 2025-5-13 13:10 编辑

5.13
发出来的时候有一个小问题我没意识到,昨天有小伙伴私我问了,在这里解释一下:
脚本使用的ΔE<0.3eV与socme>0.5cm-1没有出处,是我根据自己研究的体系,总结出的认为值得关注一个阈值;如果您研究的不是有机发光材料,而是重原子体系、金属团簇等,这个阈值可能是不合适的,您可以考虑自行修改脚本



4.7
7.3.1版已更新(见3L)


4.5更新:
修复C++版本无法处理二位数state的问题,本次更新后能处理至多99个态,如果有人算多于100个态的我估计那矩阵图都得成筛子了所以暂时就这样吧。暂时先更新gcc11.4.0版,7.3.1版等回学校了连上集群更新(见3L)
PS: 试了下python版也有一样的问题hhh,但是由于UI问题估计屏幕也显示不下那么大,就暂时不修py版了

4.4更新:
更新了备用提取逻辑,适应ORCA5.0.4的输出文件
修改了SOC矩阵提取逻辑,明确终止提取条件
(, 下载次数 Times of downloads: 58)

---- 以下为原帖----
去年算过一段时间三重态,写了个依赖于ORCA输出文件的SOC计算器,当时顺手传到我的FCclasses3脚本贴里了,但好像没啥人关注,所以后面也没再更新了
结果今天无意间截图我的脚本到群里 发现好像还是有好多人对这个感兴趣(? 于是把几番魔改后现在的版本传上来了

脚本运行截图:

(, 下载次数 Times of downloads: 13)
加载SOC计算文件后自动把6*5所有旋轨耦合和ΔEST全给出来。我算soc的输入全都是脚本生成的,所以只测试过nroots 5的情况,你要是nroots多可以改改tkinter的网格设置,但要是太多估计界面是显示不下的
  1. ! wb97x-d3 def2-svp tightSCF RIJCOSX
  2. %pal
  3.   nprocs 32
  4. end
  5. %maxcore 3000
  6. %tddft
  7.   nroots 5
  8.   dosoc true
  9.   printlevel 3
  10. end
  11. * xyzfile 1 1 td_HC-3.xyz
复制代码

生成的6*5的块全都是按钮,点一下自动调用matplotlib对对应块的两个态作个简单的图:

(, 下载次数 Times of downloads: 8)


(, 下载次数 Times of downloads: 93) (旧版本)

requirements:
matplotlib>=3.5.0
numpy>=1.20.0
tkinter>=8.6
tkinterdnd2>=0.3.0

打包之后一看妈呀这破脚本六百兆 就不提供打包版本了 装好环境直接运行即可





作者
Author:
于铮    时间: 2025-3-12 21:25
非常好用
作者
Author:
wal    时间: 2025-3-24 10:12
本帖最后由 wal 于 2025-8-12 17:01 编辑

- 25.8.12 update-
可以使用yaml格式配置文件控制一些参数
(, 下载次数 Times of downloads: 1) (, 下载次数 Times of downloads: 1)
暂时只有静态链接版,体积会大一点

- origin -
最近有大批soc任务,准备自动化soc计算流程,于是写了个C++版本的纯命令行运行,完成后打印文本结果,并尝试用gnuplot绘图
这个是集群上编译的,系统库比较老,gcc7.3.1
(, 下载次数 Times of downloads: 65) (last update: 25.4.7)


这个是本地编译的,gcc11.4.0,上面那个有问题可以换这个
(, 下载次数 Times of downloads: 90) (last update: 25.4.5)

使用方法:
  1. chmod +x soc
  2. ./soc soc.log
复制代码



(, 下载次数 Times of downloads: 6) (, 下载次数 Times of downloads: 6)




作者
Author:
陈AG    时间: 2025-3-27 08:59
老师,请问我上传了这个文件,为什么显示找到 0个单重态激发态(S1-S0)和 0个三重态(T1-T0)的
作者
Author:
wal    时间: 2025-3-27 10:16
陈AG 发表于 2025-3-27 08:59
老师,请问我上传了这个文件,为什么显示找到 0个单重态激发态(S1-S0)和 0个三重态(T1-T0)的

看了一眼输出,不太应该,也许是有bug,我做完实验回工位看看,这会没电脑
作者
Author:
陈AG    时间: 2025-3-27 10:43
wal 发表于 2025-3-27 10:16
看了一眼输出,不太应该,也许是有bug,我做完实验回工位看看,这会没电脑

谢谢老师
作者
Author:
wal    时间: 2025-3-27 13:49
陈AG 发表于 2025-3-27 10:43
谢谢老师

我拿我的机子算了一下,可以正常读取。可能是ORCA版本的原因,我看到你的输出文件里光谱部分表头跟我的输出文件不一样,所以脚本没有匹配到单重态与三重态能量。我改天更新一下脚本吧,写点可以切换的备用逻辑
(, 下载次数 Times of downloads: 8)
作者
Author:
lushiyue    时间: 2025-3-31 17:14
本帖最后由 lushiyue 于 2025-3-31 17:16 编辑
wal 发表于 2025-3-24 10:12
最近有大批soc任务,准备自动化soc计算流程,于是写了个C++版本的纯命令行运行,完成后打印文本结果,并尝 ...

老师您好,我使用这个C++版本的能够正常提取soc,但每次只能提取9个S和9个T态,实际上S和T是各算了20个态,请问是啥原因呢?输出的矩阵图能够看到20个态,但只处理了10×10的数据。ORCA用的是6.0.1版本


作者
Author:
wal    时间: 2025-3-31 19:02
lushiyue 发表于 2025-3-31 17:14
老师您好,我使用这个C++版本的能够正常提取soc,但每次只能提取9个S和9个T态,实际上S和T是各算了20个态 ...

我平常没算过那么多态,可能处理太多行有点问题,下次更新一并改一下逻辑吧
作者
Author:
lushiyue    时间: 2025-3-31 20:00
wal 发表于 2025-3-31 19:02
我平常没算过那么多态,可能处理太多行有点问题,下次更新一并改一下逻辑吧

谢谢老师,期待下次的更新
作者
Author:
swagger    时间: 2025-4-1 17:27
wal 发表于 2025-3-27 13:49
我拿我的机子算了一下,可以正常读取。可能是ORCA版本的原因,我看到你的输出文件里光谱部分表头跟我的输 ...

老师,请问这个soc.py脚本跟新了嘛,我也是这个问题
作者
Author:
wal    时间: 2025-4-1 17:38
swagger 发表于 2025-4-1 17:27
老师,请问这个soc.py脚本跟新了嘛,我也是这个问题

最近在赶课题,忙做实验,可能要稍等几天
作者
Author:
swagger    时间: 2025-4-1 17:52
wal 发表于 2025-4-1 17:38
最近在赶课题,忙做实验,可能要稍等几天

好的,谢谢老师,祝您课题顺利
作者
Author:
wal    时间: 2025-4-4 01:22
陈AG 发表于 2025-3-27 10:43
谢谢老师

已更新,可以从TDDFT输出里提取能量了
作者
Author:
wal    时间: 2025-4-5 01:02
本帖最后由 wal 于 2025-4-5 18:07 编辑
swagger 发表于 2025-4-1 17:52
好的,谢谢老师,祝您课题顺利
我看错了,还以为你问的是C++,python脚本昨天也更新过了


(, 下载次数 Times of downloads: 5)
已更新,gcc11.4.0版的已可以画至多99个态(但太多的话估计图片尺寸要手动调gnuplot脚本)
7.3.1的等回工位了去编译

作者
Author:
wal    时间: 2025-4-5 01:06
lushiyue 发表于 2025-3-31 20:00
谢谢老师,期待下次的更新

已更新,见楼上
作者
Author:
lushiyue    时间: 2025-4-7 11:14
wal 发表于 2025-4-5 01:06
已更新,见楼上

太强了,感谢老师
作者
Author:
Stardust0831    时间: 2025-4-28 01:03
真的好喜欢这个UI,感觉很酷。
绘图也超级方便,一键就出结果。
最后感谢帖主大大细致的指导~~感动~






欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3