9. 如何提供更有效的初始猜测

我们已经大致了解了价键理论,以及如何使用 XMVB 软件进行常见的价键计算。在实际计算中,我们除了需要定义轨道、活性空间等基本信息外,还需要提供一个初始猜测。虽然很多情况下我们可能并不需要关注初始猜测如何产生,但是默认的初始猜测并不是所有情况下都可以满足我们的要求的。XMVB 提供了几种不同的初始猜测方案,用户可以根据实际需求来选择合适的方案。在这一讲中,我们将介绍这几种初始猜测方案,并给用户一些建议。

9.1. 几种不同的初始猜测方案

我们首先介绍 XMVB 中的几种产生初始猜测的方案。在 XMVB 中,用户通过在 $CTRL 中定义类似 GUESS=XXX 的关键词来指定初始猜测的方案。为了方便大家查阅,我们将标题定为了关键词的具体写法。

9.1.1. GUESS=AUTO

在这个方案中,XMVB 会首先根据体系的多重度进行一次 RHF 或 ROHF 计算,之后根据各个轨道包含的基函数将价键轨道分块,使用相同基函数的轨道会划分到同一块,然后利用 RHF/ROHF 的 Fock 矩阵构造各个轨道块的 Fock 矩阵。通过对角化轨道块的 Fock 矩阵得到价键轨道的初始猜测。通常情况下,这种方案可以得到足够好的初始猜测,自动化程度也足够,因此这个方案是初始猜测的默认方案。如果没有任何指定,XMVB 将尝试用这种方案产生初始猜测。但是,如果用户采用类似下面的轨道构造,该方案可能面临困难:

 1CH2 example
 2$CTRL
 3STR=FULL NAO=2 NAE=2 NMUL=1
 4BASIS=6-31G* ORBTYP=HAO FRGTYP=ATOM
 5$END
 6$ORB
 71 2 2 1 1
 81       # C1 1s
 91 2     # C1-H2 bond
101 3     # C1-H3 bond
111       # C1 active orbital 1
121       # C1 active orbital 2
13$END
14$GEO
15C 0.0 0.0 0.0
16H 1.0 0.0 0.0
17H 0.0 1.0 0.0
18$END

这个算例的本意是想计算 CH: sub:2 自由基中 C 上两个未成键电子的组态及其能量的。因此,用户期望最后的活性轨道能对应于 C 上的 \(2p\) 轨道。但是实际计算时,用户会发现计算因为初始猜测而崩溃的情况。这是因为 XMVB 会将轨道 1, 4, 5 分为一块,轨道 2 为一块,轨道 3 为一块,因为各块涉及的基函数不同。而在构造 Fock 矩阵并对角化的时候,由于 3 个轨道块都涉及 C 的基函数,对角化的时候都是 C 的 \(1s\) 轨道能量最低,因此轨道 1, 2, 3都会是 C 的 \(1s\) 轨道,从而导致计算崩溃。

9.1.2. GUESS=READ

这个方案将会读取用户指定的初始猜测。在 XMVB 计算完成后,我们得到的输出文件除了最主要的 xmo 文件外,还有一个扩展名为 orb 的文件。这个文件存储了计算获得的价键轨道,因此可以用来做初始猜测。此时我们需要一个 $GUS 块,并将 orb 文件的内容作为 $GUS 的内容,并在 $CTRL 中指定 GUESS=READ 就可以了。具体的算例可以参见 节 6.2

9.1.3. GUESS=MO/NBO

分子轨道理论的计算可以提供对称性匹配的离域轨道,而根据 LCAO-MO 的想法,离域轨道可以看成是由定域轨道组合而成的。因此,我们可以反过来利用离域轨道为定域轨道提供初始猜测。另一方面,自然键轨道(Natural Bond Orbital, NBO)可以将离域的分子轨道转换为定域在两个原子之间的成键轨道或者定域在某个原子上的原子轨道。因此,我们可以利用 MO 或者 NBO 来为价键计算提供初始猜测。

采用这个方案时,用户需要首先进行 HF 计算,了解各个分子轨道的图像。如果想要采用 NBO 作为初始猜测,还需要利用 XMVB 提供的 NBOPREP 工具。之后,用户同样需要创建 $GUS 块,其中的内容如下所示:

1$GUS
21 1
32 2
43 4
54 3
6$END

可以看到,此时 $GUS 中的内容分为两列,第一列是价键轨道的编号,第二列是 MO/NBO 的编号。每一行表示价键轨道 X 从 MO/NBO 中获得对应基函数的系数作为初始猜测。

9.1.4. GUESS=UNIT

这个方案非常简答:对于每一个轨道,自动将第一个基函数的系数设为 1 ,其余设为 0 。如果这个基函数已经在之前的轨道中设定过了,则自动移到下一个基函数并赋值 1 。

9.2. 如何选择合适的初始猜测方案?

对于简单体系,比如双原子分子,或者平面共轭体系,GUESS=AUTO 可以给出足够好的初始猜测。更一般的,如果用户定义的价键轨道可以良好地进行分块,即块与块之间没有共有的基函数(见 节 4节 5节 6节 7 中的例子),那么 GUESS=AUTO 都可以给出不错的初始猜测。因此,我们一般都推荐用户让 XMVB 自动产生初始猜测。

对于涉及扫描性质的计算,比如势能面和反应历程的扫描,由于所有计算都涉及同样的结构特点和轨道定义,因此我们建议用户可以利用 GUESS=READ ,将前一步计算得到的轨道作为后一步计算的初始猜测。对于 OEO 轨道的计算,我们也建议用户先进行 HAO 的计算,再将 HAO 的轨道作为 OEO 计算的初始猜测。同样的,对于类似 VBSCD (见 节 7.3 )这种涉及多组价键结构的计算,我们也可以先进行反应物/生成物的计算,再将得到的轨道给全结构的计算作为初始猜测。

如果分子比较复杂,价键计算中的轨道定义无法满足 GUESS=AUTO 的要求,也没有可以参考利用的已有价键轨道来读取,我们建议用户使用 GUESS=MO 或者 GUESS=NBO 。这种方案虽然使用起来比较繁琐,但是原则上可以适用于所有体系及所有轨道定义方法。