Post

利用SNTO进行势能面跟踪研究光致电荷转移(PET)

利用SNTO进行势能面跟踪研究光致电荷转移(PET)

态跟踪原理笔者在SDNTO中提过,参考了J. Comput. Chem. 2019, 40, 1420–1428。利用这个原理,可以对一条轨迹进行透热势能面跟踪,这对于追踪CT态与LE态的交叉十分有用。本文记录利用baneSNTO程序进行透热态跟踪的流程,选择的模型是对硝基苯胺。

结构准备

平平无奇的opt,获得FC点结构:

1
# opt freq wB97XD/def2svp scrf

以及td opt,获得S1min结构:

1
# opt TD freq wB97XD/def2svp scrf

对于轨迹,有两种办法生成。第一种是做插值。我们可以借用ORCA的NEB模块来获得插值点,输入文件:

1
2
3
! NEB-TS
%neb NEB_END_XYZFILE "S1min.xyz" end
* XYZFILE 0 1 FC.xyz

这个任务无需跑完,orca生成NEB_initial_path_trj.xyz就可以kill掉了,这里就得到了插值轨迹。另一种办法是利用一些手段拿到反应路径,比如正儿八经跑完NEB-TS或IRC的downhill:

1
# IRC(calcfc,downhill,maxpoints=100) td wB97XD/def2tzvp scrf=SMD

本文不是一篇论文,所以笔者偷懒取了插值点轨迹作为概念验证。接下来我们需要对每个结构做TD单点,获得波函数与组态系数:

1
td(eqsolv) wB97XD/def2tzvp scrf=SMD

态跟踪

