# QTAIM と ELF/LOL

[前章](charges-bond-orders.md) は密度を*処方箋*で分割しました。本章は**密度に自らを分割させ**ます。2 つの
トポロジー解析 — **QTAIM**（分子中の原子の量子論）と **ELF**（電子局在化関数）— は、恣意的な基底の選択なしに、
実空間場の*形*から原子・結合・孤立電子対を見つけます。「Multiwfn クラス」解析の核心です。

## QTAIM:密度のトポロジーから原子を

### 理論

Bader の **QTAIM** は電子密度の勾配場 $\nabla\rho(\mathbf r)$ を解析します。その**臨界点**は $\nabla\rho=0$ の点で、
各々は局所密度 Hessian の**符号数**（負の固有値の数、$(3,\sigma)$ と書き $\sigma$ = 正の数 − 負の数）で分類
されます:

| 種類 | 符号数 | Hessian 固有値 | 意味 |
|---|---|---|---|
| 核（NCP） | $(3,-3)$ | 3 つとも負 | 密度極大 — 核に位置 |
| 結合（BCP） | $(3,-1)$ | 負 2、正 1 | 結合に*沿って*鞍点、それを*横切ると*極大 |
| 環（RCP） | $(3,+1)$ | 負 1、正 2 | 環の内側の鞍点 |
| かご（CCP） | $(3,+3)$ | 3 つとも正 | かごの内側の局所極小 |

BCP を通じて 2 核を結ぶ**結合経路**が QTAIM の厳密な化学結合の定義であり、健全性チェック —
**Poincaré–Hopf 関係** $n_{\text{NCP}} - n_{\text{BCP}} + n_{\text{RCP}} - n_{\text{CCP}} = 1$ — が正しい
トポロジーで成り立たねばなりません（これは密度場のトポロジー不変量で、分子によりません）。QTAIM は空間を
**原子ベイスン**にも分けます — **ゼロフラックス面** $\nabla\rho(\mathbf r)\cdot\mathbf n(\mathbf r)=0$（密度の
勾配が決して横切らない面）で囲まれた領域です;ベイスン上で $\rho$ を積分すると**基底に頑健な原子電荷**
（「Bader 電荷」）が得られます。頑健なのは、まさにゼロフラックス境界が AO 基底ではなく $\rho$ 自体の性質だから
です。完全な導出（ベイスンを最急上昇積分でどう見つけるかを含む）は
[トポロジー解析の理論](../../10-foundations/topological-analysis-theory.md) にあります。

### 使い方

```python
import qc
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()

topo = qc.prop.qtaim.topology(m)
topo["counts"]         # {'nuclear': 3, 'bond': 2, 'ring': 0, 'cage': 0}
topo["poincare_hopf"]  # {'sum': 1, 'holds': True}
topo["critical_points"][0]   # {'type': 'nuclear', 'position': [...], 'rho': 297.19, 'atoms': [0]}
```

水では QTAIM はちょうど**3 核 + 2 結合**臨界点（2 本の O–H 結合）を見つけ、環もかごもなく、Poincaré–Hopf 和は
1 — トポロジー的に整合した結果です。原子ベイスンを積分すると Bader 母集団が得られます:

```python
bader = qc.prop.qtaim.basin_integrate(m)
bader["atoms"][0]      # {'atom': 0, 'label': 'O', 'integral': 9.244}  -> Bader 電荷 8 - 9.244 = -1.24
bader["total"]         # 10.023   （≈ 10 電子;わずかなグリッド残差）
```

酸素のベイスンは ~9.24 電子を保持 — Bader 電荷は約 **−1.24** で、[電荷の章](charges-bond-orders.md) の全スキーム
の中で最も負、そして最も物理的に根拠があります。`qc.prop.qtaim` は結合臨界点の性質・ベイスン多重極・非局在化
指数・源関数も公開します。

:::{tip} QTAIM はグリッドベース — 遅いと思っておく
トポロジーとベイスン積分は実空間グリッドを歩くので、前章の代数的な電荷よりコストがかかります。それでも 1 回の
呼び出しですが、大きな分子で数秒かかっても驚かないでください。
:::

## ELF:電子対を見る

### 理論

