wavefunction2D プログラム仕様

Quantum.wavefunction2D.main()[ソース]

スクリプトの主要な実行ロジック。波動関数の計算とグラフ描画を行います。

詳細説明: コマンドライン引数に基づいてモードと量子数を設定し、選択されたモデル (平面波、量子箱、水素原子モデル)の波動関数を計算します。 計算結果は、1次元プロット(x方向、y方向)と、2次元平面(xy平面)における 波動関数の実部、虚部、確率密度のカラーマップ/3Dサーフェスプロットで可視化されます。

戻り値:

None - 戻り値はありません。

Quantum.wavefunction2D.phi(x: float, y: float, z: float, ax: float, ay: float, az: float, kx: float, ky: float, kz: float) complex[ソース]

ブロッホ因子(平面波部分)を計算します。

詳細説明: exp(i * 2 * pi * (kx*x/ax + ky*y/ay + kz*z/az)) の形式でブロッホ因子を返します。

パラメータ:
  • x -- float - x座標。

  • y -- float - y座標。

  • z -- float - z座標。

  • ax -- float - x方向の格子定数。

  • ay -- float - y方向の格子定数。

  • az -- float - z方向の格子定数。

  • kx -- float - x方向の波数ベクトル成分 (単位: pi/a)。

  • ky -- float - y方向の波数ベクトル成分 (単位: pi/a)。

  • kz -- float - z方向の波数ベクトル成分 (単位: pi/a)。

戻り値:

complex - ブロッホ因子の複素数値。

Quantum.wavefunction2D.psi_H(x: float, y: float, z: float, ax: float, ay: float, az: float, n: float, l: float, m: float, kx: float, ky: float, kz: float, xonly: bool = False, yonly: bool = False, zonly: bool = False) tuple[float, float, float][ソース]

水素原子モデルの周期的な波動関数を計算します。

詳細説明: 中心セルとその隣接する6つのセルからの psi_H1 成分を合計することで、 周期境界条件を模倣した水素原子モデル波動関数を生成します。

パラメータ:
  • x -- float - x座標。

  • y -- float - y座標。

  • z -- float - z座標。

  • ax -- float - x方向の格子定数。

  • ay -- float - y方向の格子定数。

  • az -- float - z方向の格子定数。

  • n -- float - 主量子数。

  • l -- float - 方位量子数。

  • m -- float - 磁気量子数。

  • kx -- float - x方向のブロッホ波数ベクトル成分 (単位: pi/a)。

  • ky -- float - y方向のブロッホ波数ベクトル成分 (単位: pi/a)。

  • kz -- float - z方向のブロッホ波数ベクトル成分 (単位: pi/a)。

  • xonly -- bool - Trueの場合、x方向成分のみを考慮。

  • yonly -- bool - Trueの場合、y方向成分のみを考慮。

  • zonly -- bool - Trueの場合、z方向成分のみを考慮。

戻り値:

tuple[float, float, float] - 波動関数の実部、虚部、および確率密度(絶対値の2乗)。

Quantum.wavefunction2D.psi_H1(x: float, y: float, z: float, ax: float, ay: float, az: float, n: float, l: float, m: float, kx: float, ky: float, kz: float, xonly: bool = False, yonly: bool = False, zonly: bool = False) complex[ソース]

水素原子モデルの波動関数の基本成分を計算します。

詳細説明: 座標 (x, y, z) を球座標に変換し、psi_R_Hpsi_Y_H を使用して動径部分と 角度部分を計算します。これにブロッホ因子を乗じて波動関数を生成します。 reduce2unitcell で座標を調整します。

パラメータ:
  • x -- float - x座標。

  • y -- float - y座標。

  • z -- float - z座標。

  • ax -- float - x方向の格子定数。

  • ay -- float - y方向の格子定数。

  • az -- float - z方向の格子定数。

  • n -- float - 主量子数。

  • l -- float - 方位量子数。

  • m -- float - 磁気量子数。

  • kx -- float - x方向のブロッホ波数ベクトル成分 (単位: pi/a)。

  • ky -- float - y方向のブロッホ波数ベクトル成分 (単位: pi/a)。

  • kz -- float - z方向のブロッホ波数ベクトル成分 (単位: pi/a)。

  • xonly -- bool - Trueの場合、x方向成分のみを考慮。

  • yonly -- bool - Trueの場合、y方向成分のみを考慮。

  • zonly -- bool - Trueの場合、z方向成分のみを考慮。

