# スペクトルと状態密度

最後の物性ファミリは、**軌道エネルギースペクトル** — SCF が生む軌道エネルギーの梯子 — を読みます。**状態密度
（DOS）**に広げ、**HOMO–LUMO ギャップ**で要約すると、計算を電子構造・光学的立ち上がり・化学的硬さに結びつけ
ます。これらは `qc.prop.spec` にあります。

## 理論:軌道準位からスペクトルへ

SCF は軌道エネルギーの集合 $\{\varepsilon_i\}$ を返します — **HOMO**（最高被占）までの占有準位と、**LUMO**（最低
空）以上の空準位です。2 つの要約が重要です:

- **HOMO–LUMO ギャップ** $\varepsilon_{\text{LUMO}} - \varepsilon_{\text{HOMO}}$ — 励起エネルギーの第一推定で、
  速度論的安定性の尺度（大ギャップ = 硬い・不活性;小ギャップ = 反応的）。[反応性の章](cdft-reactivity.md) の化学的
  硬さの軌道エネルギー版です。
- **状態密度（DOS）** — 離散準位を、各々を Gaussian/Lorentzian で畳み込んで連続曲線 $g(\varepsilon)$ に**広げた**
  もの。各エネルギー付近に*いくつ*の状態があるかを示し、準位のスペクトルを比較したり計算と光電子スペクトルを
  合わせたりする自然な方法です。

分子では「DOS」は実際には離散準位を広げたスティックスペクトルです;同じ機構が拡張系のバンド構造 DOS の基礎でも
あります。

## HOMO–LUMO ギャップ

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

fl = qc.prop.spec.fermi_level(m)
fl["homo"], fl["lumo"]     # -13.419, 5.049   フロンティア軌道エネルギー（eV）
fl["gap"]                  # 18.468           HOMO–LUMO ギャップ（eV）
fl["fermi_level"]          # -4.185           中ギャップの「Fermi」準位
```

水のギャップ ~18.5 eV は大きく — その化学的不活性と整合し、（期待どおり）[概念 DFT の章](cdft-reactivity.md) の
硬さ $\eta$ に等しくなります。Koopmans 描像ではどちらも $I - A$ だからです。

## 状態密度

`qc.prop.spec.dos` は準位スペクトルをプロットできる曲線に広げます:

```python
dos = qc.prop.spec.dos(m)
dos["energies"]     # エネルギー軸（2000 点、eV）
dos["tdos"]         # 全 DOS g(ε)
dos["pdos"]         # 射影 DOS（原子/角運動量ごと）
dos["levels"]       # 背後の 24 個の離散軌道エネルギー
dos["broadening"], dos["fwhm"]   # 広がりのスキームと幅
```

`tdos` を `energies` に対してプロットすると広げたスペクトルが得られます;`pdos` はそれを原子や角運動量で分解します
（あるエネルギーでどの原子が状態を寄与するか）。`qc.prop.spec` は `band_center`（d バンド中心様の 1 次モーメント、
触媒で有用）と `fermi_level` も提供します。

## 関連:モーメントとスピン

もう 2 つの単一数値の物性がこのファミリを締めます:

```python
qc.prop.mpol.molecular(m)["dipole_magnitude_debye"]   # 2.056   分子双極子（Debye）
qc.prop.mpol.polarizability(m)["polarizability"]      # 原子分極率 / C6（Hirshfeld 分割）
qc.prop.spin.s_squared(m)                             # 0.0     ⟨S²⟩（閉殻一重項で 0）
```

**双極子**（水で 2.06 D、実験の 1.85 D に近い — HF は過大評価）は主要な電気モーメントです;`qc.prop.spin.s_squared`
は ⟨S²⟩ を報告します（ここでは RHF で 0;UHF では非ゼロの汚染、[SCF の章](../scf.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()

fl = qc.prop.spec.fermi_level(m)
print(f"HOMO {fl['homo']:.2f} eV, LUMO {fl['lumo']:.2f} eV, gap {fl['gap']:.2f} eV")
# HOMO -13.42 eV, LUMO 5.05 eV, gap 18.47 eV

dos = qc.prop.spec.dos(m)
print("DOS points:", len(dos["energies"]), "| levels:", len(dos["levels"]))   # 2000 | 24
```

:::{exercise}
:label: ex-spec

1. 分子 X は HOMO–LUMO ギャップ 1.5 eV、分子 Y は 8 eV です。どちらがより反応的/より濃く着色し、どちらが硬い
   分子ですか。
2. DOS が軌道エネルギーのリストではなく*広げた*曲線なのはなぜか — 広げることで何ができますか。
3. `qc.prop.spin.s_squared` は閉殻 RHF の水で 0.0 を、UHF メチルラジカルで 0.76 を返します。0.76（厳密な 0.75 に
   対し）は何を教えますか。
:::

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

1. **分子 X**（ギャップ 1.5 eV）が**より反応的でより濃く着色**します — 小さなギャップは低い励起エネルギー
   （可視光吸収）と容易な電子再配置を意味します。**分子 Y**（8 eV）は**より硬く**不活性な分子です（大ギャップ ≈
   大きな硬さ）。
2. 離散準位を Gaussian/Lorentzian で畳み込んで連続 $g(\varepsilon)$ にし、**実験と比較**できるようにします
   （光電子/吸収スペクトルは広がっている）。また状態がどこに集まるかを読めます;素のエネルギーリストは測定
   スペクトルに重ねられません。
3. 二重項で ⟨S²⟩ = 0.76 対 厳密な 0.75 は、UHF 波動関数の**わずかなスピン汚染** — 高スピン状態の小さな混入 — を
   示します。ここでは許容範囲ですが注視に値します（[SCF の章](../scf.md) で議論）。
:::

これで Part III は完結です。分子から SCF、力と構造、相関エネルギー、溶媒和と分散、絵、そして電荷・結合・
トポロジー・芳香族性・反応性・スペクトルの完全な解析まで — すべて 1 つのツールキットで行えます。ここから先、
[Part IV](../../30-hpc/index.md) はこれらの計算をスレッド・マシン・GPU にわたってスケールさせます。
