# 概念 DFT と反応性

分子はどこで、どれだけ容易に反応するか？**概念 DFT** は、馴染みの化学概念 — 電気陰性度・硬さ・求電子性 — を、
電子数と外部ポテンシャルに関する**エネルギーの微分**として扱うことで答えます。「反応性」を曖昧な語りから、
**大域的**（分子ごとに 1 つ）にも**局所的**（原子ごとに 1 つ）にも計算できる数値に変えます。`qc.prop.cdft` に
あります。

## 理論:エネルギー微分としての反応性

概念 DFT はエネルギーを電子数 $N$ と外部ポテンシャル $v(\mathbf r)$ で展開します。低次の微分*こそ*が古典的な反応性
記述子です:

- **化学ポテンシャル** $\mu = (\partial E/\partial N)_v$ — 電子の逃げ出す傾向。**電気陰性度**は $\chi = -\mu$。
- **化学的硬さ** $\eta = (\partial^2 E/\partial N^2)_v$ — 電子数の変化への抵抗;硬い分子は大きな HOMO–LUMO
  ギャップを持ちます。**柔らかさ**は $1/\eta$。
- **求電子性指数** $\omega = \mu^2/2\eta$ — 分子がどれだけ強く電子を引きつけるか。

イオン化ポテンシャル $I$ と電子親和力 $A$ を用いた有限差分（Koopmans）近似で:$\mu \approx -(I+A)/2$、
$\eta \approx I - A$。**局所的**な対応物が **Fukui 関数** $f(\mathbf r) = (\partial\rho(\mathbf r)/\partial N)$
— 電子を加えたり除いたりしたときに密度が最も変わる場所、すなわち**分子が反応する場所**です。

## 大域記述子

`qc.prop.cdft.reactivity` は大域的な一式を（eV で）返します:

```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()

r = qc.prop.cdft.reactivity(m)
r["ip"], r["ea"]                 # 13.419, -5.049    イオン化ポテンシャル / 電子親和力
r["chemical_potential"]          # -4.185            μ
r["electronegativity"]           # 4.185             χ = -μ
r["hardness"]                    # 18.468            η  （大 -> 硬い、大きなギャップ）
r["electrophilicity"]            # 0.474             ω
```

水は**硬い**分子（η ≈ 18.5 eV — 大きなギャップ、化学的に不活性）で控えめな求電子性 — 小さく強く結合した閉殻
分子にまさに期待されるプロファイルです。

## 局所反応性:Fukui 関数

`qc.prop.cdft.fukui` は**縮約した**（原子ごとの）Fukui 関数 — 反応性の局所サイト — を与えます:

```python
f = qc.prop.cdft.fukui(m)
f["fukui_plus"]        # [0.261, 0.370, 0.370]   f⁺ : 求核攻撃への感受性（電子を加える）
f["fukui_minus"]       # [0.664, 0.168, 0.168]   f⁻ : 求電子攻撃への感受性（電子を除く）
f["fukui_zero"]        # [0.462, 0.269, 0.269]   f⁰ : ラジカル攻撃
f["dual_descriptor"]   # [-0.403, 0.202, 0.202]  f⁺ − f⁻ : >0 求電子サイト、<0 求核サイト
```

水を読む:**酸素が最大の f⁻（0.66）**を持つので、**求電子**攻撃に最も感受性が高いサイトです — 化学的に正しく、
酸素の孤立電子対こそ求電子剤（やプロトン）が攻撃する場所です。**dual 記述子**は酸素で負（−0.40、求核的/電子豊富
サイト）、水素で正（+0.20、電子不足）で、各原子を 1 つの数で分類する単一の場です。

:::{note} Fukui 関数は追加の SCF を要する
$f(\mathbf r)$ は電子数の有限差分なので、縮約 Fukui の評価には $N$, $N{-}1$, $N{+}1$ 電子の密度 — つまり 1 回の
呼び出しの裏で数回の SCF 様計算 — が必要です。`qc.prop.cdft` には `dual`, `local_reactivity`（柔らかさ/求核・
求電子性）, `superdelocalizability` もあります。
:::

## 総合例:水はどこで反応するか？

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

r = qc.prop.cdft.reactivity(m)
print(f"μ = {r['chemical_potential']:.2f} eV,  η = {r['hardness']:.2f} eV,  ω = {r['electrophilicity']:.3f}")
#  μ = -4.18 eV,  η = 18.47 eV,  ω = 0.474

f = qc.prop.cdft.fukui(m)
print("f⁻ (求電子攻撃サイト):", np.round(f["fukui_minus"], 3))   # O が最大 -> [0.664 0.168 0.168]
```

:::{exercise}
:label: ex-cdft

1. 分子 A は硬さ η = 2 eV、分子 B は η = 10 eV です。電子数の変化に対しどちらがより反応的で、どちらが大きな
   HOMO–LUMO ギャップを持ちますか。
2. カルボニル化合物で、**求核剤**（例 ヒドリド）がどこを攻撃するかを予測するには、どの縮約 Fukui 関数を調べ、
   高い値と低い値のどちらを探しますか。
3. dual 記述子がある炭素で +0.3、隣接する酸素で −0.4 です。各サイトを解釈しなさい。
:::

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

1. **分子 A**（η = 2 eV）が**より反応的**です — 低い硬さは電子密度を容易に得失することを意味します。**分子 B**
   （η = 10 eV）はより硬く、**大きな HOMO–LUMO ギャップ**を持ちます（硬さ ≈ ギャップ）。
2. **f⁺**（`fukui_plus`） — 求核攻撃への感受性（電子を*加える*ことへの密度応答）を測ります。求核剤は f⁺ が
   **最も高い**原子（通常はカルボニル炭素）を攻撃します。
3. 炭素（dual +0.3）は**求電子**サイト（電子不足、求核剤に攻撃される）;酸素（dual −0.4）は**求核**サイト
   （電子豊富、求電子剤/プロトンに攻撃される）。
:::

これで物性ツアーの反応性編は完結です。最終章 [スペクトルと DOS](spectra-dos.md) は、軌道エネルギースペクトル —
状態密度と HOMO–LUMO ギャップ — を読みます。
