原子電荷と結合次数#

「酸素にどれだけ負電荷があるか」「これは単結合か二重結合か」は化学で最もよくある問いの 2 つ — そして最も 微妙な2 つでもあります。なぜなら原子電荷も結合次数も量子力学的な観測量ではないからです。これらは分割の スキーム:分子の密度を原子と原子対に分ける処方箋です。qc-rs は多数を実装しており、本章はそれらの計算方法と、 違いの読み方を示します。

理論:なぜ電荷スキームがこんなに多いのか#

電子密度 \(\rho(\mathbf r)\) は実在で一義的ですが、「原子 A の電荷」を言うには、原子 A がどこで終わり原子 B が どこで始まるかを決めねばならず — 一意な答えはありません。スキームごとに選択が違います:

  • 軌道ベース(Mulliken, Löwdin):密度をどの原子の基底関数が担うかで分ける。単純で速いが、基底依存 (特に Mulliken)。

  • 密度ベース(Hirshfeld, MBIS, VDD):原子参照密度を使って実空間を分割する。より頑健で基底安定。

  • 静電ポテンシャルフィット(MK/ChelpG/RESP):分子の ESP を最もよく再現する電荷を選ぶ — 力場パラメータ化に 最適。

  • 自然母集団(NPA):自然原子軌道から;基底安定で広く使われる。

「正しい」スキームはなく、各々わずかに異なる問いに答えます。教訓は目的に合ったものを 1 つ選び、一貫させる こと、そして最後の桁を過剰解釈しないことです。

原子電荷#

各スキームは qc.prop.chrg の leaf です。2 つの軌道ベーススキームが最も単純な式を持ち — どちらも AO ごとの 総母集団 \(P_\mu\) を原子ごとの電荷 \(q_A = Z_A - \sum_{\mu\in A} P_\mu\) に簡約します — 違いはどの母集団を 使うかだけです:

\[ \text{Mulliken: } P_\mu = (\mathbf{DS})_{\mu\mu} = \sum_\nu D_{\mu\nu}S_{\mu\nu}, \qquad \text{Löwdin: } P_\mu = \big(\mathbf S^{1/2}\mathbf D\,\mathbf S^{1/2}\big)_{\mu\mu}. \]

Mulliken の \(\mathbf{DS}\) 母集団は \(\mu,\nu\) について対称でなく、拡散した重なりの乏しい AO ではにさえ なりえます — 下の表が示す基底感受性です。Löwdin の対称直交化(両側に \(\mathbf S^{1/2}\))はこの非対称性を 直し、これが Löwdin が Mulliken より穏やかになりがちな理由の一部です。密度ベースのスキーム(Hirshfeld, MBIS) は代わりに実空間密度 \(\rho(\mathbf r)\) を、参照原子密度を使って直接分割し、AO 母集団を一切必要としません — 根本的に異なる(そしてより基底安定な)処方箋で、電荷分割解析の理論 で詳述します。leaf によっては素の原子ごと配列を、あるいは "charges" フィールドを持つより豊かなレコードを 返します:

import qc, numpy as np
water = "O 0 0 0.117; H 0 0.757 -0.469; H 0 -0.757 -0.469"
m = qc.chk.new(atom=water, ao="cc-pvdz", unit="angstrom").scf(ref="r").run()

np.asarray(qc.prop.chrg.hirshfeld(m))          # 配列: [-0.3219, 0.161, 0.161]
qc.prop.chrg.mulliken(m)["charges"]            # レコード: [-0.3056, 0.1528, 0.1528]
qc.prop.chrg.npa(m)["charges"]                 # [-0.9136, 0.4568, 0.4568]

水の酸素はどのスキームでも負、水素は正 — 定性的な描像は頑健です — が、大きさは処方箋で大きく変わります:

スキーム

qc.prop.chrg.

O 電荷

H 電荷

特徴

Löwdin

lowdin

−0.094

+0.047

軌道、対称化

Mulliken

mulliken

−0.306

+0.153

軌道、基底に敏感

Hirshfeld

hirshfeld

−0.322

+0.161

密度、「ストックホルダー」

CM5

cm5

−0.658

+0.329

Hirshfeld + 経験的補正

ADCH

adch

−0.731

+0.365

原子双極子補正 Hirshfeld