戻り値:

complex - 水素原子モデル波動関数の複素数値。

Quantum.wavefunction2D.psi_R_H(r: float, n: float, l: float) float[ソース]

水素原子モデルの動径波動関数部分を計算します。

詳細説明: 主量子数 n と方位量子数 l に基づいて、水素様原子の動径波動関数 R_nl(r) を計算します。 kR は波動関数の広がりを調整する係数です。

パラメータ:
  • r -- float - 中心からの動径距離。

  • n -- float - 主量子数。

  • l -- float - 方位量子数。

戻り値:

float - 動径波動関数の実数値。

Quantum.wavefunction2D.psi_Y_H(Theta: float, Phi: float, l: float, m: float) float[ソース]

水素原子モデルの角度波動関数(球面調和関数)部分を計算します。

詳細説明: 方位量子数 l と磁気量子数 m に基づいて、球面調和関数 Y_lm(Theta, Phi) の 実数部分を計算します。

パラメータ:
  • Theta -- float - 天頂角 (ラジアン)。

  • Phi -- float - 方位角 (ラジアン)。

  • l -- float - 方位量子数。

  • m -- float - 磁気量子数。

戻り値:

float - 角度波動関数の実数値。

Quantum.wavefunction2D.psi_pw(x: float, y: float, z: float, ax: float, ay: float, az: float, n1: float, n2: float, n3: float, kx: float, ky: float, kz: float, xonly: bool = False, yonly: bool = False, zonly: bool = False) tuple[float, float, float][ソース]

自由電子(平面波)モデルの波動関数を計算します。

詳細説明: n1, n2, n3 で指定される波数ベクトルを持つ平面波と、kx, ky, kz で指定されるブロッホ因子を 組み合わせた波動関数を計算します。xonly, yonly, zonly が True の場合、 対応する方向の成分のみを考慮します。

パラメータ:
  • x -- float - x座標。

  • y -- float - y座標。

  • z -- float - z座標。

  • ax -- float - x方向の格子定数。

  • ay -- float - y方向の格子定数。

  • az -- float - z方向の格子定数。

  • n1 -- float - x方向の量子数 (波数ベクトル成分)。

  • n2 -- float - y方向の量子数 (波数ベクトル成分)。

  • n3 -- float - z方向の量子数 (波数ベクトル成分)。

  • kx -- float - x方向のブロッホ波数ベクトル成分 (単位: pi/a)。

  • ky -- float - y方向のブロッホ波数ベクトル成分 (単位: pi/a)。

  • kz -- float - z方向のブロッホ波数ベクトル成分 (単位: pi/a)。

  • xonly -- bool - Trueの場合、x方向成分のみを考慮。

  • yonly -- bool - Trueの場合、y方向成分のみを考慮。

  • zonly -- bool - Trueの場合、z方向成分のみを考慮。

戻り値:

tuple[float, float, float] - 波動関数の実部、虚部、および確率密度(絶対値の2乗)。

Quantum.wavefunction2D.psi_qbox(x: float, y: float, z: float, ax: float, ay: float, az: float, n1: float, n2: float, n3: float, kx: float, ky: float, kz: float, xonly: bool = False, yonly: bool = False, zonly: bool = False) tuple[float, float, float][ソース]

量子箱モデルの周期的な波動関数を計算します。

詳細説明: 中心セルとその隣接する6つのセルからの psi_qbox1 成分を合計することで、 周期境界条件を模倣した量子箱波動関数を生成します。

