vasp_plot_band プログラム仕様
VASP計算によるバンド構造をプロットするスクリプト。
- 概要:
VASPの計算結果(OUTCAR, EIGENVAL, KPOINTSなど)からバンド構造を読み込み、 matplotlibを使用してプロットし、関連するバンドデータをCSV/Excelファイルに保存します。
- 詳細説明:
本スクリプトは、指定されたVASP計算ディレクトリから必要な出力ファイルを解析し、 バンドエネルギー、K点情報、フェルミ準位、バンドギャップなどを抽出します。 抽出された情報に基づいて、バンド構造のグラフを作成し、 選択されたモード('band', 'bandline', 'bandocc')に応じて描画方法を調整します。 プロットされたグラフはPNGファイルとして保存でき、バンドデータはCSVまたはExcel形式で出力されます。
- 関連リンク:
- VASP.vasp_plot_band.main()[ソース]
スクリプトのメイン処理を実行します。
- 詳細説明:
コマンドライン引数に基づいてグローバル変数を更新し、 指定されたプロットモード (mode) に応じてバンド構造のプロット関数を呼び出します。 無効なモードが指定された場合はエラーで終了します。
- パラメータ:
なし
- 戻り値:
なし
- VASP.vasp_plot_band.plot_band_structure(mode, CAR_dir, Emin, Emax)[ソース]
VASPの計算結果からバンド構造をプロットし、関連データを保存します。
- 詳細説明:
指定されたVASP計算ディレクトリ (CAR_dir) から、INCAR, POSCAR, KPOINTS, CONTCAR, OUTCAR, EIGENVAL, DOSCAR などのファイルを読み込み、 結晶構造情報、計算パラメータ、K点情報、バンドエネルギー、占有率、フェルミ準位、 バンドエッジ(HOMO/LUMO/価電子帯最大値/伝導帯最小値)を抽出します。 これらの情報を用いてmatplotlibでバンド構造のグラフを描画し、 指定されたモード ('band', 'bandline', 'bandocc') に応じてマーカーや線種を調整します。 プロット後、バンド構造データを`band_path`で指定されたファイルに保存し、 `save_figure`が`True`の場合はPNG画像としてグラフを保存します。 `plot_figure`が`True`の場合はグラフウィンドウを表示します。
:param : param mode: str - プロットモード ('band', 'bandline', 'bandocc')。 :param : param CAR_dir: str - VASPの計算結果が格納されているディレクトリのパス。 :param : param Emin: float - プロットするエネルギー範囲の下限 (eV)。 :param : param Emax: float - プロットするエネルギー範囲の上限 (eV)。
- 戻り値:
なし
- VASP.vasp_plot_band.save_bandstructure(band_path, ISPIN, kvec, Eup, Edn)[ソース]
バンド構造データをCSVまたはExcelファイルに保存します。
- 詳細説明:
K点情報 (kvec) と各バンドのエネルギー情報 (Eup, Edn) を整理し、 指定されたパス (band_path) にCSVまたはExcel形式で出力します。 ISPINが2(スピン偏極計算)の場合、スピンダウンのエネルギーも保存します。
:param : param band_path: str - 出力ファイルのパス (例: 'band.xlsx', 'band.csv')。 :param : param ISPIN: int - スピン偏極計算の有無 (1: スピン非偏極, 2: スピン偏極)。 :param : param kvec: list - 各k点の座標と距離情報を含むリスト。各要素は [kx, ky, kz, dk, ktot]。 :param : param Eup: list - 各k点におけるスピンアップ電子のバンドエネルギーのリスト。
Eup[ik][iL] は ik 番目のk点の iL 番目のバンドエネルギー。
- :paramparam Edn: list - 各k点におけるスピンダウン電子のバンドエネルギーのリスト。
Edn[ik][iL] は ik 番目のk点の iL 番目のバンドエネルギー。 ISPIN=1の場合は空のリスト。
- 戻り値:
returns: bool - ファイル保存が成功した場合は True。