free_electron_band プログラム仕様

Quantum.free_electron_band.cal_E(k, Ghkl)[ソース]

k点座標と逆格子ベクトルから自由電子のエネルギーを計算する(単位: eV)。

kおよびGhklは内部座標系で与える。

パラメータ:
  • k -- (list) k点の内部座標 [kx, ky, kz]

  • Ghkl -- (list) 逆格子ベクトル [h, k, l]

戻り値:

(float) 計算されたエネルギー値 (eV)

Quantum.free_electron_band.cal_kdistance(rg, k0, k1)[ソース]

逆格子の計量テンソルを用いて、2つのk点間の距離を計算する。

パラメータ:
  • rg -- (list または ndarray) 逆格子の計量テンソル(3x3行列)

  • k0 -- (list) 始点のk点座標 [kx, ky, kz]

  • k1 -- (list) 終点のk点座標 [kx, ky, kz]

戻り値:

(float) 2点間の距離

Quantum.free_electron_band.get_cal_Elist(xkvec, hrange, krange, lrange)[ソース]

計算用k点リストと逆格子ベクトルの範囲から、各k点でのエネルギーリストを計算する。

パラメータ:
  • xkvec -- (list) 計算を行うk点座標 [kx, ky, kz] のリスト

  • hrange -- (list) 逆格子ベクトルhの計算範囲 [最小値, 最大値]

  • krange -- (list) 逆格子ベクトルkの計算範囲 [最小値, 最大値]

  • lrange -- (list) 逆格子ベクトルlの計算範囲 [最小値, 最大値]

戻り値:

(list) 各k点におけるエネルギー群が格納された入れ子リスト

Quantum.free_electron_band.get_cal_klist(klist, nk)[ソース]

指定されたk点軌跡から、等間隔になるように計算用のk点リストを生成する。

プロットに必要な累積距離リストやk点名称などのデータもあわせて作成する。

パラメータ:
  • klist -- (list) バンド構造をプロットするk点の軌跡リスト

  • nk -- (int) プロットするk点数の概数

戻り値:

(tuple) (xk, xkvec, ktotallist, ktotal_namelist, res) - xk: 各計算k点の累積距離リスト - xkvec: 各計算k点の座標リスト - ktotallist: 区切りとなるk点の累積距離リスト - ktotal_namelist: 区切りとなるk点の名称リスト - res: 距離情報や分割数情報を持つ辞書

Quantum.free_electron_band.get_dklist(klist, nk)[ソース]

プロットするk点軌跡の各距離と、最初のk点からの累積距離リストを計算する。

バンド構造プロット用に、k点の名称リストも合わせて生成する。

パラメータ:
  • klist -- (list) [kx, ky, kz, 名称] の形式を持つk点の軌跡リスト

  • nk -- (int) プロットするk点の概算数

戻り値:

(tuple) (dklist, ktotal_list, ktotal_namelist, ktotal) - dklist: 各k点間の距離リスト - ktotal_list: 最初のk点からの累積距離リスト - ktotal_namelist: k点の名称リスト - ktotal: 累積距離の合計

Quantum.free_electron_band.getarg(position, defval=None)[ソース]

起動時のコマンドライン引数を安全に取得する。

sys.argvに対して範囲外のインデックスを指定してもエラー終了せず、デフォルト値を返す。

パラメータ:
  • position -- (int) 取得したい引数のインデックス

  • defval -- (Any) 範囲外アクセス時に返すデフォルト値

戻り値:

(str または Any) 取得した引数の文字列、またはデフォルト値

Quantum.free_electron_band.getfloatarg(position, defval=None)[ソース]

起動時引数を取得し、実数に変換して返す。

パラメータ:
  • position -- (int) 取得したい引数のインデックス

  • defval -- (Any) 範囲外アクセス時や変換失敗時に返すデフォルト値

戻り値:

(float または Any) 変換された実数値、またはデフォルト値

Quantum.free_electron_band.getintarg(position, defval=None)[ソース]

起動時引数を取得し、整数値に変換して返す。

パラメータ:
  • position -- (int) 取得したい引数のインデックス

  • defval -- (Any) 範囲外アクセス時や変換失敗時に返すデフォルト値

戻り値:

(int または Any) 変換された整数値、またはデフォルト値

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

自由電子バンド計算のメインルーチン。

格子定数やプロットパラメータを設定し、k点のリストとエネルギーを計算して matplotlibを用いてバンド図を描画する。

Param:

なし

戻り値:

なし

Quantum.free_electron_band.pfloat(str)[ソース]

文字列を実数値に変換する。

実数値に変換できない文字列をfloat()で変換するとエラーになってプログラムが終了するため、 この関数は変換できなかったらNoneを返すが、プログラムは終了させない。

パラメータ:

str -- (str) 変換元の文字列

戻り値:

(float または None) 変換された実数値、変換できない場合はNone

Quantum.free_electron_band.pint(str)[ソース]

文字列を整数値に変換する。

pfloat()と同様に、変換できない文字列が渡されてもエラー終了させずNoneを返す。

パラメータ:

str -- (str) 変換元の文字列

戻り値:

(int または None) 変換された整数値、変換できない場合はNone

Quantum.free_electron_band.plot_band(axis, xk, yE, Erange, ktotallist, ktotal_namelist)[ソース]

計算した自由電子のバンド構造をグラフにプロットする。

パラメータ:
  • axis -- (Axes) matplotlibのAxesオブジェクト

  • xk -- (list) プロットするk点の累積距離のリスト

  • yE -- (list) 各k点に対応するエネルギーのリスト(入れ子でも可)

  • Erange -- (list) プロットするエネルギーの表示範囲 [最小値, 最大値]

  • ktotallist -- (list) k点境界における、最初のk点からの距離の和のリスト

  • ktotal_namelist -- (list) k点境界における、k点の名称のリスト

戻り値:

なし

Quantum.free_electron_band.terminate(message=None)[ソース]

メッセージを表示し、プログラムを安全に終了する。

任意のメッセージと使用方法を表示した上で exit() を呼び出す。

パラメータ:

message -- (str) 終了前に表示する文字列(Noneの場合は表示しない)

戻り値:

なし

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

プログラムの使用方法を表示する。

コンソール上に使い方のメッセージを出力する。

Param:

なし

戻り値:

なし