**電子局在化関数** $\text{ELF}(\mathbf r) \in [0,1]$ は、電子がどれだけ強く*局在*しているか — パウリ原理が同
スピン電子を参照点からどれだけ遠ざけるか — を測ります。Becke と Edgecombe の構成は、真の運動エネルギー密度を、
同じ局所密度の**一様電子ガス**が持つはずの値と比較します:

$$
D(\mathbf r) = \tau(\mathbf r) - \frac{|\nabla\rho(\mathbf r)|^2}{8\rho(\mathbf r)},
\qquad
D_h(\mathbf r) = \frac{3}{10}(3\pi^2)^{2/3}\rho(\mathbf r)^{5/3},
\qquad
\text{ELF} = \frac{1}{1+\chi^2},\quad \chi = \frac{D}{D_h}.
$$

$D$ は**パウリ運動エネルギー密度** — その密度で可能な最小を超える余剰運動エネルギー — で、1 つの軌道（や
同スピン電子対）が支配する場所でのみ消えます。真の系が一様ガスより*強く*電子を局在させる場所では
$D \ll D_h$ なので $\chi\to0$、$\text{ELF}\to1$;一様ガスとまったく同じに振る舞う領域は $\chi=1$、
$\text{ELF}=0.5$ を与えます（qc-rs の実装は両極限を直接検証しています）。これが ELF が Lewis 構造の
**電子対**を直接あらわにする理由です:**内殻**・**結合**・**孤立電子対**が、それぞれ高 ELF の別々の領域
（**ベイスン**）として現れ、軌道にまったく頼らずに結合と孤立電子対を見られます。

### 使い方

```python
basins = qc.prop.elf.basins(m)      # ELF ベイスン（水:5 — O 内殻、2 本の O–H 結合、2 つの孤立電子対）
domains = qc.prop.elf.domains(m)    # ある等値での局在化ドメイン
```

水の ELF は**5 つのベイスン**に分かれます — 酸素内殻、2 本の O–H 結合ベイスン、2 つの酸素孤立電子対 — 波動関数
だけから馴染みの Lewis 描像を回復します。`qc.prop.elf` は LOL（ELF 様の局在軌道ロケータ）と内殻/価電子分岐解析も
提供します。これらを*見る*には、[可視化の章](../visualization.md) の `m.view3d("elf")` が ELF 等値面を描きます。

## 総合例

```python
import qc
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()

topo = qc.prop.qtaim.topology(m)
print("critical points:", topo["counts"], "| Poincaré–Hopf holds:", topo["poincare_hopf"]["holds"])
print("O Bader population:", round(qc.prop.qtaim.basin_integrate(m)["atoms"][0]["integral"], 3))
print("ELF basins        :", len(qc.prop.elf.basins(m)))
```

:::{exercise}
:label: ex-qtaim

1. ベンゼンの QTAIM 解析は環臨界点をいくつ報告すべきで、トポロジーが整合するには Poincaré–Hopf 和はいくつに
   等しくなければなりませんか。
2. [電荷の章](charges-bond-orders.md) は酸素電荷を −0.09（Löwdin）から −0.91（NPA）まで与えました。QTAIM
   （Bader）電荷の ≈ −1.24 はどこに位置し、なぜ特によく定義されていると見なされますか。
3. 水の酸素の 2 つの孤立電子対を*見*たいです。どの ELF 呼び出しと、どのビューア呼び出しを使いますか。
:::

:::{solution} ex-qtaim
:class: dropdown

1. 環臨界点は **1 つ**（芳香環の中心）。Poincaré–Hopf は **1** に等しくなければなりません:ベンゼンでは
   $n_{\text{NCP}} - n_{\text{BCP}} + n_{\text{RCP}} - n_{\text{CCP}} = 12 - 12 + 1 - 0 = 1$。
2. **最も負**です — NPA すら超えます。よく定義されているのは、ベイスン境界が密度の**ゼロフラックス面**（基底
   関数ではなく $\rho$ そのものの性質）だからで、Bader 電荷は本質的に基底非依存です。
3. `qc.prop.elf.basins(m)` / `qc.prop.elf.domains(m)` で計算し、`m.view3d("elf")` で可視化します — 2 つの孤立
   電子対ベイスンが酸素の上に別々のローブとして現れます。
:::

QTAIM と ELF は*単一*分子の結合を解析します。[次章](weak-interactions.md) は、フラグメント*間*の弱い非共有
相互作用 — 水素結合やファンデルワールス接触 — に、NCI と IGM で向かいます。
