state_sum プログラム仕様

多粒子系の分配関数(Partition Function)の積の性質を検証するモジュール。

概要:

複数の独立な粒子が存在する系において、全状態和としての分配関数 $Z_{tot}$ が、 各粒子の分配関数 $Z_p$ の積に等しいことを数値的に検証します。

詳細説明:
  1. 各粒子に対して、ランダムなエネルギー準位 $epsilon_{i}$ を生成します。

  2. 手法1(全組み合わせ): itertools.product を用いて、すべての粒子の状態の組み合わせを網羅し、 全エネルギー $E = sum epsilon$ に対するボルツマン因子 $exp(-E/k_B T)$ を足し合わせます。

  3. 手法2(分配関数の積): 各粒子ごとに分配関数 $Z_p = sum exp(-epsilon/k_B T)$ を計算し、それらを掛け合わせます。

  4. 両者の結果が一致することを確認し、独立系における計算の簡略化を理解します。

理論式:

$$Z_{total} = sum_{s_1, s_2, dots} e^{-eta(epsilon_{s_1} + epsilon_{s_2} + dots)} = prod_{p} left( sum_{s} e^{-eta epsilon_{s,p}}

ight)$$

関連リンク: state_sum.py 技術ドキュメント

stastical_physics.state_sum.generate_energy_levels(ns)[ソース]

0から1の範囲でランダムなエネルギー準位($k_B T$ で正規化済み)を生成します。

stastical_physics.state_sum.main()[ソース]

分配関数の2通りの計算と、結果の比較を行います。