# `qc` パッケージ

公開 `qc` サーフェスの厳選リファレンス。シグネチャは一般的なキーワード引数を示します;まれな数値ノブは
[IOP キー](../40-reference/iop.md) です。

## チェックポイントの構築

**`qc.chk.new(atom, ao, *, ao_rep="spherical", charge=0, spin=1, unit="angstrom", ric=None, rijk=None, iop=None, backend=...)`**
: 分子入力からチェックポイントを作成。`atom` は [mol-spec 文字列](../40-reference/mol-spec.md);`ao` は基底名
  または原子ごとの辞書;`spin` は Gaussian 多重度 `2S+1`;`unit` は `"angstrom"`（既定）または `"bohr"`;
  `ric`/`rijk` は RI 補助基底;`iop` は詳細オプション辞書。**チェックポイント**を返します。

**`qc.chk.load(path)`** / **`mychk.save(path)`**
: チェックポイントを復元 / 永続化（HDF5 `.qch5`）。

**`mychk.with_iop({...})`**
: IOP キーを重ねた新しいチェックポイントを返す。

## ワークフロー動詞

各動詞は保留ステップを追加し新しいチェックポイントを返します;**`.run()`** が結果を材料化します。各動詞は関数
形式 `qc.verb(mychk, ...)` とメソッド形式 `mychk.verb(...)` を持ち — 同一です。

| 動詞 | 主な引数 | 追加するもの |
|---|---|---|
| `guess(mychk, kind="sad", *, source=, occupation=, spin_break=)` | `sad`/`minao`/`harris`/`sap`/`gwh`/`core`/`read` | 初期推定ステップ |
| `ints(mychk, *, eri="4c-auto", dipole=False)` | ERI 戦略 | 積分材料化ステップ |
| `scf(mychk, *, ref="auto", xc=None, grid="medium", algorithm="auto", conv_tol=, conv_preset=, max_cycle=, pcm=, dispersion=, stability=, smearing=, level_shift=, damping=, mom=, symmetry=, prop=)` | SCF 制御 | SCF ステップ |
| `lct(mychk, *, method="mp2")` | `mp2`/`scs-mp2`/`sos-mp2`（実）;`cc2`/CASPT2/NEVPT2（モック） | 相関ステップ |
| `casscf` / `fci` / `dmrg` / `td` | — | モック手法ステップ |
| `grad(mychk)` / `mychk.scf.gradient` | — | 解析的核勾配 |
| `mychk.scf(...).opt(*, coordsys="tric", maxiter=100)` | geomeTRIC 制御 | 構造最適化ステップ |

**`.run(*, log=None, log_style="modern", plot=False, nthread=None, nmpi=1, hosts=None, comm=None, log_rank="root")`**
: 保留ステップを実行。`log` はトランスクリプトを流す（`"stdout"`/パス/オブジェクト）;`nthread`/`nmpi`/`hosts`/`comm`
  が並列性を設定（[Part IV](../30-hpc/index.md)）。

## 結果アクセサ

`.run()` の後（詳細は [チェックポイント](../40-reference/checkpoints.md)）:

```text
mychk.scf.energy / .converged / .ncycle / .energy_elec / .energy_components / .gradient / .stability
mychk.lct.energy / .e_corr / .e_os / .e_ss
mychk.opt.converged / .energy / .e_traj / .gmax_traj / .grms_traj
mychk.natom / .symbols / .charge / .spin / .nelectron() / .coordinates() / .nuclear_energy()
mychk.log(format=) / .show() / .run_events()
```

## `qc.prop` — 分子物性

`qc.prop.<group>.<leaf>(mychk)`（≡ `mychk.prop.<group>.<leaf>()`）、遅延評価・キャッシュ。14 群:

| 群 | | 群 | |
|---|---|---|---|
| `chrg` | 原子電荷 | `qtaim` | QTAIM トポロジー / ベイスン |
| `bond` | 結合次数 | `elf` | ELF/LOL ベイスン |
| `mpol` | 電気モーメント、分極率 | `arom` | 芳香族性指標 |
| `cdft` | 反応性、Fukui | `orb` | 軌道解析 |
| `nbo` | NBO / IAO / IBO | `spin` | スピン密度、⟨S²⟩ |
| `esp` | 静電ポテンシャル | `spec` | DOS、ギャップ、バンド中心 |
| `mesh` | 実空間グリッド場（NCI/IGM） | `geom` | 幾何解析 |

`scf(..., prop=True|preset|[refs])` はバンドルを一括計算します。[物性スイート](../20-guide/properties/index.md) 参照。

## その他の名前空間

**`qc.iop`** — オプションレジストリ:`qc.iop.list()`, `qc.iop.describe(key)`, `qc.iop.defaults()`
（[リファレンス](../40-reference/iop.md)）。

**`qc.basis`** — 基底データ:`qc.basis.baslib_filename`（229 名）、`qc.basis.nwchem_format(inpdata,
description=, ecp=)`（[リファレンス](../40-reference/basis-list.md)）。

**`qc.view`** — 可視化:`mychk.view3d(field|orbital|orbitals, ...)`, `mychk.mo_cube(...)`, `mychk.orbitals`,
`mychk.plot_nci()`, `mychk.plot_convergence()`, `mychk.plot_field_plane(...)`, `.to_html()`
（[可視化](../20-guide/visualization.md)）。

**低レベル（直接使うことはまれ）:** `qc.array`（N 次元配列、`eigh`、要素ごと/簡約演算）、`qc.mol`（分子データ
モデル）、`qc.utils`（例 `qc.utils.quatdiag`）、`qc.integrals`（実験的な libcint ベースの殻/テンソルヘルパ）。

**任意モジュール（機能ゲート、センチネルで保護）:** `qc.xc`（libxc 汎関数;`qc.XC_ENABLED`）、`qc.pcm`（PCM
溶媒和コンテキスト;`qc.PCM_ENABLED`）、Rust MPI-direct 関数（`qc.MPI_DIRECT_ENABLED`）、GPU 経路
（`qc.GPU_ENABLED`）。

## センチネル

```python
import qc
qc.XC_ENABLED, qc.PCM_ENABLED, qc.MPI_DIRECT_ENABLED, qc.GPU_ENABLED
```

各々、対応する機能がビルドに組み込まれた場合のみ `True` です。既定ビルドは
`XC_ENABLED == PCM_ENABLED == MPI_DIRECT_ENABLED == True`、`GPU_ENABLED == False`（GPU 経路はオプトイン;
[GPU の章](../30-hpc/gpu-cuda.md)）です。

---

これが公開サーフェスです。ここから、[ガイドの章](../20-guide/molecular-input.md) が各要素を文脈の中で示し、
[リファレンス](../40-reference/mol-spec.md) の各節が網羅的な詳細を与えます。
