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点の名称のリスト
- 戻り値:
なし