IOP:詳細オプション#
公開シグネチャ(chk.new, scf, ints, …)は一般的な制御に集中しています。まれで低レベルの数値ノブは、
単一の iop={...} 辞書にまとめられます — Gaussian の IOp に着想を得た横断的なチャネルですが、数値 ID の
代わりに読みやすい名前空間つきの名前と型付きの値を使います。
IOP キーの設定#
qc.chk.new(...) に iop= を渡すか、計算ごとに mychk.with_iop({...})(新しいチェックポイントを返す)で
重ねます:
import qc
m = qc.chk.new(
atom="O 0 0 0; H 0 0.76 0.59; H 0 -0.76 0.59",
ao="def2-svp",
iop={"ri.metric_cutoff": 1e-10, "integral.screen.schwarz_tol": 1e-12},
)
m2 = m.with_iop({"scf.conv_tol_grad": 1e-7}) # 重ね、新しいチェックポイントを返す
m2.scf(ref="r").run()
キーはドット区切りの <area>.<subsystem>.<knob> 名で、中央レジストリに対して検証されます。未知のキーは
エラー(候補提示つき)で、静かに無視されません:
m.with_iop({"not.a.real.key": 1})
# ValueError: unknown iop key "not.a.real.key"
キーの発見:qc.iop#
レジストリは内省可能で、キーやその既定を推測する必要はありません:
qc.iop.list() # 全 47 キー(ドット名の集合)
qc.iop.defaults() # 全キーの {key: default_value}
qc.iop.describe("scf.conv_tol_grad")
# {'type': 'float', 'default': 1e-06, 'min': 0.0, 'max': 1.0,
# 'consumer': 'scf', 'scientific': False,
# 'doc': 'Commutator-RMS convergence threshold (the SCF gradient tolerance).'}
describe(key) は値の型、既定、許容範囲、どのサブシステムが消費するか、1 行のドキュメントを返します。
分野別キーレジストリ#
9 分野に 47 キーがあります。最もよく使うもの:
scf.* — SCF ソルバ#
キー |
意味 |
|---|---|
|
交換子 RMS 勾配収束しきい値(既定 |
|
DIIS の種類、部分空間サイズ、開始サイクル |
|
増分 Fock 構築の on/off、リセット周期 |
|
2 次ラダー / SOSCF の作動時点 |
|
QC ファミリのラダー制御 |
|
TRAH / YQC の調整 |
|
対称性 / 直交化 |
|
SCF 内の適応的積分スクリーニング |
integral.* — 積分の組み立てとスクリーニング#
キー |
意味 |
|---|---|
|
Cauchy–Schwarz 四重項スクリーニング許容差(既定 |
|
密度 / 核 / QQR スクリーニング |
|
積分精度目標 |
|
アウトオブコア( |
|
ディスクバックエンドのドロップ許容差 |
|
incore-4c の調整 |
ri.* — RI / 密度フィッティング#
キー |
意味 |
|---|---|
|
RI メトリック固有値カットオフ(既定 |
|
|
|
|
|
疎 store- |
lct.* — 相関(RI-MP2)#
キー |
意味 |
|---|---|
|
相関和で内殻軌道を凍結 |
|
ROHF-MP2 の慣習( |
|
単精度 RI-MP2 |
|
Laplace 求積点(SOS-MP2) |
その他の分野#
キー |
意味 |
|---|---|
|
GWH 推定のスケーリング係数 |
|
PCM 空洞の離散化 |
|
オーバーサブスクリプション方針( |
|
タイミングスパンを出力 |
任意のキーの正確な既定・型・範囲は qc.iop.describe(key) を呼びます。レジストリが唯一の真実の源
(crates/qc-workflow/src/iop.rs)で、この一覧はそれを反映します。
IOP と公開 kwarg のどちらか#
いくつかのノブは、主要シグネチャを集中させるため公開キーワード引数から IOP キーへ移りました — 例えば
scf.conv_tol_grad, scf.symmetrize_fock, scf.salc_cutoff, scf.orbital_ordering,
integral.screen.nuclear_tol, integral.precision は IOP キーで、scf(...) / ints(...) がチェックポイントの
iop から読みます。日常の制御(ref, xc, grid, conv_tol, algorithm, pcm, …)は直接のキーワード引数
のまま(SCF の章)です。