パラメータ:
  • x -- float - x座標。

  • y -- float - y座標。

  • z -- float - z座標。

  • ax -- float - x方向の格子定数。

  • ay -- float - y方向の格子定数。

  • az -- float - z方向の格子定数。

  • n1 -- float - x方向の量子数。

  • n2 -- float - y方向の量子数。

  • n3 -- float - z方向の量子数。

  • kx -- float - x方向のブロッホ波数ベクトル成分 (単位: pi/a)。

  • ky -- float - y方向のブロッホ波数ベクトル成分 (単位: pi/a)。

  • kz -- float - z方向のブロッホ波数ベクトル成分 (単位: pi/a)。

  • xonly -- bool - Trueの場合、x方向成分のみを考慮。

  • yonly -- bool - Trueの場合、y方向成分のみを考慮。

  • zonly -- bool - Trueの場合、z方向成分のみを考慮。

戻り値:

tuple[float, float, float] - 波動関数の実部、虚部、および確率密度(絶対値の2乗)。

Quantum.wavefunction2D.psi_qbox1(x: float, y: float, z: float, ax: float, ay: float, az: float, n1: float, n2: float, n3: float, kx: float, ky: float, kz: float, xonly: bool = False, yonly: bool = False, zonly: bool = False) complex[ソース]

量子箱モデルの波動関数の基本成分を計算します。

詳細説明: 無限ポテンシャル障壁を持つ量子箱内の粒子の波動関数を計算します。 reduce2unitcell を使用して座標を単位セル内に収め、量子数 n1, n2, n3 に応じて cosまたはsin関数を適用します。ブロッホ因子も考慮されます。 kqbox は波動関数の広がりを調整する係数です。

パラメータ:
  • x -- float - x座標。

  • y -- float - y座標。

  • z -- float - z座標。

  • ax -- float - x方向の格子定数。

  • ay -- float - y方向の格子定数。

  • az -- float - z方向の格子定数。

  • n1 -- float - x方向の量子数。

  • n2 -- float - y方向の量子数。

  • n3 -- float - z方向の量子数。

  • kx -- float - x方向のブロッホ波数ベクトル成分 (単位: pi/a)。

  • ky -- float - y方向のブロッホ波数ベクトル成分 (単位: pi/a)。

  • kz -- float - z方向のブロッホ波数ベクトル成分 (単位: pi/a)。

  • xonly -- bool - Trueの場合、x方向成分のみを考慮。

  • yonly -- bool - Trueの場合、y方向成分のみを考慮。

  • zonly -- bool - Trueの場合、z方向成分のみを考慮。

戻り値:

complex - 量子箱モデル波動関数の複素数値。

Quantum.wavefunction2D.reduce2unitcell(x: float) float[ソース]

与えられた座標値を単位セル内の[-0.5, 0.5)の範囲に変換します。

詳細説明: 座標 x を +0.5 して [0, 1) の範囲に移動させ、整数部分を引いて [0, 1) に収め、 最後に -0.5 して [-0.5, 0.5) の範囲に戻します。

パラメータ:

x -- float - 変換する座標値。

戻り値:

float - 単位セル内の変換された座標。

Quantum.wavefunction2D.terminate(message: str, usage=<function usage>)[ソース]

エラーメッセージを表示し、必要に応じて利用方法を表示してプログラムを終了します。

詳細説明: 指定されたエラーメッセージを表示後、プログラムを強制終了(exit)します。

パラメータ:
  • message -- str - 表示するエラーまたは終了メッセージ。

  • usage -- function - 呼び出す利用方法表示関数(デフォルトは usage)。

戻り値:

None - プログラムが終了するため戻り値はありません。

Quantum.wavefunction2D.usage()[ソース]

スクリプトの利用方法と引数を表示します。

詳細説明: 標準出力にコマンドライン引数の指定方法や利用可能なモードについての情報を出力します。

戻り値:

None - 戻り値はありません。

Quantum.wavefunction2D.wfname_H(n: float, l: float, m: float) str[ソース]

水素原子モデルの波動関数名(軌道名)を生成します。

詳細説明: 与えられた量子数 n, l, m に対応する軌道名(例: 1s, 2pz, 3dx2-y2など)を 文字列として返します。

パラメータ:
  • n -- float - 主量子数。

  • l -- float - 方位量子数。

  • m -- float - 磁気量子数。

戻り値:

str - 波動関数の軌道名。