转载: 有关NBO键级, NAO键级,MO键级的讨论
(2014-08-21 16:46:42)
标签:
monboqm |
分类: Gaussian |
1. 前言
用了bndidx关键词后,NBO程序会进行键级分析,输出三种键级矩阵,包括:
1 Wiberg bond index matrix in the NAO basis
2 Atom-atom overlap-weighted NAO bond order
3 MO bond order
矩阵中(i,j)元素对应i、j原子间的键级。对这三种不同键级,有些人对应当选取哪个感到疑惑,此文将谈谈这三种键级的含义及其合理性。值得一提的是,经常有人说“NBO键级”,这种说法是很不严格的,在NBO程序中,上面已经看到有三种键级了,NBO还能产生LMO键级、NRT键级,另外,NBO程序搜索出的NBO们的占据数本身也可以用于衡量键级。所以,不应当使用含糊不清的“NBO键级”这个词。
为了简明且便于验证,本文例子使用HF/STO-3G的基态水分子波函数。下面的是用DMNAO关键词输出的密度矩阵,将在后文用到。后文直接将此矩阵称为DMNAO。
NAO
1
2
3
4
5
6
7
---------- ------- ------- ------- -------
------- ------- -------
1. O 1 (S)
2.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0.0000
2. O 1 (S)
0.0000 1.7325 0.0000 0.0000 0.3538 0.4113
0.4113
3. O 1 (px)
0.0000 0.0000 2.0000 0.0000 0.0000 0.0000
0.0000
4. O 1 (py)
0.0000 0.0000 0.0000 1.1399 0.0000 0.7001
-0.7001
5. O 1 (pz)
0.0000 0.3538 0.0000 0.0000 1.5321 -0.5439
-0.5439
6. H 2 (S)
0.0000 0.4113 0.0000 0.7001 -0.5439 0.7977
-0.0623
7. H 3 (S)
0.0000 0.4113 0.0000 -0.7001 -0.5439 -0.0623
0.7977
2. 第一种键级(Wiberg bond index matrix in the NAO basis):
说起第一种键级,先要回顾一下Wiberg键级和Mayer键级的原始定义。Wiberg键级最早来自Tetrahedron 24,1083,键级W_AB=∑∑P(i,j)^2,其中P为密度矩阵,这个定义只适合正交基。Mayer在CPL 97,270里将其扩展到非正交基,A、B间的键级定义为∑∑PS(i,j)*PS(j,i),这里PS(i,j)是指P和重叠矩阵S做矩阵乘所得矩阵的(i,j)元素。当使用正交基后,变为∑∑P(i,j)*P(j,i),由于P是对称的,所以又还原到了Wiberg键级。Mayer键级数值比较符合一般化学观念,比如单重键约为1,三重键约为3,苯的C-C键约为1.5。
NBO的各种分析主要基于由原始非正交基函数转化成的自然原子轨道(NAO),NAO是正交基,所以可以直接使用Wiberg键级进行分析,也就是NBO输出的Wiberg bond index matrix in the NAO basis。这是三种键级中唯一推荐的键级。NBO给出的结果:
Atom
1
2
3
---- ------
------ ------
1. O 0.0000 0.9552
0.9552
2. H 0.9552 0.0000
0.0039
3. H 0.9552 0.0039
0.0000
可以很容易地通过NAO的密度矩阵DMNAO来计算此矩阵。此矩阵的(2,3)代表H-H的键级,由于6、7号NAO分别是两个氢上的唯一基函数,键级也就是DMNAO(6,7)^2=(-0.0623)^2=0.00388。再比如(1,3)代表的O-H键级,由于1~5号基函数对应O,也就是∑DMNAO(i,7)^2=0.95513。
在NBO输出这个矩阵之后还会输出Wiberg bond index, Totals by atom,指的就是每个原子形成键级的总和,也称为原子价。对于第二种、第三种键级也是如此。
3. 第二种键级(Atom-atom overlap-weighted NAO bond order)
这种键级号称是考虑了原子轨道间重叠,引入距离因素,并使得结果能看出成键反键,但实际结果不好,而且其定义我认为没有任何根据。A、B间键级定义为∑∑P(i,j)*S'(i,j),其中S'是PNAO重叠矩阵(注:PNAO是原始基函数向NAO转换的中间基函数,PNAO在原子内正交而在原子间未必正交)。这种定义很莫名其妙,密度矩阵用NAO的,但重叠矩阵却用PNAO的。从其形式上,可以想起Mulliken键级。Mulliken键级就是Mulliken布居分析得到的两原子间交叉项的总和,∑∑∑2*占据数(imo)*C(i,imo)*C(j,imo)*S(i,j),写成密度矩阵的形式就是∑∑2*P(i,j)*S(i,j)。所以,第二种键级实际上是一种既不完全是NAO、也不完全是PNAO下的不伦不类的Mulliken键级,而且还少乘了2。这种古怪的键级缺乏依据,实际结果又差,所以不要使用。NBO输出的结果为:
Atom
1
2
3
---- ------
------ ------
1. O 0.0000 0.5399
0.5399
2. H 0.5399 0.0000
-0.0145
3. H 0.5399 -0.0145
0.0000
这也容易验证,使用SPNAO关键词可以输出PNAO重叠矩阵S'
NAO
1
2
3
4
5
6
7
---------- ------- ------- ------- -------
------- ------- -------
1. O 1 (S)
1.0000 0.0000 0.0000 0.0000 0.0000 0.0935
0.0935
2. O 1 (S)
0.0000 1.0000 0.0000 0.0000 0.0000 0.4675
0.4675
3. O 1 (px)
0.0000 0.0000 1.0000 0.0000 0.0000 0.0000
0.0000
4. O 1 (py)
0.0000 0.0000 0.0000 1.0000 0.0000 0.3205
-0.3205
5. O 1 (pz)
0.0000 0.0000 0.0000 0.0000 1.0000 -0.2265
-0.2265
6. H 2 (S)
0.0935 0.4675 0.0000 0.3205 -0.2265 1.0000
0.2328
7. H 3 (S)
0.0935 0.4675 0.0000 -0.3205 -0.2265 0.2328
1.0000
设T(i,j)=DMNAO(i,j)*S'(i,j),则T为:
1
2
3
4
5
6
7
1 2.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
2 0.00000 1.73250 0.00000 0.00000 0.00000 0.19228 0.19228
3 0.00000 0.00000 2.00000 0.00000 0.00000 0.00000 0.00000
4 0.00000 0.00000 0.00000 1.13990 0.00000 0.22438 0.22438
5 0.00000 0.00000 0.00000 0.00000 1.53210 0.12319 0.12319
6 0.00000 0.19228 0.00000 0.22438 0.12319 0.79770 -0.01450
7 0.00000 0.19228 0.00000 0.22438 0.12319 -0.01450 0.79770
求O-H键的这种键级也就是∑T(i,7)=0+0.19228+0+0.22438+0.12319=0.53985,和NBO输出的一致。
另外值得一提的是,所谓NPA电荷(无数人谬称为NBO电荷),就是以NAO为基获得的Mulliken电荷。A原子布居数=∑∑P(i,j)S(i,j)=∑∑P(i,j)δ(i,j)=∑P(i,i),所以氧的布居数∑DMNAO(i,i)=2.0000+1.7325+2.0000+1.1399+1.5321=8.4045,净电荷为8-8.4045=-0.4045,和NBO程序输出的一致。
4. 第三种键级(MO bond order)
这个键级的名字十分令人疑惑,而且手册上也没说明。实际上它的定义极其简单,A、B间的键级为∑∑P(i,j)。NBO输出为
Atom 1
2
3
---- ------
------ ------
1. O 0.0000 0.5675
-0.8328
2. H 0.5675 0.0000
-0.0623
3. H -0.8328 -0.0623
0.0000
求O-H2键级就是∑DMNAO(i,7)=0.4113-0.7001-0.5439=-0.8327。结果十分荒诞,明明是典型sigma键,键级却为负。而另一个等价的O-H3键键级却是正值0.4113+0.7001-0.5439=0.5675!可见,这种键级从实际应用上看毫无意义。从理论上同样没有根据,从形式上看和Mulliken键级相仿佛,却少乘了重叠矩阵元,另外NAO又是正交基,不存在交叉项,也不可能求Mulliken键级。而与Wiberg键级相比,又少求了平方。我认为NBO程序中应该去掉这种毫无意义的键级。
5. 用PNAO计算Mayer键级的尝试
原理上,以非正交基PNAO做Mayer键级分析也是可以的,可以代替正交基NAO下的Wiberg键级分析,另外,做Mulliken分析通过交叉项还可以研究成键反键和各分子轨道贡献,但是NBO程序里没有提供。笔者尝试利用PNAO做Mayer键级分析,这首先需要获得PNAO密度矩阵,NBO3.1里不支持输出它的DMPNAO关键词,故通过.47文件在GENNBO5.0下输出,所得矩阵如下:
NAO
1
2
3
4
5
6
7
---------- ------- ------- ------- -------
------- ------- -------
1. O 1( 1s ) 2.0000 0.0000
0.0000 0.0000 0.0000 0.1870 0.1870
2. O 1( 2s ) 0.0000 1.9767
0.0000 0.0000 0.0759 1.0236 1.0236
3. O 1( 2px) 0.0000 0.0000
2.0000 0.0000 0.0000 0.0000 0.0000
4. O 1( 2py) 0.0000 0.0000
0.0000 1.5602 0.0000 0.9391 -0.9391
5. O 1( 2pz) 0.0000 0.0759
0.0000 0.0000 1.7530 -0.7415 -0.7415
6. H 2( 1s ) 0.1870 1.0236
0.0000 0.9391 -0.7415 1.4612 0.3307
7. H 3( 1s ) 0.1870 1.0236
0.0000 -0.9391 -0.7415 0.3307 1.4612
然而,不幸的是,所得Mayer键级矩阵很糟
1
2
3
1 0.00000000
7.23697119
7.23697119
2 7.23697119
0.00000000
1.06885215
3 7.23697119
1.06885215
0.00000000
键级大得出奇。NBO5.0输出的PNAO密度矩阵估计错误的,理论上Tr(PS)应当等于分子总电子数,然而用PNAO的密度矩阵和重叠矩阵竟得到16.22606912。虽然测试这个方法由于NBO程序的bug失败了,但原理上是合理的。
用了bndidx关键词后,NBO程序会进行键级分析,输出三种键级矩阵,包括:
1 Wiberg bond index matrix in the NAO basis
2 Atom-atom overlap-weighted NAO bond order
3 MO bond order
矩阵中(i,j)元素对应i、j原子间的键级。对这三种不同键级,有些人对应当选取哪个感到疑惑,此文将谈谈这三种键级的含义及其合理性。值得一提的是,经常有人说“NBO键级”,这种说法是很不严格的,在NBO程序中,上面已经看到有三种键级了,NBO还能产生LMO键级、NRT键级,另外,NBO程序搜索出的NBO们的占据数本身也可以用于衡量键级。所以,不应当使用含糊不清的“NBO键级”这个词。
为了简明且便于验证,本文例子使用HF/STO-3G的基态水分子波函数。下面的是用DMNAO关键词输出的密度矩阵,将在后文用到。后文直接将此矩阵称为DMNAO。
2. 第一种键级(Wiberg bond index matrix in the NAO basis):
说起第一种键级,先要回顾一下Wiberg键级和Mayer键级的原始定义。Wiberg键级最早来自Tetrahedron 24,1083,键级W_AB=∑∑P(i,j)^2,其中P为密度矩阵,这个定义只适合正交基。Mayer在CPL 97,270里将其扩展到非正交基,A、B间的键级定义为∑∑PS(i,j)*PS(j,i),这里PS(i,j)是指P和重叠矩阵S做矩阵乘所得矩阵的(i,j)元素。当使用正交基后,变为∑∑P(i,j)*P(j,i),由于P是对称的,所以又还原到了Wiberg键级。Mayer键级数值比较符合一般化学观念,比如单重键约为1,三重键约为3,苯的C-C键约为1.5。
NBO的各种分析主要基于由原始非正交基函数转化成的自然原子轨道(NAO),NAO是正交基,所以可以直接使用Wiberg键级进行分析,也就是NBO输出的Wiberg bond index matrix in the NAO basis。这是三种键级中唯一推荐的键级。NBO给出的结果:
可以很容易地通过NAO的密度矩阵DMNAO来计算此矩阵。此矩阵的(2,3)代表H-H的键级,由于6、7号NAO分别是两个氢上的唯一基函数,键级也就是DMNAO(6,7)^2=(-0.0623)^2=0.00388。再比如(1,3)代表的O-H键级,由于1~5号基函数对应O,也就是∑DMNAO(i,7)^2=0.95513。
在NBO输出这个矩阵之后还会输出Wiberg bond index, Totals by atom,指的就是每个原子形成键级的总和,也称为原子价。对于第二种、第三种键级也是如此。
3. 第二种键级(Atom-atom overlap-weighted NAO bond order)
这种键级号称是考虑了原子轨道间重叠,引入距离因素,并使得结果能看出成键反键,但实际结果不好,而且其定义我认为没有任何根据。A、B间键级定义为∑∑P(i,j)*S'(i,j),其中S'是PNAO重叠矩阵(注:PNAO是原始基函数向NAO转换的中间基函数,PNAO在原子内正交而在原子间未必正交)。这种定义很莫名其妙,密度矩阵用NAO的,但重叠矩阵却用PNAO的。从其形式上,可以想起Mulliken键级。Mulliken键级就是Mulliken布居分析得到的两原子间交叉项的总和,∑∑∑2*占据数(imo)*C(i,imo)*C(j,imo)*S(i,j),写成密度矩阵的形式就是∑∑2*P(i,j)*S(i,j)。所以,第二种键级实际上是一种既不完全是NAO、也不完全是PNAO下的不伦不类的Mulliken键级,而且还少乘了2。这种古怪的键级缺乏依据,实际结果又差,所以不要使用。NBO输出的结果为:
这也容易验证,使用SPNAO关键词可以输出PNAO重叠矩阵S'
设T(i,j)=DMNAO(i,j)*S'(i,j),则T为:
1 2.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
2 0.00000 1.73250 0.00000 0.00000 0.00000 0.19228 0.19228
3 0.00000 0.00000 2.00000 0.00000 0.00000 0.00000 0.00000
4 0.00000 0.00000 0.00000 1.13990 0.00000 0.22438 0.22438
5 0.00000 0.00000 0.00000 0.00000 1.53210 0.12319 0.12319
6 0.00000 0.19228 0.00000 0.22438 0.12319 0.79770 -0.01450
7 0.00000 0.19228 0.00000 0.22438 0.12319 -0.01450 0.79770
求O-H键的这种键级也就是∑T(i,7)=0+0.19228+0+0.22438+0.12319=0.53985,和NBO输出的一致。
另外值得一提的是,所谓NPA电荷(无数人谬称为NBO电荷),就是以NAO为基获得的Mulliken电荷。A原子布居数=∑∑P(i,j)S(i,j)=∑∑P(i,j)δ(i,j)=∑P(i,i),所以氧的布居数∑DMNAO(i,i)=2.0000+1.7325+2.0000+1.1399+1.5321=8.4045,净电荷为8-8.4045=-0.4045,和NBO程序输出的一致。
4. 第三种键级(MO bond order)
这个键级的名字十分令人疑惑,而且手册上也没说明。实际上它的定义极其简单,A、B间的键级为∑∑P(i,j)。NBO输出为
Atom
求O-H2键级就是∑DMNAO(i,7)=0.4113-0.7001-0.5439=-0.8327。结果十分荒诞,明明是典型sigma键,键级却为负。而另一个等价的O-H3键键级却是正值0.4113+0.7001-0.5439=0.5675!可见,这种键级从实际应用上看毫无意义。从理论上同样没有根据,从形式上看和Mulliken键级相仿佛,却少乘了重叠矩阵元,另外NAO又是正交基,不存在交叉项,也不可能求Mulliken键级。而与Wiberg键级相比,又少求了平方。我认为NBO程序中应该去掉这种毫无意义的键级。
5. 用PNAO计算Mayer键级的尝试
原理上,以非正交基PNAO做Mayer键级分析也是可以的,可以代替正交基NAO下的Wiberg键级分析,另外,做Mulliken分析通过交叉项还可以研究成键反键和各分子轨道贡献,但是NBO程序里没有提供。笔者尝试利用PNAO做Mayer键级分析,这首先需要获得PNAO密度矩阵,NBO3.1里不支持输出它的DMPNAO关键词,故通过.47文件在GENNBO5.0下输出,所得矩阵如下:
然而,不幸的是,所得Mayer键级矩阵很糟
1
2
3
键级大得出奇。NBO5.0输出的PNAO密度矩阵估计错误的,理论上Tr(PS)应当等于分子总电子数,然而用PNAO的密度矩阵和重叠矩阵竟得到16.22606912。虽然测试这个方法由于NBO程序的bug失败了,但原理上是合理的。

加载中…