我们先看看轨迹两头结构的激发性质。FC点处,S1是个振子强度很高的局域(LE)激发:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
激发态 1 (Singlet-A'): 322.17 nm, f=0.53
轨道跃迁对:
  31->37 -0.11612
  36->37 0.69127

激发态 2 (Singlet-A"): 289.90 nm, f=0.00
轨道跃迁对:
  34->37 0.68530
  34->39 -0.16682

激发态 3 (Singlet-A"): 267.27 nm, f=0.00
轨道跃迁对:
  35->37 0.51401
  35->39 0.10032
  36->38 -0.47223

然而到了S1min处,S1忽然就变成了振子强度为0的电荷转移(CT)激发:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
===frame_0010.log===
激发态 1 (Singlet-A"): 450.74 nm, f=0.00
轨道跃迁对:
  35->37 0.68896
  35->39 -0.15646

激发态 2 (Singlet-A'): 338.69 nm, f=0.70
轨道跃迁对:
  36->37 0.69352

激发态 3 (Singlet-A"): 288.67 nm, f=0.01
轨道跃迁对:
  34->37 0.68059
  36->38 -0.18081

我们看一下绝热态的能量是什么样的 可以看到在第四步的时候S1和S2应该是发生过一次态交叉的,后面走向突然就不对劲了,LE态与CT态的转换大概率也就是此处发生的。绝热态势能面的缺点是态交叉前后的激发性质很可能完全不同,这对讨论荧光不利。

此处,我们可以利用SNTO来确定透热态势能面是怎么走的。baneSNTO是一个专为计算SNTO而设计的程序,可以批量计算某电子态与下一个结构的每个电子态的SNTO。以下我们研究透热态LE的走向。首先生成每个态NTO文件:

1
baneSNTO --newnto frame_0001.fchk frame_0001.log --state 1 --oldfch 1_S1.fch 

对于下个结构frame2,首先生成NTO,然后与frame1的NTO做重叠积分:

1
2
3
4
5
baneSNTO --newnto frame_0002.fchk frame_0002.log \
    --state 1 --outfch 2_S1.fch \
    --state 2 --outfch 2_S2.fch \
    --state 3 --outfch 2_S3.fch \
    --otype 2 --nt 32 --oldfch 1_S1.fch 

输出文件中,我们可以看到frame2的S1与frame1的S1的重叠积分有0.98,表明二者的性质相近,应当是同一个态。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SNTOFILE 1
producer baneSNTO
timestamp 2026-02-06T16:48:51
mode autorange
threshold   2.0000000000000001E-01
otype 2
old_fch 1_S1.fch
new_fch frame_0002.fchk
new_log frame_0002.log
nstates 3

BEGIN_STATES
# state  snto_avg  snto_hole  snto_part  out_fch  status
1   9.8389790063280169E-01   9.8397324821975496E-01   9.8382255304584854E-01 SNTO_work/pt0002/S1.fch 0
2   6.0028139741699515E-01   2.4640840113232595E-01   9.5415439370166444E-01 SNTO_work/pt0002/S2.fch 0
3   7.6259557732182359E-01   5.5272622968613994E-01   9.7246492495750736E-01 SNTO_work/pt0002/S3.fch 0
END_STATES

重复上述步骤,情况在frame5发生了变化:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SNTOFILE 1
producer baneSNTO
timestamp 2026-02-06T16:49:21
mode autorange
threshold   2.0000000000000001E-01
otype 2
old_fch 4_S1.fch
new_fch frame_0005.fchk
new_log frame_0005.log
nstates 3

BEGIN_STATES
# state  snto_avg  snto_hole  snto_part  out_fch  status
1   6.0399982417020359E-01   2.5309418970409481E-01   9.5490545863631238E-01 SNTO_work/pt0005/S1.fch 0
2   9.8411579570796437E-01   9.8417548015791656E-01   9.8405611125801218E-01 SNTO_work/pt0005/S2.fch 0
3   7.6429954580700976E-01   5.4962997389300416E-01   9.7896911772101536E-01 SNTO_work/pt0005/S3.fch 0
END_STATES

frame5的S2跟frame4的S1很接近,表明从frame4跨到frame5的时候,发生了一次态交叉。那么后续我们就需要跟踪root=2的态了,这才是真透热LE态:

1
2
3
4
5
baneSNTO --newnto frame_0006.fchk frame_0006.log \
    --state 1 --outfch 6_S1.fch \
    --state 2 --outfch 6_S2.fch \
    --state 3 --outfch 6_S3.fch \
    --otype 2 --nt 32 --oldfch 5_S2.fch 

重复此步骤,我们最终可以得到一条透热LE态的轨迹。对FC点的绝热S2做同样处理,我们也可以得到CT态的轨迹。但是上述流程有点麻烦,笔者用GPT5.2写了个脚本diabatic.sh来完这些成重复工作:

1
diabatic.sh --otype 2 -T 32 --root0 2 --prefix frame_0 -N 3

diabatic.sh会将透热态的能量汇总输出到dat文件:

1
2
3
4
5
6
7
8
9
10
11
# coord   Energy(eV)   adiab_state   SNTO_avg   SNTO_hole   SNTO_part
1  4.2768  2  NaN  NaN  NaN
2  4.1221  2  0.9993907287  0.9990117444  0.9997697131
3  3.9623  2  0.9995017687  0.9991265646  0.9998769727
4  3.7981  2  0.9995747696  0.9992098458  0.9999396934
5  3.6300  1  0.9996937666  0.9993554879  1.0000320452
6  3.4585  1  0.9998361806  0.9995183590  1.0001540023
7  3.2842  1  0.9999153479  0.9995970671  1.0002336287
8  3.1076  1  1.0000349142  0.9997177372  1.0003520912
9  2.9295  1  1.0001381175  0.9998161309  1.0004601041
10  2.7507  1  1.0002736563  0.9999576702  1.0005896425

我们看到同样是在frame4到5的地方产生了态交叉,透热CT态的能量在此后成为了绝热S1。绘制透热势能面,FC点处的局域激发是如何变成电荷转移激发的就很明显了:

实际应用场景

笔者选的对硝基苯胺并不是瞎选的。事实上,基于一类机理的荧光探针的性质恰恰与对硝基苯胺的激发性质类似——光致电荷转移(PET)机理。经典的PET解释是荧光团的电子跃迁上去后,猝灭基团的电子转移给荧光团/荧光团的电子转移给猝灭基团: 别找了,没有引文,这是我画的

事实上,笔者觉得这个经典解释描述的恰恰就是上述计算的是弛豫过程,原本在吸收时荧光团的LE激发是如何在弛豫过程能量逐渐升高,最终通过态交叉点发生电荷转移的。迟伟杰老师在2020年的一篇JACS讨论了这个问题:

J. Am. Chem. Soc. 2020, 142, 6777−6785

This post is licensed under CC BY 4.0 by the author.
Total hits!