# 弱い相互作用（NCI, IGM）

QTAIM と ELF は分子内の*強い*結合を記述しました。化学は**弱い非共有相互作用** — 水素結合・ファンデルワールス
接触・立体反発 — でも動きます。これらは二量体・ホスト–ゲスト錯体・折り畳んだ生体分子をまとめます。通常の結合と
して現れるには弱すぎますが、密度に明確な指紋を残します。本章は **NCI** と **IGM** でそれらを地図化します。

## 理論:相互作用は低密度・低勾配の領域に隠れる

非共有接触は、2 フラグメントの密度が緩やかに重なる場所 — **低密度***かつ***低い縮約密度勾配**の領域 — に現れます。
**非共有相互作用（NCI）**解析は、2 つの場を使ってまさにこれらの領域をあらわにします:

- **縮約密度勾配** $s = \dfrac{|\nabla\rho|}{2(3\pi^2)^{1/3}\rho^{4/3}}$ は、相互作用が密度を平坦にするところで
  **ゼロへスパイク**し、
- **$\text{sign}(\lambda_2)\,\rho$**、第 2 Hessian 固有値 $\lambda_2$ の符号を付けた密度は、相互作用の**種類**を
  教えます:$\lambda_2 < 0$ = **引力的**（水素結合）、$\lambda_2 \approx 0$ = **ファンデルワールス**、
  $\lambda_2 > 0$ = **反発的**（立体反発）。

$s$ を $\text{sign}(\lambda_2)\rho$ に対してプロットした 2 次元図は、相互作用ごとにスパイクを、種類で色分けして
示します。**独立勾配モデル（IGM）**は、*真の*勾配を、同じフラグメントから作った**仮想的な非相互作用**勾配と
比較することで、相互作用信号をより直接的に分離します:

$$
g^{\text{IGM}} = \Big\|\Big(\sum_A|\partial_x\rho_A|,\ \sum_A|\partial_y\rho_A|,\ \sum_A|\partial_z\rho_A|\Big)\Big\|,
\qquad
\delta g = g^{\text{IGM}} - |\nabla\rho| .
$$

$|\nabla\rho|=\big|\sum_A\nabla\rho_A\big|$ である一方、$g^{\text{IGM}}$ は各フラグメントの勾配を*成分ごとに*
足してから大きさを取るので、三角不等式により常に $g^{\text{IGM}}\ge|\nabla\rho|$ が保証され — 等号は
フラグメントの勾配が互いに逆らわない場所で成り立ちます。だから $\delta g$ は**まさにフラグメント間の勾配の
打ち消し合い**であり、2 つの原子密度が互いに押し合う場所でのみ非ゼロ — それはまさに相互作用領域です。
**IGMH** は同じ考えを、Hirshfeld 分割した実際の（プロ分子の自由原子ではない）密度に適用し、より鋭い、
SCF 密度に基づく信号を与えます。

## 使い方

これらは `qc.prop.mesh` の場で、分子周りのグリッド上で計算されます。**水素結合した水二量体**が典型例です:

```python
import qc
dimer = ("O 0 0 0; H 0.76 0 0.59; H -0.76 0 0.59; "
         "O 0 0 2.98; H 0 0.76 3.57; H 0 -0.76 3.57")
m = qc.chk.new(atom=dimer, ao="cc-pvdz", unit="angstrom").scf(ref="r").run()   # E = -152.060006

nci = qc.prop.mesh.nci_data(m)     # {'sign_lambda2_rho': ..., 'rdg': ...}  NCI の 2 軸
igm = qc.prop.mesh.igm(m)          # {'origin','spacing','shape','rho','delta_g','sign_lambda2_rho','rdg'}
igmh = qc.prop.mesh.igmh(m)        # Hirshfeld 分割の IGM
```

`nci_data` は NCI 散布図を作る 2 つの点ごとの場（`sign_lambda2_rho`, `rdg`）を返します;`igm`/`igmh` は
グリッド化した密度・相互作用記述子 `delta_g`・グリッド幾何（`origin`/`spacing`/`shape`）を加え、3 次元等値面に
使えます。

### 見る

肝心なのは絵です。[可視化の章](../visualization.md) より:

```python
m.plot_nci()             # 2 次元 NCI 図:s 対 sign(λ₂)ρ、相互作用のスパイクつき
m.view3d("nci")          # 3 次元 NCI 等値面、相互作用の種類で色分け
```

水二量体では、`plot_nci()` は負の $\text{sign}(\lambda_2)\rho$ にスパイク — **O–H···O 水素結合**の署名 — と、
ゼロ付近の広いファンデルワールス特徴を示します。

## 内在結合強度（IBSI）

接触の強さに*数値*を付けるには、`qc.prop.bond.ibsi` が**内在結合強度指数**（IGM の $\delta g$ に基づく）を計算
します。これは結合の種類 — 共有・非共有を問わず — をまたいで相互作用エネルギーと相関します:

```python
qc.prop.bond.ibsi(m)     # 原子対ごとの内在結合強度指数
```

## 総合例

```python
import qc
dimer = ("O 0 0 0; H 0.76 0 0.59; H -0.76 0 0.59; "
         "O 0 0 2.98; H 0 0.76 3.57; H 0 -0.76 3.57")
m = qc.chk.new(atom=dimer, ao="cc-pvdz", unit="angstrom").scf(ref="r").run()

print("dimer energy:", round(m.scf.energy, 6))     # -152.060006
nci = m.prop.mesh.nci_data()
print("NCI fields   :", list(nci.keys()))          # ['sign_lambda2_rho', 'rdg']
m.plot_nci()                                        # 水素結合スパイクを可視化
```

:::{exercise}
:label: ex-nci

1. NCI プロットで、ある相互作用が $\text{sign}(\lambda_2)\rho \approx -0.03$ a.u. にスパイクを示します。引力的か
   反発的か。どんな接触である可能性が高いですか。
2. 結合次数は不要なのに、NCI/IGM が*グリッド*を必要とする（Mulliken 電荷より遅くなる）のはなぜですか。
3. ある分子の 2 つの配座があり、どちらが強い分子内水素結合を持つか知りたいです。本章の `qc.prop` ツールを 2 つ
   挙げ、各々が何を教えるかを述べなさい。
:::

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

1. **引力的**（$\lambda_2 < 0$）。低い負の密度でのスパイクは**水素結合**の署名です（ゼロに近い純粋な
   ファンデルワールス相互作用より強い引力的接触）。
2. NCI/IGM は実空間で**点ごと**に定義され — $\rho$, $\nabla\rho$, Hessian をグリッド上で評価して低密度/低勾配の
   領域を見つけます。Mayer/Wiberg 結合次数は密度行列の**代数的**縮約で、グリッド不要です。
3. `m.plot_nci()`（配座間で水素結合スパイクの深さ/位置を比較）と `qc.prop.bond.ibsi(m)`（水素結合した原子対の
   数値的な内在結合強度指数） — スパイクが深い/IBSI が大きい配座の方が水素結合が強いです。
:::

次は[芳香族性](aromaticity.md)で、別の集団的性質 — 共役環の特別な安定性 — を定量します。