MBIS

mbis

−0.862

+0.431

最小基底反復ストックホルダー

NPA

npa

−0.914

+0.457

自然母集団

同じ酸素で −0.09 から −0.91 という広がり — これこそ、どのスキームを使ったかを明記すべき理由です。一連の分子で 比較するなら、密度ベース(Hirshfeld/MBIS)または NPA が Mulliken より安全な選択です。

結合次数#

結合次数は 2 原子間で共有される電子対の数を定量します。2 つの主力が qc.prop.bond にあり、各々、原子–原子の "matrix" 全体と原子ごとの "valence" を返します:

mayer = qc.prop.bond.mayer(m)
mayer["matrix"][0, 1]     # 1.0207   O–H の Mayer 結合次数
mayer["valence"][0]       # 2.041    酸素の総原子価(≈ 2 結合)

qc.prop.bond.wiberg(m)["matrix"][0, 1]   # 1.1886   O–H の Wiberg 結合次数

O–H の Mayer 結合次数は ~1.02 — 化学が期待するとおりの単結合で、酸素の原子価 ~2.04 は 2 本の O–H 結合を正しく 反映します。2 つの結合次数は、上で Mulliken 電荷を導いたのと同じ密度×重なり行列積を 2 乗し、和の取り方だけを 変えたものです:

\[ B_{AB}^{\text{Mayer}} = 2\!\!\sum_{\mu\in A,\,\nu\in B}\!\!\Big[(\mathbf P^\alpha\mathbf S)_{\mu\nu}(\mathbf P^\alpha\mathbf S)_{\nu\mu} + (\mathbf P^\beta\mathbf S)_{\mu\nu}(\mathbf P^\beta\mathbf S)_{\nu\mu}\Big], \qquad B_{AB}^{\text{Wiberg}} = 2\!\!\sum_{\mu\in A,\,\nu\in B}\!\!\Big[(\tilde{\mathbf P}^\alpha)_{\mu\nu}^2 + (\tilde{\mathbf P}^\beta)_{\mu\nu}^2\Big], \]

\(\mathbf P^\alpha,\mathbf P^\beta\) はスピン密度行列、\(\tilde{\mathbf P}=\mathbf S^{1/2}\mathbf P\,\mathbf S^{1/2}\) は Löwdin 直交化した密度です。Wiberg はまさに直交化基底で評価した Mayer — そこでは重なりが恒等 なので式は密度行列要素の 2 乗和に簡約されます — これがわずかに異なる数値(ここでは Mayer の 1.02 に対し 1.19)を与える理由です:2 つは同じ考え\(A\)\(B\) の間でどれだけ密度が共有されるか)を、2 つの異なる基底で 測ったものです。各原子の総原子価 \(\sum_{B\ne A}B_{AB}\) は対角を除いた行の和です。qc.prop.bond には fuzzy 原子・multicenter(非局在/芳香族結合用)・IBSI・非局在化指数の結合尺度もあります。

総合例:電荷と結合を一緒に#

import qc, numpy as np
water = "O 0 0 0.117; H 0 0.757 -0.469; H 0 -0.757 -0.469"
m = qc.chk.new(atom=water, ao="cc-pvdz", unit="angstrom").scf(ref="r").run()

print("Hirshfeld charges:", np.round(np.asarray(m.prop.chrg.hirshfeld()), 3))   # [-0.322 0.161 0.161]
print("NPA charges      :", np.round(np.asarray(m.prop.chrg.npa()["charges"]), 3))
print("O–H Mayer BO     :", round(m.prop.bond.mayer()["matrix"][0, 1], 3))       # 1.021

練習 11

  1. 2 本の論文が水の酸素電荷を −0.31 と −0.91 と報告しています。両方正しくありえますか。それらを整合させる 1 つの 情報は何ですか。

  2. 古典力場をフィットしていて点電荷が必要です。どのファミリの電荷スキームを使うべきで、なぜ Mulliken では ないのですか。

  3. 水の酸素の Mayer 原子価は ≈ 2.04 になります。この数は何を教え、なぜちょうど 2 でないのですか。

電荷と結合次数は密度を数値的に分割します。次章 は密度をトポロジー的に分割します — QTAIM と ELF が、密度そのものの形から原子・結合・孤立電子対を見つけます。