transfer_matrix プログラム仕様
伝達行列法を用いて1次元の波動関数と透過確率を計算するモジュール。
このスクリプトは、多層構造における電子の1次元波動関数と透過確率を、 伝達行列法(Transfer Matrix Method)を用いて計算します。 ポテンシャルプロファイルは、Excelファイルから読み込むか、 または多重量子井戸(Multiple Quantum Well, MQW)モデルに基づいて生成することができます。 計算結果はグラフとして表示され、透過確率データはExcelファイルに保存されます。
関連リンク: D:/git/sphinx/tkProg/source/Quantum/transfer_matrix.py
- Quantum.transfer_matrix.IsInBarrier(z)[ソース]
指定されたz座標がポテンシャル障壁内にあるかを判定します。
グローバル変数 wellwidth, barrierwidth, nbarriers に基づき、 多重量子井戸構造における障壁領域にzが属するかをチェックします。
- Quantum.transfer_matrix.U(z)[ソース]
指定されたz座標におけるポテンシャルエネルギーを返します。
IsInBarrier 関数を使用してz座標が障壁内にあるかを判断し、 障壁内であれば barrierheight (eV) を、そうでなければ0.0 eVを返します。
- Quantum.transfer_matrix.analytical_check(Ez, a)[ソース]
無限に深い井戸型ポテンシャルの解析解との比較情報を提供します。
指定されたエネルギー Ez と井戸幅 a を用いて、自由粒子の波数と、 無限に深い井戸型ポテンシャルの基底状態エネルギーを計算し、表示します。 これは、計算結果の妥当性を確認するための参考情報です。
- Quantum.transfer_matrix.build_U(pottype, xz=None)[ソース]
ポテンシャルエネルギーと有効質量プロファイルを作成または読み込みます。
pottype が 'mqw' の場合、多重量子井戸モデルに基づいてポテンシャル yU と 有効質量 ym を生成します。それ以外の場合、指定されたExcelファイルから ポテンシャルと有効質量のデータを読み込みます。
- Quantum.transfer_matrix.cal_wf(xz, yU, ym, Ez)[ソース]
伝達行列法を用いて1次元波動関数と透過確率を計算します。
与えられたz座標、ポテンシャル、有効質量、およびエネルギーに対して、 各セクションの波数 kz、振幅 A と B、および波動関数 Psi を計算します。 最終的に透過確率 T も算出します。
- Quantum.transfer_matrix.getarg(position, defval=None)[ソース]
コマンドライン引数を安全に取得します。
sys.argv から指定された位置の引数を取得します。 指定された位置に引数が存在しない場合は、デフォルト値を返します。
- Quantum.transfer_matrix.getfloatarg(position, defval=None)[ソース]
コマンドライン引数を浮動小数点数として安全に取得します。
sys.argv から指定された位置の引数を取得し、pfloat 関数を使って 浮動小数点数に変換します。引数が存在しない、または変換できない場合は デフォルト値を返します。
- Quantum.transfer_matrix.getintarg(position, defval=None)[ソース]
コマンドライン引数を整数として安全に取得します。
sys.argv から指定された位置の引数を取得し、pint 関数を使って 整数に変換します。引数が存在しない、または変換できない場合は デフォルト値を返します。
- Quantum.transfer_matrix.meff(z)[ソース]
指定されたz座標における有効質量を返します。
z座標に基づいて、井戸領域または障壁領域の有効質量(電子質量meの倍数)を返します。 この関数はハードコードされた領域に依存します。
- Quantum.transfer_matrix.pfloat(str)[ソース]
文字列を浮動小数点数に安全に変換します。
float() 関数と同様に文字列を浮動小数点数に変換しますが、 変換に失敗した場合はエラーを発生させずにNoneを返します。
- Quantum.transfer_matrix.pint(str)[ソース]
文字列を整数に安全に変換します。
int() 関数と同様に文字列を整数に変換しますが、 変換に失敗した場合はエラーを発生させずにNoneを返します。
- Quantum.transfer_matrix.terminate(message=None)[ソース]
指定されたメッセージを表示し、プログラムを終了します。
エラーメッセージなどを表示した後、usage() 関数を呼び出して使用方法を表示し、 システムを終了します。
- パラメータ:
message (str, optional) -- 終了時に表示するメッセージ。
- Quantum.transfer_matrix.tr()[ソース]
エネルギーに対する透過確率を計算し、結果をプロットします。
コマンドライン引数またはグローバル設定に基づき、指定されたエネルギー範囲で 透過確率を計算します。計算されたポテンシャルプロファイルと透過確率は Excelファイルに保存され、複数のグラフとして表示されます。