free_electron_band プログラム仕様

Quantum.free_electron_band.cal_E(k, Ghkl)
概要:

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

詳細説明:

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

引数:
param k:

k点の内部座標 [kx, ky, kz]

type k:

list

param Ghkl:

逆格子ベクトル [h, k, l]

type Ghkl:

list

戻り値:
returns:

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

rtype:

float

Quantum.free_electron_band.cal_kdistance(rg, k0, k1)
概要:

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

引数:
param rg:

逆格子の計量テンソル(3x3行列)

type rg:

list or numpy.ndarray

param k0:

始点のk点座標 [kx, ky, kz]

type k0:

list

param k1:

終点のk点座標 [kx, ky, kz]

type k1:

list

戻り値:
returns:

2点間の距離

rtype:

float

Quantum.free_electron_band.get_cal_Elist(xkvec, hrange, krange, lrange)
概要:

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

引数:
param xkvec:

計算を行うk点座標 [kx, ky, kz] のリスト

type xkvec:

list

param hrange:

逆格子ベクトルhの計算範囲 [最小値, 最大値]

type hrange:

list

param krange:

逆格子ベクトルkの計算範囲 [最小値, 最大値]

type krange:

list

param lrange:

逆格子ベクトルlの計算範囲 [最小値, 最大値]

type lrange:

list

戻り値:
returns:

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

rtype:

list

Quantum.free_electron_band.get_cal_klist(klist, nk)
概要:

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

詳細説明:

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

引数:
param klist:

バンド構造をプロットするk点の軌跡リスト

type klist:

list

param nk:

プロットするk点数の概数

type nk:

int

戻り値:
returns:

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

rtype:

tuple

Quantum.free_electron_band.get_dklist(klist, nk)
概要:

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

詳細説明:

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

引数:
param klist:

[kx, ky, kz, 名称] の形式を持つk点の軌跡リスト

type klist:

list

param nk:

プロットするk点の概算数

type nk:

int

戻り値:
returns:

dklist, ktotal_list, ktotal_namelist, ktotal のタプル。 dklistは各k点間の距離リスト。 ktotal_listは最初のk点からの累積距離リスト。 ktotal_namelistはk点の名称リスト。 ktotalは累積距離の合計。

rtype:

tuple

Quantum.free_electron_band.getarg(position, defval=None)
概要:

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

詳細説明:

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

引数:
param position:

取得したい引数のインデックス

type position:

int

param defval:

範囲外アクセス時に返すデフォルト値

type defval:

Any

戻り値:
returns:

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

rtype:

str or Any

Quantum.free_electron_band.getfloatarg(position, defval=None)
概要:

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

引数:
param position:

取得したい引数のインデックス

type position:

int

param defval:

範囲外アクセス時や変換失敗時に返すデフォルト値

type defval:

Any

戻り値:
returns:

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

rtype:

float or Any

Quantum.free_electron_band.getintarg(position, defval=None)
概要:

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

引数:
param position:

取得したい引数のインデックス

type position:

int

param defval:

範囲外アクセス時や変換失敗時に返すデフォルト値

type defval:

Any

戻り値:
returns:

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

rtype:

int or Any

Quantum.free_electron_band.main()
概要:

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

詳細説明:

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

戻り値:
returns:

なし

rtype:

None

Quantum.free_electron_band.pfloat(str)
概要:

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

詳細説明:

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

引数:
param str:

変換元の文字列

type str:

str

戻り値:
returns:

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

rtype:

float or None

Quantum.free_electron_band.pint(str)
概要:

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

詳細説明:

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

引数:
param str:

変換元の文字列

type str:

str

戻り値:
returns:

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

rtype:

int or None

Quantum.free_electron_band.plot_band(axis, xk, yE, Erange, ktotallist, ktotal_namelist)
概要:

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

引数:
param axis:

matplotlibのAxesオブジェクト

type axis:

matplotlib.axes.Axes

param xk:

プロットするk点の累積距離のリスト

type xk:

list

param yE:

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

type yE:

list

param Erange:

プロットするエネルギーの表示範囲 [最小値, 最大値]

type Erange:

list

param ktotallist:

k点境界における、最初のk点からの距離の和のリスト

type ktotallist:

list

param ktotal_namelist:

k点境界における、k点の名称のリスト

type ktotal_namelist:

list

戻り値:
returns:

なし

rtype:

None

Quantum.free_electron_band.terminate(message=None)
概要:

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

詳細説明:

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

引数:
param message:

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

type message:

str or None

戻り値:
returns:

なし

rtype:

None

Quantum.free_electron_band.usage()
概要:

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

詳細説明:

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

戻り値:
returns:

なし

rtype:

None