free_electron_band プログラム仕様
- jsap_crystal.free_electron_band.cal_E(k, Ghkl)[ソース]
概要: 自由電子モデルにおけるエネルギーE(k)を計算します。
詳細説明: 与えられたk点ベクトルと逆格子ベクトルG (hkl) を用いて、自由電子のエネルギーを計算します。 k点とGhklは内部座標系で与えられ、エネルギーはeV単位で返されます。
- パラメータ:
k -- list or numpy.ndarray 内部座標系でのk点ベクトル [kx, ky, kz]。
Ghkl -- list or numpy.ndarray 逆格子ベクトル [h, k, l] (ミラー指数)。
- 戻り値:
float 計算された自由電子のエネルギー (eV)。
- jsap_crystal.free_electron_band.cal_kdistance(rg, k0, k1)[ソース]
概要: 逆格子空間における2つのk点間の距離を計算します。
詳細説明: 与えられた逆格子のmetrics (rg) を用いて、2つのk点ベクトル間の距離を計算します。 k点ベクトルは内部座標で与えられます。
- パラメータ:
rg -- numpy.ndarray 逆格子のmetric tensor (3x3)。
k0 -- list or numpy.ndarray 最初のk点ベクトル [kx, ky, kz]。
k1 -- list or numpy.ndarray 2番目のk点ベクトル [kx, ky, kz]。
- 戻り値:
float 2つのk点間の距離。
- jsap_crystal.free_electron_band.get_cal_Elist(xkvec, hrange, krange, lrange)[ソース]
概要: 指定されたk点リストと逆格子ベクトル範囲で自由電子エネルギーを計算します。
詳細説明: 各k点ベクトル xkvec に対して、指定された hrange, krange, lrange の すべての逆格子ベクトルGを考慮した自由電子エネルギー E(k+G) を計算し、 リストとして返します。
- パラメータ:
xkvec -- list 計算するk点ベクトル (kx, ky, kz) のリスト。
hrange -- list H指数 [H_min, H_max]。
krange -- list K指数 [K_min, K_max]。
lrange -- list L指数 [L_min, L_max]。
- Returns yE:
list 各k点における複数のエネルギー値を含む入れ子のリスト。
- jsap_crystal.free_electron_band.get_cal_klist(klist, nk)[ソース]
概要: バンド構造計算およびプロットのためのk点リストを生成します。
詳細説明: klist と nk に基づき、k点パスに沿ってほぼ等間隔に配置された計算用k点ベクトル (xkvec) と、 プロット用の累積距離 (xk) を生成します。 また、k点パスの各セグメントに関する情報も辞書形式で返します。
- パラメータ:
klist -- list k点パスのリスト。各要素は [kx, ky, kz, k点名] の形式。
nk -- int プロットするk点の概数。
- Returns xk:
list プロット用のk点累積距離のリスト。
- Returns xkvec:
list 計算用のk点ベクトルリスト。各要素は [kx, ky, kz]。
- Returns ktotallist:
list k点パスの各高対称点における累積距離のリスト。
- Returns ktotal_namelist:
list k点パスの高対称点の名称リスト。
- Returns res:
dict k点計算に関する追加情報を含む辞書("dklist", "nklist", "ktotal", "kstep")。
- jsap_crystal.free_electron_band.get_dklist(klist, nk)[ソース]
概要: プロットするk点パスにおける、各セグメントのk点距離と累積距離を計算します。
詳細説明: klist に定義された高対称点パスに沿って、各点間の距離 (dklist) および 最初のk点からの累積距離 (ktotal_list) を計算します。 また、バンド構造プロット用のk点名称リスト (ktotal_namelist) も生成します。
- パラメータ:
klist -- list k点パスのリスト。各要素は [kx, ky, kz, k点名] の形式。
nk -- int 計算するk点の概数。この関数では直接使用されないが、バンド計算の粒度を示すため引数として残す。
- Returns dklist:
list 各k点セグメントの距離のリスト。
- Returns ktotal_list:
list 最初のk点からの累積距離のリスト。
- Returns ktotal_namelist:
list 累積距離リストに対応するk点名称のリスト。
- Returns ktotal:
float 全てのk点パスの総距離。
- jsap_crystal.free_electron_band.getarg(position, defval=None)[ソース]
概要: コマンドライン引数を安全に取得します。
詳細説明: 指定されたインデックスのコマンドライン引数を取得します。 インデックスが範囲外の場合は、デフォルト値を返します。
- パラメータ:
position -- int 取得する引数のインデックス(0はスクリプト名)。
defval -- Any, optional 取得できなかった場合に返すデフォルト値。デフォルトはNone。
- 戻り値:
Any コマンドライン引数の値、またはデフォルト値。
- jsap_crystal.free_electron_band.getfloatarg(position, defval=None)[ソース]
概要: コマンドライン引数を浮動小数点数として安全に取得します。
詳細説明: getarg を使用して引数を取得し、pfloat で浮動小数点数に変換します。
- パラメータ:
position -- int 取得する引数のインデックス。
defval -- float or None, optional 取得または変換できなかった場合に返すデフォルト値。デフォルトはNone。
- 戻り値:
float or None 変換された浮動小数点数、またはデフォルト値。
- jsap_crystal.free_electron_band.getintarg(position, defval=None)[ソース]
概要: コマンドライン引数を整数として安全に取得します。
詳細説明: getarg を使用して引数を取得し、pint で整数に変換します。
- パラメータ:
position -- int 取得する引数のインデックス。
defval -- int or None, optional 取得または変換できなかった場合に返すデフォルト値。デフォルトはNone。
- 戻り値:
int or None 変換された整数、またはデフォルト値。
- jsap_crystal.free_electron_band.main()[ソース]
概要: 自由電子バンド構造計算のメイン処理を実行します。
詳細説明: 結晶定数の表示、k点パスの処理、エネルギー計算、およびバンド構造のプロットを行います。 計算結果を標準出力に表示し、matplotlibによるプロットウィンドウを表示します。 ユーザーの入力があるまでウィンドウは閉じません。
- jsap_crystal.free_electron_band.pfloat(str)[ソース]
概要: 文字列を浮動小数点数に安全に変換します。
詳細説明: float() 変換に失敗した場合でもプログラムを終了させず、Noneを返します。
- パラメータ:
str -- str 変換する文字列。
- 戻り値:
float or None 変換された浮動小数点数、または変換できなかった場合はNone。
- jsap_crystal.free_electron_band.pint(str)[ソース]
概要: 文字列を整数に安全に変換します。
詳細説明: int() 変換に失敗した場合でもプログラムを終了させず、Noneを返します。
- パラメータ:
str -- str 変換する文字列。
- 戻り値:
int or None 変換された整数、または変換できなかった場合はNone。
- jsap_crystal.free_electron_band.plot_band(axis, xk, yE, Erange, ktotallist, ktotal_namelist)[ソース]
概要: 自由電子バンド構造をプロットします。
詳細説明: matplotlibのAxesオブジェクトに、計算されたバンドエネルギー yE をk点累積距離 xk に対してプロットします。 高対称点 (ktotallist, ktotal_namelist) の位置に縦線とラベルを追加し、エネルギー範囲を設定します。
- パラメータ:
axis -- matplotlib.axes.Axes バンド構造をプロットするAxesオブジェクト。
xk -- list プロットするk点の蓄積距離のリスト。
yE -- list E(xk[i])。各k点におけるエネルギー値のリスト(入れ子になったリスト)。
Erange -- list プロットするエネルギーの最小値と最大値 [E_min, E_max]。
ktotallist -- list k点境界(高対称点)における、最初のk点からの距離の和のリスト。
ktotal_namelist -- list k点境界における、k点の名称のリスト。
- 戻り値:
None