使用ORCA计算自旋轨道耦合(SOC)矩阵元
叫个啥名字 发布于 阅读:10
本教程旨在为刚接触计算化学的本科生/研究生提供一个详细的指南,讲解如何使用功能强大的量子化学软件ORCA来计算分子的自旋轨道耦合(Spin-Orbit Coupling, SOC)矩阵元。我们将从基本原理讲起,通过三个不同类型的实例,一步步教你如何在Windows系统上准备输入文件、运行计算、解读输出文件以及自动提取数据。
1. 原理与思路
1.1 什么是自旋轨道耦合?
在基础量子化学中,我们通常使用薛定谔方程来描述电子的行为,它忽略了相对论效应。然而,当电子高速运动时(尤其是在重原子核附近),相对论效应变得不可忽略。 自旋轨道耦合 (Spin-Orbit Coupling, SOC) 就是一种重要的相对论效应,它描述了电子的 自旋磁矩 与其绕原子核 轨道运动 产生的磁场之间的相互作用。为什么SOC很重要? 在非相对论理论中,电子跃迁必须遵守自旋守恒的原则,即单重态(S)和三重态(T)之间的跃迁是“禁阻”的。然而,SOC的存在可以“混合”不同自旋多重度的电子态。这种混合使得原本禁阻的S-T跃迁(如系间窜越ISC和磷光发射)变为可能。这对于理解和设计OLED材料、光催化剂和光敏剂等至关重要。
我们计算的目标是得到不同电子态(如基态S₀、第一激发单重态S₁和第一激发三重态T₁)之间的SOC矩阵元,通常记作 <S₁|H_SO|T₁>
,其数值大小直接反映了这两个态之间相互作用的强度。
1.2 本教程的思路
本教程将遵循以下步骤:
- 实例讲解:通过三个由简到繁的实例,学习如何为不同体系构建ORCA输入文件。
- 普通有机分子(甲醛):不含重原子,无需考虑复杂的相对论效应,适合入门。
- 含重金属的配合物(锇配合物):包含重原子,必须使用相对论方法处理。
- 周期性体系片段(石墨烯片段):学习如何处理从晶体中切出并钝化的模型。
- 运行计算:详细说明如何在Windows的命令提示符(CMD)中运行ORCA任务。
- 解读输出:学习如何从ORCA庞大的输出文件中找到并理解与SOC相关的关键信息。
- 数据处理:介绍如何使用一个简单的Python脚本,自动从输出文件中提取和整理SOC数据,提高效率。
2. 计算实例与输入文件详解
2.1 实例一:普通有机分子(甲醛)
甲醛 (CH₂O) 是一个理想的入门分子。它只包含轻元素,结构简单。
输入文件 (formaldehyde.inp)
! B3LYP/G TZVP miniprint tightSCF
# 从ORCA 5.0开始,grid和gridx关键词已不再需要手动设置,使用默认值即可。
%tddft
nroots 5
dosoc true
tda false
printlevel 3
end
* xyz 0 1
C 0.00000000 0.00000000 -0.52513500
H 0.00000000 0.93987900 -1.11261300
H 0.00000000 -0.93987900 -1.11261300
O 0.00000000 0.00000000 0.67200400
*
关键词详解
-
!
主关键词行:- B3LYP/G: 使用B3LYP泛函。
/G
表示使用与Gaussian程序定义相同的B3LYP泛函,便于结果对比。 - TZVP: 使用def2-TZVP基组,这是一个质量较高的基组。
- miniprint: 简化输出,隐藏一些不常用的信息(如布居分析),使输出文件更简洁。
- tightSCF: 使用比默认更严格的自洽场(SCF)收敛标准,这对于后续的激发态计算非常重要。
- B3LYP/G: 使用B3LYP泛函。
-
%tddft ... end
TDDFT计算设置模块:- nroots 5: 计算5个激发态。当
dosoc
为true
时,程序会自动计算5个单重激发态 和 5个三重激发态。 - dosoc true: 核心关键词,指示ORCA在TDDFT计算后,继续进行SOC计算。
- tda false: 不使用Tamm-Dancoff近似(TDA)。
false
表示进行完整的TDDFT计算,理论上更精确。 - printlevel 3: 提高输出信息的详细程度。对于SOC计算,这个设置至关重要,它会输出我们需要的详细SOC矩阵元,默认级别下该信息不输出。
- nroots 5: 计算5个激发态。当
-
* xyz 0 1 ... *
分子坐标模块:- xyz: 表明坐标格式是XYZ。
- 0: 分子总电荷为0。
- 1: 分子自旋多重度为1(基态是单重态)。
- 随后是原子的元素符号和三维坐标。
2.2 实例二:含重金属的配合物
这个例子是一个含重金属锇(Os)的配合物。对于Os这样的重原子,必须考虑相对论效应。
输入文件 (os_complex.inp)
! B3LYP/G DKH2 DKH-def2-TZVP SARC/J RIJCOSX cpcm(CH2Cl2) tightSCF
# 使用了相对论哈密顿、溶剂模型和RI加速
%basis
NewGTO Os "SARC-DKH-TZVP" end
end
%tddft
nroots 10
dosoc true
tda false
printlevel 3
end
* xyz 0 1
... (此处省略了该分子的完整坐标) ...
*
注意: 该分子的坐标非常长,您可以从本文档的源文件中获取,或使用您自己的重金属配合物结构。
关键词详解
与实例一不同的地方:
- DKH2: 使用二阶Douglas-Kroll-Hess (DKH2)标量相对论哈密顿。这是处理重元素体系电子结构时,将相对论效包含在内的标准方法。
- DKH-def2-TZVP: 使用专门为DKH哈密顿重收缩过的def2-TZVP基组。
- RIJCOSX: 使用RI-J和COSX近似来加速库仑和交换积分的计算。对于大体系,这个关键词可以极大地缩短计算时间。
- cpcm(CH2Cl2): 使用CPCM连续介质溶剂化模型,模拟二氯甲烷(CH2Cl2)溶剂环境。
%basis ... end
基组指定模块:- NewGTO Os "SARC-DKH-TZVP" end:
DKH-def2-TZVP
基组并未对Os这样的超重元素进行定义。因此,我们在这里为Os原子手动指定一个合适的、支持相对论计算的全电子基组SARC-DKH-TZVP
。
- NewGTO Os "SARC-DKH-TZVP" end:
- SOC计算方法: 默认情况下,ORCA使用精度较高的自旋轨道平均场 (Spin-Orbit Mean-Field, SOMF) 方法来计算SOC积分。对于重元素,SOMF方法远比老旧的有效核电荷 (Zeff) 方法可靠。
2.3 实例三:周期性体系片段(石墨烯)
对于晶体等周期性体系,我们可以截取一个有限大小的片段进行研究。为了消除边界上不饱和的“悬挂键”,我们通常用氢原子将其“钝化”。这里我们以一个由24个碳原子构成的石墨烯片段(即蒄C₂₄H₁₂)为例。
输入文件 (graphene_fragment.inp)
! B3LYP def2-TZVP RIJCOSX tightSCF
%tddft
nroots 10
dosoc true
tda false
printlevel 3
end
* xyz 0 1
C 1.22823 2.12726 0.00000
C 2.45645 1.41817 0.00000
C 2.45645 -1.41817 0.00000
C 1.22823 -2.12726 0.00000
C -1.22823 -2.12726 0.00000
C -2.45645 -1.41817 0.00000
C -2.45645 1.41817 0.00000
C -1.22823 2.12726 0.00000
C 0.00000 2.83634 0.00000
C 1.22823 0.70909 0.00000
C 0.00000 1.41817 0.00000
C -1.22823 0.70909 0.00000
C -1.22823 -0.70909 0.00000
C 0.00000 -1.41817 0.00000
C 1.22823 -0.70909 0.00000
C 0.00000 0.00000 0.00000
C 3.36554 0.70909 0.00000
C 3.36554 -0.70909 0.00000
C 0.00000 -2.83634 0.00000
C -3.36554 -0.70909 0.00000
C -3.36554 0.70909 0.00000
C 0.00000 4.25451 0.00000
C 2.12726 2.83634 0.00000
C 2.12726 -2.83634 0.00000
H 2.12726 3.91680 0.00000
H 0.00000 4.93151 0.00000
H -2.12726 3.91680 0.00000
H -4.27463 1.24734 0.00000
H -4.27463 -1.24734 0.00000
H -2.12726 -3.91680 0.00000
H 0.00000 -4.93151 0.00000
H 2.12726 -3.91680 0.00000
H 4.27463 -1.24734 0.00000
H 4.27463 1.24734 0.00000
H -2.12726 -2.83634 0.00000
H 2.12726 -2.83634 0.00000
*
关键词详解
- 由于该体系只含C和H,计算设置与实例一基本相同。
- RIJCOSX 被加入,因为这是一个中等大小的分子(36个原子),使用加速方法是明智的。
- 这个例子的关键在于模型的构建思想:将一个无限的周期性体系,通过“切割-钝化”的策略,转化为一个可以在分子量子化学框架下处理的有限大小的团簇模型。
3. 在Windows上运行ORCA计算
假设您已经安装了ORCA,并将其安装路径添加到了系统的环境变量(PATH)中。
-
准备文件:
- 在你喜欢的位置(如桌面)创建一个新文件夹,例如
C:\orca_calc
。 - 使用文本编辑器(如Notepad++,不要用Windows自带的记事本)创建输入文件,例如
formaldehyde.inp
,并将其保存在上述文件夹中。
- 在你喜欢的位置(如桌面)创建一个新文件夹,例如
-
打开命令提示符:
- 在Windows搜索栏中输入
cmd
并回车,打开命令提示符窗口。
- 在Windows搜索栏中输入
-
进入计算目录:
- 在CMD中,使用
cd
(change directory) 命令进入你创建的文件夹。cd C:\orca_calc
- 在CMD中,使用
-
运行ORCA:
- 输入以下命令并回车:
orca formaldehyde.inp > formaldehyde.out
- 命令解释:
orca
: 调用ORCA程序。formaldehyde.inp
: 指定输入的计算任务文件。>
: 这是一个“重定向”符号,它将ORCA在屏幕上本应显示的所有输出信息,全部写入到后面的文件中。formaldehyde.out
: 指定输出文件的名称。计算过程和所有结果都将被保存在这里。
- 输入以下命令并回车:
计算开始后,CMD窗口不会有任何动静,但你可以看到 formaldehyde.out
文件被创建,并且其大小在不断增长。计算所需时间取决于体系大小和计算机性能,从几分钟到数小时甚至数天不等。
4. 解读ORCA输出文件中的SOC信息
计算结束后,用文本编辑器打开 .out
文件。这是一个很长的文本文件,我们需要找到关键部分。你可以使用Ctrl+F
搜索功能。
关键部分1:详细的SOC矩阵元 (printlevel 3
的功劳)
搜索关键词:CALCULATED SOCME BETWEEN TRIPLETS AND SINGLETS
(ORCA 4) 或 SPIN-ORBIT COUPLING MATRIX ELEMENTS
(ORCA 5)
你会看到如下格式的表格(以ORCA 4为例):
----------------------------------------------------------------------------
CALCULATED SOCME BETWEEN TRIPLETS AND SINGLETS
<T|HSO|S> (Re, Im) cm-1
----------------------------------------------------------------------------
Root MS= 0 -1 +1
T S
----------------------------------------------------------------------------
1 0 ( 0.00, -63.78) ( -0.00, 0.00) ( -0.00, -0.00)
1 1 ( 0.00, 0.00) ( -0.00, -0.00) ( -0.00, 0.00)
1 2 ( 0.00, 0.00) ( 5.62, 0.00) ( 5.62, -0.00)
...
2 1 ( 0.00, 48.56) ( 0.00, 0.00) ( 0.00, -0.00)
...
- 表头解读:
<T|HSO|S>
: 表示这是三重态(T)和单重态(S)之间的SOC矩阵元。(Re, Im) cm-1
: 数据对分别是矩阵元的实部(Real)和虚部(Imaginary),单位是波数(cm⁻¹)。MS= 0, -1, +1
: 三重态有三个自旋磁量子数(Ms)的子态,这里分别列出了单重态与这三个子态的耦合。
- 数据解读:
T
和S
列是态的序号。S=0
代表基态(S₀),S=1
代表S₁,T=1
代表T₁,以此类推。- 例如,要找
<S₁|H_SO|T₂>
的耦合,就找到T=2, S=1
这一行。 - 总SOC的计算: 最终我们关心的总SOC大小是所有分量的方和根。例如,对于
<S|H_SO|T>
,总SOC =sqrt[ (Re_MS=0)² + (Im_MS=0)² + (Re_MS=-1)² + (Im_MS=-1)² + (Re_MS=+1)² + (Im_MS=+1)² ]
。
关键部分2:混合后的态能量
搜索关键词:Eigenvalues of the SOC matrix
-------------------------------
Eigenvalues of the SOC matrix:
-------------------------------
State cm-1 eV
0: 0.00 0.0000
1: 20562.88 2.5495 <-- T1(Ms=...)
2: 20623.57 2.5570 <-- T1(Ms=...)
3: 20626.93 2.5574 <-- T1(Ms=...)
4: 20758.21 2.5737 <-- S1
...
- 这部分列出的是考虑了SOC混合效应之后,新的电子态的能量。
- 你会发现,原本简并的三个三重态子态(在没有SOC时能量相同)现在能量发生了微小的分裂,这就是零场分裂 (Zero-Field Splitting, ZFS)。ZFS的大小可以从这里获得,例如上表中T₁的ZFS大约为
20626.93 - 20562.88 = 64.05 cm⁻¹
。
关键部分3:SOC校正后的光谱
搜索关键词:SOC CORRECTED TD-DFT/TDA-EXCITATION SPECTRA
***************************************************
* SOC CORRECTED TD-DFT/TDA-EXCITATION SPECTRA *
***************************************************
-----------------------------------------------------------------------------
...
State 4: E= 2.574 eV ...
TO STATE E(eV) OSC. STRENGTH(LEN) ...
...
4 2.574 0.000001
...
- 这部分列出了从基态到各个SOC混合后激发态的跃迁信息。
- 最重要的是振子强度 (OSC. STRENGTH)。对于从基态到原先是纯三重态的跃迁,其振子强度在SOC校正后不再是严格的0,而是一个很小的值。这个值可以用来估算磷光发射的速率。
5. 使用Python脚本自动提取SOC数据
手动从输出文件中查找并计算每一个SOC值非常繁琐且容易出错。我们可以用一个简单的Python脚本来自动化这个过程。
这个脚本将极大地简化你的数据分析工作,让你能更专注于结果的物理解释。祝你计算顺利!