D:/git/sphinx/tkProg/source/Quantum/free_electron_band.py
プログラムの動作
このプログラムは、自由電子モデルに基づいてシリコン(Si)などの結晶における電子のエネルギーバンド構造(E-k曲線)を計算し、グラフとして可視化するPythonスクリプトです。特定のk点経路(ブリルアンゾーン内の対称点 W, L, \(\Gamma\), X, K)に沿ったエネルギー固有値を計算し、バンド図を描画することで、結晶中の電子のエネルギー状態を視覚的に把握するという課題を解決します。
原理
本プログラムでは、自由電子近似を用いて電子のエネルギーを計算します。電子のエネルギー \(E\) は、波数ベクトル \(\mathbf{k}\) と逆格子ベクトル \(\mathbf{G}_{hkl}\) を用いて以下の式で表されます。
ここで、各記号は以下の意味を持ちます。
\(\hbar\): 換算プランク定数
\(m_{\text{eff}}\): 電子の有効質量(本プログラムでは \(1.0\))
\(m_e\): 電子の静止質量
逆格子ベクトル \(\mathbf{G}_{hkl}\) はミラー指数 \((h, k, l)\) で指定され、プログラム中では指定された範囲の全ての組み合わせに対してエネルギーを計算し、バンドの折り返しを再現しています。逆格子空間における距離の計算には、逆格子計量テンソル(メトリック)が使用されます。
必要な非標準ライブラリとインストール方法
本プログラムを実行するには、以下の非標準ライブラリが必要です。
NumPy
Matplotlib
これらをインストールするには、コマンドプロンプトやターミナルで以下の pip コマンドを実行してください。
pip install numpy matplotlib
必要な入力ファイル
本プログラムを実行するにあたり、外部の入力ファイルは必要ありません。格子定数(\(a = 5.4064\) Å)、計算するk点の軌跡、逆格子ベクトルの探索範囲(\(h, k, l\) それぞれ -3 から 3 まで)などの計算パラメータは、すべてプログラムのソースコード内に直接記述されています。
生成される出力ファイル
本プログラムは計算結果をファイルとして保存しません。実行するとMatplotlibのウィンドウが起動し、計算されたバンド構造のグラフが画面上に直接描画されます。
コマンドラインでの使用例 (Usage)
本プログラムはコマンドライン引数を必要としません。以下のコマンドで実行します。
python D:/git/sphinx/tkProg/source/Quantum/free_electron_band.py
コマンドラインでの具体的な使用例
追加の引数を指定せずにそのままプログラムを実行します。
python D:/git/sphinx/tkProg/source/Quantum/free_electron_band.py
実行結果の説明:
実行を開始すると、コマンドラインに格子定数、有効質量、逆格子の計量テンソル、ミラー指数の計算範囲、k点間の距離など、計算に使用されるパラメータや中間データがテキストとして出力されます。
計算が完了すると画面にグラフ描画ウィンドウが表示されます。グラフは横軸が指定されたk点の経路(W, L, \(\Gamma\), X, W, K)、縦軸がエネルギー(0.0 eV から 10.0 eV の範囲)を示しており、自由電子モデルによるバンド構造がプロットされています。
同時に、コマンドラインには Press ENTER to exit>> と表示されます。描画されたグラフを確認した後にターミナル上でEnterキーを押下することで、グラフが閉じられプログラムが正常に終了します。