分子物性(qc.prop#

収束した波動関数は終わりではなく、解析の出発点です。原子電荷は?結合はどこにあり、どれだけ強いか?環は 芳香族か?求電子剤はどこを攻撃するか?qc-rs はこれらに、組み込みの大規模な分子物性スイート — Python を離れず に使える Multiwfn クラスの波動関数解析 — で答えます。この短いページはスイートの構成を説明します;続く各章が各 ファミリを扱います。

qc.prop.<group>.<leaf> 名前空間#

すべての物性は qc.prop.<group>.<leaf> にあり、14 のテーマ別グループに整理されています:

グループ

内容

chrg

原子電荷(Mulliken, Löwdin, Hirshfeld, NPA, CM5, ADCH, MBIS, …)

bond

結合次数・原子価(Mayer, Wiberg, IBSI, fuzzy, multicenter)

mpol

電気モーメント(双極子・四重極)と原子分極率

qtaim

QTAIM(Bader)トポロジー、臨界点、ベイスン積分

elf

ELF/LOL のベイスンとドメイン

arom

芳香族性指標(HOMA, BIRD, FLU, PDI, MCI, …)

cdft

概念 DFT 反応性と Fukui 関数

orb

軌道組成・局在化・指標

nbo

NBO / IAO / IBO 解析

spin

スピン密度と ⟨S²⟩

esp

表面上・核位置での静電ポテンシャル

spec

軌道 DOS、HOMO–LUMO ギャップ、バンド中心

mesh

グリッド上の実空間場(NCI, IGM, キューブ出力)

geom

幾何解析(RDF, 回転定数, 表面積)

続く 6 章が最もよく使うファミリを辿ります:電荷と結合次数QTAIM と ELF弱い相互作用芳香族性概念 DFT 反応性スペクトルと DOS

等価な 2 つの形式#

すべての物性は関数形式とメソッド形式を持ち、これらは同一なので、コードで読みやすい方を使えます:

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

qc.prop.chrg.hirshfeld(m)     # 関数形式
m.prop.chrg.hirshfeld()       # メソッド形式 — 同じ結果

同じ値を返します(検証済み:どちらも O 電荷 −0.32191159)。

遅延評価・キャッシュ・一括計算#

物性は要求時に計算され、波動関数の内容ハッシュでキャッシュされます — 同じ物性を 2 度求めれば 2 度目は 無料で、密度を変える SCF を再実行するとキャッシュは自動的に無効化されます。これらの管理は不要です。

まとまった物性が欲しいと最初から分かっているなら、SCF に scf(prop=...)一括に計算させます:

m = qc.chk.new(atom=water, ao="cc-pvdz", unit="angstrom").scf(ref="r", prop=True).run()
# prop=True は標準バンドルを計算;prop=<プリセット名> や prop=[<refs>] で計算対象を選ぶ

まず必要なもの#

ほぼすべての物性は収束した SCF(密度と軌道)を必要とします — なのでパターンは常に「.scf(...).run() してから物性を求める」です。いくつかのグリッドベースの解析(QTAIM, ELF, 実空間場)は電荷より重いですが、 それでも 1 回の呼び出しで、ただ遅いだけです。では、最も一般的な問い — 電荷はどこにあるか — から始めましょう。