大体系的激发态波函数分析方案
对于巨型体系,如COF,直接TD-DFT计算激发态将非常困难。此时就需要一些简化算法,以便将资源消耗控制在可以接受的资范围内。本文打算记录一些非常规的方案,取的例子是: 因为想有个TDDFT结果做标准参考,所以取的不是非常大,而且有意保持了对称性,免得真算不动了。首先结构优化:
1
# opt freq CAM-B3LYP/def2svp em=gd3bj
然后做TDDFT单点:
1
# td CAM-B3LYP/def2tzvp em=gd3bj IOp(9/40=3)
结果CAM-B3LYP疑似给我算了个ghost态出来。。。
1
2
3
4
5
6
Excited State 1: Singlet-A1 0.2695 eV 4600.15 nm f=0.1917 <S**2>=0.000
...
316 -> 317 0.99466
...
316 <- 317 -0.69902
...
说疑似是因为316 <- 317去激发组态系数飘到了惊人的0.7,波长4600nm更是比红外光谱还红外,一眼ghost,然而其振子强度f=0.1917却不像ghost态一样很接近0。做了下激发分析 看着倒是很正常,符合预期,所以就当是TD单点切基组引起的小bug吧。本次TD-DFT单点计算使用32core/96gb的资源,耗时4h51m,料想如果是没有C2v对称性的实际体系的话耗时将非常惊人。
纯泛函密度拟合
截止目前,Multiwfn尚未支持使用ORCA的TD-DFT计算结果考虑去激发组态,因此结果仍然可能定性有问题。而且ORCA开RI算TD单点属于常规方案,不在本文讨论范围,因此选择了Gaussian纯泛函开DensityFit测试:
1
# td BLYP/SVP/SVPFit DensityFit em=gd3bj IOp(9/40=3)
我在官网上没看到def2系列的辅助基组,考虑到本文的目的是为大体系找方案,所以激进地直接取SVP来测试。计算耗时不出意料地锐减,12m就完成了。由于是Gaussian计算,照常进行波函数分析: 可以看到与TD-DFT还是有一定差距的。
sTDA-DFT
ORCA支持进行sTD-DFT和sTDA-DFT计算,此方法耗时较少。由于前述ORCA不区分激发/去激发组态原因,本文测试sTDA-DFT的情况。使用关键词:
1
2
3
4
5
6
7
8
9
! b3lyp/g def2-svp def2/J rijcosx
%pal nprocs 32 end
%maxcore 3000
%tddft
maxcore 1000000 # 截止ORCA6.0,sTDA只能串行运行,如果要计算很多态模拟光谱可以单独在%tddft里增加内存
Mode sTDA
Ethresh 3.0 # sTDA是直接对角化求解所有态的,不会进行Davidson迭代,因此不能通过nroot控制计算的态的个数。
end
*xyzfile 0 1 geom.xyz
本次计算的耗时同样是12m,大头在DFT部分,sTDA几乎是秒出的。本计算可以照常使用gbw转换来的molden文件与log文件进行波函数分析: 可以看到与TD-DFT计算结果非常接近,因此sTDA-DFT是一个很出色的大体系激发态计算方案。
TDA-aTB
如果目标体系过大,连结构优化都很困难,半经验方法是最后的选择。Amesp提供了TDA-aTB计算大体系激发态,参考:大体系激发态计算方法TDA-aTB在Amesp中的使用
1
2
3
4
5
6
7
8
9
% npara 18
% maxcore 150000
! TDA aTB
>atb
etdamax 4
end
>xyz 0 1
{geom}
end
该计算是真秒出
1
2
3
4
5
6
7
====================================================================
The program run from 2025-08-16 23:54:08 to 2025-08-16 23:54:09
Total run time: 0 days, 0 hours, 0 minutes, 1.5944 seconds
Normal termination of Amesp!
====================================================================
由于Amesp的波函数格式不被Multiwfn支持,我们需要先用mokit转换成fch格式:
1
2
m2a out.mo
amo2fch out.amo
输出的out.fch可以给Multiwfn进行波函数分析。Amesp的激发信息同样不被不被Multiwfn支持,也需要先转换。读者可以自行编撰脚本按照Multiwfn的格式编写输入,或者使用笔者提供的afakeg进行转换:
1
atb2gau out.aop > a2g.txt
如此,在进行Multiwfn波函数分析时,波函数文件使用mokit转换的out.fch,log文件使用atb2gau转换的a2g.txt:
半经验方法是用精度换的时间,可以看到偏离稍微有些大。大师说atb是类纯泛函,未来将退出类杂化泛函的atb2,对于高估电荷转移趋势的情况会好很多,默默期待一波。
最后放个对比图: