============== 价键轨道 ============== 我们将在这一讲中详细介绍 **价键轨道** 这一重要概念。价键轨道的特点是 **定域** 和 **非正交** 。对于复杂体系和实际计算,“定域”的概念有些复杂和笼统。具体要定域到什么程度才叫“定域”?不同定域程度的轨道可以得到什么不一样的结果?我们该如何选择这些轨道?这一讲,让我们来讨论这些问题。 价键轨道和分子轨道的区别与联系 ============================== 我们知道,分子轨道是 **离域正交** 的,而价键轨道是 **定域非正交** 的。分子轨道采用一种线性组合原子轨道-分子轨道( LCAO-MO )的方式进行构造,即对称性匹配且能量相近的一组原子轨道线性组合为一系列分子轨道。在这些分子轨道中,有些轨道的能量下降,电子更集中于原子之间,称为 **成键** 轨道;另一些轨道的能量升高,电子更集中于原子之外,称为 **反键** 轨道;还有一些轨道的能量基本和原子轨道的能量保持不变,电子的出现范围也基本和原子轨道一致,称为 **非键** 轨道。 比如,对于 H\ :sub:`2` 分子,两个 H 原子上的 :math:`1s`\ 轨道能量相近,对称性匹配,可以通过线性组合成为分子轨道。通过简单计算,我们可以得到两个互相正交的分子轨道: .. math:: \left\{ \begin{array}{l} \phi_1 = \frac{1}{\sqrt{2+2S_{12}}}\varphi_{\textrm{H}_1} + \frac{1}{\sqrt{2+2S_{12}}}\varphi_{\textrm{H}_2} \\ \phi_2 = \frac{1}{\sqrt{2-2S_{12}}}\varphi_{\textrm{H}_1} - \frac{1}{\sqrt{2-2S_{12}}}\varphi_{\textrm{H}_2} \end{array} \right. 其中 :math:`\varphi_{\textrm{H}_1}`\ 表示氢原子 H1 上的原子轨道,:math:`\varphi_{\textrm{H}_2}`\ 表示另一个氢原子 H2 上的原子轨道,:math:`S_{12}`\ 表示两个原子轨道之间的重叠。对于 H\ :sub:`2` ,不难发现,:math:`\phi_1`\ 是成键轨道, :math:`\phi_2`\ 是反键轨道。另外,不管是在 :math:`\phi_1`\ 还是 :math:`\phi_2`\ 中,原子轨道 :math:`\varphi_{\textrm{H}_1}`\ 和 :math:`\varphi_{\textrm{H}_2}`\ 都是等价的。这是由于分子的对称性( H\ :sub:`2` 是同核双原子分子)决定的。 对于价键理论,计算采用的是原子轨道。因此,在 H\ :sub:`2` 的价键计算中,我们直接使用 :math:`\varphi_{\textrm{H}_1}`\ 和 :math:`\varphi_{\textrm{H}_2}`\ 构造价键结构,进而构造价键波函数。上式可以看作是分子轨道和价键轨道之间的区别与联系。 实际计算中,不管是价键轨道还是分子轨道,都是利用给定基组的基函数来进行构造的。除了极小基组外,对于某一个元素,指定基组的基函数通常比实际的占据轨道(原子轨道)更多,比如极化函数、弥散函数等等,适用于不同环境下的计算。因此,价键轨道也表示为基函数的线性组合。不过,价键轨道和分子轨道之间的联系和区别始终存在,这是由两种理论的特点决定的。 不同的价键轨道 ================ 在实际计算中,“定域”和“离域”的区别并不总是非常清晰的。相反,定域到离域是一个渐进的过程。从定域在一个原子上,到定域在某个基团上,再到邻近的若干个原子或基团,最后是整个分子的离域。因此,价键轨道也有不同的离域程度。需要指出的是,定域在某个基团上的轨道,在基团内部可以像分子轨道一样完全离域。 通常,我们在构建价键轨道的时候,会先定义一个定域的 **单位** 。这个 **单位** 可以是一个原子,也可以是一个基团,如甲基 CH\ :sub:`3` ,苯基 C\ :sub:`6` H\ :sub:`5` 等等。如果一个价键轨道只涉及一个单位,比如定域在一个原子上,或者一个基团上,那么我们就称这种轨道为严格定域的轨道;如果轨道涉及到整个体系中所有的单位,那么我们说这是个离域轨道;如果轨道涉及某个单位及其邻近的单位,但是并不在整个分子中离域,我们称这种轨道为半定域轨道。以 C\ :sub:`4` H\ :sub:`6` 分子为例,不同类型轨道的差别如 :numref:`figure_c4h6_orb_compare` 所示。 .. _figure_c4h6_orb_compare: .. figure:: _static/c4h6_orb_compare.png :width: 800 :align: center 以 C\ :sub:`4` H\ :sub:`6` 分子为例,不同类型的轨道对比 在这一节,我们将介绍价键计算中经常涉及的轨道类型及其特点。 杂化原子轨道(Hybrid Atomic Orbital, HAO) -------------------------------------------- HAO 是一类严格定域的价键轨道。这种轨道严格定域在某个原子或基团上,且在其它原子或基团(即使它们是相邻的)都没有分布。典型的 HAO 例子是我们常说的 H 原子轨道或 C\ :sub:`2` H\ :sub:`6` 中定域在 CH\ :sub:`3` 基团上的轨道。HAO 是最符合经典价键理论特点的轨道类型。利用 HAO 构造的价键结构具有明确的共价/离子结构特点,对分析化学键最有帮助。 Coulson-Fischer 轨道(Coulson-Fisher Orbital, CFO) ---------------------------------------------------- HAO 具有化学图像鲜明的特点,但是由此带来的问题是计算量较大。对于一个稍大一点的体系,HAO 通常涉及较多的价键结构数和较多的轨道数,由此带来了较大的计算量。为了获得更紧凑的价键波函数,从而减少计算量,Coulson 和 Fischer 提出了一种更离域的轨道 CFO 。和 HAO 相比,CFO 在邻近的原子/基团上也有分布。以 H\ :sub:`2` 为例,如果 :math:`\varphi_{\textrm{H}_1}`\ 和 :math:`\varphi_{\textrm{H}_2}`\ 是两个 H 原子的原子轨道,即 HAO ,则 CFO 可以表述为: .. math:: \left\{ \begin{array}{l} \phi^\textrm{CFO}_1 = \varphi_{\textrm{H}_1} + \lambda_1 \varphi_{\textrm{H}_2}\\ \phi^\textrm{CFO}_2 = \varphi_{\textrm{H}_2} + \lambda_2 \varphi_{\textrm{H}_1} \end{array} \right. 可以看到,CFO 是以某个 HAO 为基础,向邻近原子/基团离域的轨道,属于半定域轨道。以 H\ :sub:`2`\ 为例,如果用 HAO 构造价键结构,那么就是我们之前看到的 3 个价键结构: 1 个共价结构和 2 个离子结构;如果采用 CFO ,那么我们将只有 1 个共价形式的价键结构,这个价键结构包含了 HAO 下的 3 个价键结构。 CFO 可以在降低计算量的同时保持最终结果的精确性,但同时也丧失了价键结构原本具有的清晰的化学图像,因为此时共价结构和离子结构都糅合在了一起,无法区分。 重叠加强轨道(Overlap Enhanced Orbital, OEO) ---------------------------------------------- 如果我们将 CFO 进一步离域,让轨道能离域在整个体系所有的原子/基团中,我们就得到了 OEO 。OEO 是离域轨道。此时,价键结构同样不具备清晰的化学图像,我们无法基于 OEO 构建的结构分析化学键。但是,因为轨道的离域,OEO 计算所得到的能量通常是最低的。数学上可以证明,同样的活性空间下,采用全结构和 OEO 的价键计算可以得到和分子轨道中 CASSCF 同样的能量。 需要指出,虽然 OEO 和分子轨道都是在整个体系中离域的,但是 OEO 并不是分子轨道。分子轨道的离域程度由对称性决定,分子轨道的形状通常反映了体系本身的对称性特点。而 OEO 是以某个原子或基团为主,再向其它原子或基团离域,其本质还是原子轨道。 XMVB 中构造价键轨道的方法 ========================== 最简单的:直接指定基函数 ------------------------- 最简单的构造方法就是直接指定每个价键轨道包含的基函数。比如,对于 6-31G 基组下的 H\ :sub:`2` 分子,它的分子轨道信息为: .. code-block:: :linenos: 1 2 3 4 -0.5958 0.2385 0.7747 1.4044 A A A A 1 H 1 S 0.326935 0.122649 0.766315 1.122635 2 H 1 S 0.271806 1.714895 -0.686252 -1.349432 3 H 2 S 0.326935 -0.122649 0.766315 -1.122635 4 H 2 S 0.271806 -1.714895 -0.686252 1.349432 可以看到,在 6-31G 基组下,一个H原子有两个 :math:`s`\ 型基函数。因此,我们如果想要构造 HAO 类型的价键轨道,我们可以这样写价键轨道的描述部分信息: .. code-block:: :linenos: $ORB 2 2 1 2 3 4 $END $ORB 中第一行 ``2 2`` 表示每个价键轨道有 2 个基函数,后面的两行 ``1 2`` 和 ``3 4`` 表示两个价键轨道分别由基函数 1 2 和基函数 3 4 构成。结合基组信息,我们可以知道这两个价键轨道为 HAO 类型,严格定域在某个 H 原子上。 如果我们将基组换为 cc-pVDZ, $ORB 部分就需要进行相应的改变。由于 cc-pVDZ 基组下,每个 H 原子有5个基函数,分别为 S , S , PX , PY , PZ 类型,因此我们的 $ORB 部分的描述就需要相应地变为: .. code-block:: :linenos: $ORB 5 5 1 2 3 4 5 6 7 8 9 10 $END 更进一步,如果我们假设此时 H-H 键在 *z* 轴上,因此 PX 和 PY 基函数对 H-H 的成键没有贡献,可以在构造价键轨道时剔除,此时 $ORB 可以修改为: .. code-block:: :linenos: $ORB 3 3 1 2 5 6 7 10 $END 可以看到,直接指定基函数构造价键轨道的方法具有简单直观的特点。不过,对于稍大一点的体系,这种方法也会使得轨道的描述变得非常冗长和复杂。同时,对于同样的体系,一旦基组发生变化,轨道就需要重新描述。而我们在实际计算中常常涉及多种基组的计算,这样就会使得实际计算不方便。在早期的 XMVB 版本中,直接指定基函数是唯一的构造方法。同时,直接指定基函数也仍然是目前 XMVB 的默认构造方法。我们后续推出了其它构造方法,希望能简化价键轨道的构造。 指定原子构造价键轨道 --------------------- 由于价键理论注重的是原子和基团之间的化学成键,价键轨道也是定域在原子和基团上,而基团是由原子构成的,我们自然会想到,能否通过指定轨道定域的原子来描述价键轨道。我们可以结合 XMVB 中的关键词来通过指定原子构造价键轨道。当我们指定了定域轨道涉及的原子后,XMVB 会将这些原子上所有的基函数囊括进来,作为该轨道的组成部分。同样的 H\ :sub:`2` 分子,我们可以用下面的形式,利用价键轨道涉及的原子来定义轨道(我们只保留了和轨道定义有关的关键词): .. code-block:: :linenos: $CTRL ORBTYP=HAO FRGTYP=ATOM $END $ORB 1 1 1 2 $END 在这个示例中,我们利用关键词 ``ORBTYP=HAO FRGTYP=ATOM`` 告诉 XMVB 通过指定轨道定域的原子来构造价键轨道;在 $ORB 中,第一行的 ``1 1`` 表示两个轨道各定域在 1 个原子上,后续的两行描述了两个轨道分别定域在原子 1 和原子 2 上。同样,对于乙烷分子 C\ :sub:`2` H\ :sub:`6` ,我们如果需要将轨道分别定域在两个 CH\ :sub:`3` 基团上,我们可以这样定义: .. code-block:: :linenos: $CTRL ORBTYP=HAO FRGTYP=ATOM $END $ORB 4 4 4 4 4 4 4 4 4 4 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 $END 在我们的定义中,每个价键轨道都定域在某个 CH\ :sub:`3` 基团上,因此定域在相同基团上的轨道定义都是相同的。相对于直接描述基函数的方法,这种方法更简洁,且可以适应任何基组。不论计算时选择何种基组,轨道描述部分都是不变的。但是,这种方法无法准确描述轨道的对称性,或者通俗点说,轨道的“样子”。在实际计算中,我们常常需要提供一个比较好的初始猜测,才能保证计算的顺利进行。 利用基函数的对称性构造价键轨道 ------------------------------- 如果计算的体系本身有明确的对称性,我们还可以利用对称性将基函数 **分组** ,然后利用这些不同的 **组** 来构造价键轨道。这种构造方法称为对称原子轨道(Symmetrized Atomic Orbital, SAO)方法。一个典型的例子比如 HF 分子。这个分子是一个异核双原子分子。如果将键轴放在 *z* 轴上,那么我们可以依据分子的对称性,将基函数分成3组: 1. 具有和 :math:`\sigma`\ 成键相同对称性的基函数,如 :math:`s`\ ,:math:`p_z`\ , :math:`d_{xx}`\ , :math:`d_{yy}`\ , :math:`d_{zz}`\ 等; #. 和 :math:`p_x`\ 类似的基函数,比如 :math:`p_x`\ , :math:`d_{xz}`\ 等; #. 和 :math:`p_y`\ 类似的基函数,比如 :math:`p_y`\ , :math:`d_{yz}`\ 等 这样,我们就可以按照上面的特性, 将原子上的基函数进行分组,并利用这些组来构建价键轨道。HF 分子的轨道输入如下: .. code-block:: :linenos: $CTRL ORBTYP=HAO FRGTYP=SAO $END $FRAG 1 1 1 1 spzdxxdyydzz 2 pxdxz 2 pydyz 2 s 1 $END $ORB 1 1 1 1 1 1 1 1 2 3 1 4 $END $GEO H 0.0 0.0 0.0 F 0.0 0.0 1.0 $END 我们看到,此时关键词变成了 ``FRGTYP=SAO`` ,表明我们需要利用 SAO 方法来构建价键轨道。同时,输入文件中出现了一个新的模块 ``$FRAG`` 。这个模块用于描述基函数的分组情况。在 HF 分子的例子中,我们将基函数分为了 4 组,每组包含 1 个原子上的基函数,这就是第一行 ``1 1 1 1`` 的含义。接下来 4 行分别定义了每个组内的基函数。每一行有两部分内容,内容间用空格隔开。第一部分内容描述了组内的基函数(这部分内容内没有空格),第二部分描述了这些基函数在哪些原子上,可以用空格隔开多个原子。比如,第一行 ``spzdxxdyydzz 2`` ,我们可以将它分解为 ``spzdxxdyydzz`` 和 ``2`` 两部分内容。第一部分内容表示这组基函数包括了 :math:`s`\ , :math:`p_z`\ , :math:`d_{xx}`\ , :math:`d_{yy}`\ 和 :math:`d_{zz}`\ 基函数,第二部分表示这些基函数在第二个原子(根据 $GEO 中的内容,可以知道这个原子是 F 原子)上。综合来看, ``spzdxxdyydzz 2`` 表示这组基函数包含了第二个原子( F 原子)上的 :math:`s`\ , :math:`p_z`\ , :math:`d_{xx}`\ , :math:`d_{yy}`\ 和 :math:`d_{zz}`\ 基函数。同样,第二行表示这一组包含了 F 原子上的 :math:`p_x`\ 和 :math:`d_{xz}`\ 基函数;第三行表示这组包含了 F 原子上的 :math:`p_y`\ 和 :math:`d_yz`\ 基函数;最后一组表示 H 原子上的 :math:`s`\ 基函数。 有了基函数分组的定义,我们就可以在 $ORB 中利用这些分组来构建价键轨道。$ORB 中第一行 ``1 1 1 1 1 1`` 表示有 6 个轨道,每个轨道包含一组基函数。之后每一行指明该轨道包含了哪些组。根据之前 $FRAG 的定义,不难看出,轨道 3 表示 F 原子的 :math:`p_x`\ 轨道,轨道 4 表示 F 原子的 :math:`p_y`\ 轨道;最后一个轨道表示 H 原子上的 :math:`s`\ 轨道;轨道 1 , 2 和 5 是 F 原子上 :math:`\sigma`\ 空间的轨道,不难猜出是 :math:`1s`\ ,:math:`2s`\ 和以 :math:`p_z`\ 为主的 :math:`\sigma`\ 键轨道。 我们再来看一个例子:乙烯 C\ :sub:`2` H\ :sub:`4` 分子。这是个典型的平面分子。假设该分子在 *XY* 平面内, :math:`\pi`\ 轨道在 :math:`p_z`\ 方向上。如果我们关心的活性空间是 :math:`\pi`\ 轨道空间,那么 *XY* 平面内的 :math:`\sigma`\ 键就与我们关心的问题无关,我们可以将 :math:`\sigma`\ 空间完全离域,保持分子轨道的特点,只针对 :math:`\pi`\ 空间构造定域轨道。因此,我们可以将基函数分为两组: 1. 在 *XY* 平面内,属于 :math:`\sigma`\ 空间的基函数,如 :math:`s`\ , :math:`p_x`\ , :math:`p_y`\ , :math:`d_{xx}`\ , :math:`d_{yy}`\ , :math:`d_{zz}`\ , :math:`d_{xy}`\ 等; #. 垂直于 *XY* 平面,属于 :math:`\pi`\ 空间的基函数,比如 :math:`p_z`\ , :math:`d_{xz}`\ , :math:`d_{yz}`\ 等 由于我们只针对第二组基函数构造定域轨道,因此我们可以用下面的方式构造价键轨道: .. code-block:: :linenos: $CTRL ORBTYP=HAO FRGTYP=SAO $END $FRAG 6 1 1 spxpydxxdyydzzdxy 1 2 3 4 5 6 pzdxzdyz 1 pzdxzdyz 4 $END $ORB 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 3 $END 我们在 $FRAG 中将轨道分为了 3 组,其中第一组是 :math:`\sigma`\ 空间的基函数,我们将所有原子的 :math:`\sigma`\ 空间基函数都放在这一组,用来构造离域的轨道;第二和第三组表示两个 C 原子上的 :math:`\pi`\ 空间基函数,用来构造定域的活性轨道。在 $ORB 中,前 7 个轨道都用第一组基函数构造,表示它们都是 :math:`\sigma`\ 空间的非活性轨道,最后两个轨道是 :math:`\pi`\ 空间的定域活性轨道。 SAO 构造价键轨道同样具有一定的灵活性,且对不同的基组有良好的适应性。相对于直接指定基函数,SAO 的输入文件更简洁;相对于指定原子的方法,SAO 由于考虑了对称性,对初始猜测的要求有一定的降低,适应性更好。不过,SAO 通常需要体系本身有一定的对称性,基函数可以按照对称性良好分组的情况下才有优势。如果体系本身对称性很低,或者在我们关心的问题中,基函数无法按照对称性良好分组,那么 SAO 就不是一个性价比高的方法。