tkbandstructure プログラム仕様

バンド構造をプロットするためのユーティリティ関数を提供するモジュール。

概要:

このモジュールは、バンド構造計算の結果を可視化するための関数を定義します。

詳細説明:

tkbandstructureモジュールは、主に`plot_band`関数を提供し、 k点経路に沿った電子エネルギーのバンド構造をグラフとして描画します。 フェルミ準位、HOMO/LUMO準位、価電子帯端/伝導帯端などの重要なエネルギー準位を 補助線として表示する機能や、占有率に応じてバンドの色を調整する機能も備えています。 また、k点経路上の高対称点などの境界を縦線とラベルで示すことができます。

関連リンク:

tkbandstructure.py の技術ドキュメント

tklib.tkcrystal.tkbandstructure.plot_band(plt, axis, ISPIN, xk, yEup, yEdn, Erange, occups=None, occdns=None, ktotallist=None, ktotal_namelist=None, nmax=1.0, EV=None, EC=None, EF=None, EHOMO=None, ELUMO=None, EVlabel='$E_V$', EClabel='$E_C$', EFlabel='$E_F$', EHOMOlabel='$E_{HOMO}$', ELUMOlabel='$E_{LUMO}$', marker='o', linestyle='', color='black', linewidth=0.3, markersize=2.0, markeredgewidth=0.5, legendloc='best', fontsize=16, labelsize=12, legend_fontsize=12)[ソース]

電子バンド構造をプロットする。

概要:

与えられたk点の情報とエネルギー値に基づいてバンド構造をグラフに描画する。

詳細説明:

この関数は、k点経路に沿った電子エネルギーのバンド構造をプロットします。 フェルミ準位、HOMO/LUMO準位、価電子帯端/伝導帯端などの補助線を グラフ上に表示できます。 occupts および occdns が指定された場合、バンドの占有率に応じて 色を濃淡で表現し、電子の占有状況を視覚的に示します。 ktotallistktotal_namelist を使用して、k点経路上の重要な点 (例: 高対称点)に縦線を引き、対応するラベルをX軸に表示します。

パラメータ:
  • plt (module) -- matplotlib.pyplot モジュールオブジェクト。グラフ全体の操作に使用。

  • axis (matplotlib.axes.Axes) -- matplotlib.axes.Axes オブジェクト。バンド構造を描画するサブプロット。

  • ISPIN (int) -- スピン偏極計算の場合2、それ以外は1。2の場合、downスピンバンドを区別してプロット。

  • xk (list[float]) -- プロットするk点の蓄積距離のリスト。

  • yEup (list[list[float]]) -- 各k点におけるupスピン(または非スピン偏極)のエネルギー値のリスト。yEup[ik][iE] の形式。

  • yEdn (list[list[float]]) -- 各k点におけるdownスピンのエネルギー値のリスト (ISPIN=2の場合のみ)。yEdn[ik][iE] の形式。

  • Erange (list[float, float]) -- Y軸のエネルギー表示範囲 [E_min, E_max]

  • occups (list[list[float]], optional) -- upスピン(または非スピン偏極)の各バンドの占有率。占有率に応じて色を変化させるために使用。デフォルトはNone。

  • occdns (list[list[float]], optional) -- downスピンの各バンドの占有率 (ISPIN=2の場合のみ)。占有率に応じて色を変化させるために使用。デフォルトはNone。

  • ktotallist (list[float], optional) -- k点経路の特定の境界(高対称点など)における、最初のk点からの距離の和のリスト。これらの位置に縦線が引かれる。デフォルトはNone。

  • ktotal_namelist (list[str], optional) -- ktotallist に対応するk点境界の名称リスト。X軸の目盛りラベルとして使用。デフォルトはNone。

  • nmax (float, optional) -- 占有率の最大値。占有率を正規化して色を決定するために使用される。デフォルトは1.0。

  • EV (float, optional) -- 価電子帯端エネルギー (eV)。補助線としてプロット。デフォルトはNone。

  • EC (float, optional) -- 伝導帯端エネルギー (eV)。補助線としてプロット。デフォルトはNone。

  • EF (float, optional) -- フェルミ準位エネルギー (eV)。補助線としてプロット。デフォルトはNone。

  • EHOMO (float, optional) -- HOMOエネルギー準位 (eV)。補助線としてプロット。デフォルトはNone。

  • ELUMO (float, optional) -- LUMOエネルギー準位 (eV)。補助線としてプロット。デフォルトはNone。

  • EVlabel (str, optional) -- EV の凡例ラベル。デフォルトは`'$E_V$'`

  • EClabel (str, optional) -- EC の凡例ラベル。デフォルトは`'$E_C$'`

  • EFlabel (str, optional) -- EF の凡例ラベル。デフォルトは`'$E_F$'`

  • EHOMOlabel (str, optional) -- EHOMO の凡例ラベル。デフォルトは`'$E_{HOMO}$'`

  • ELUMOlabel (str, optional) -- ELUMO の凡例ラベル。デフォルトは`'$E_{LUMO}$'`

  • marker (str, optional) -- バンドをプロットする際のマージンのスタイル。デフォルトは`'o'`

  • linestyle (str, optional) -- バンドをプロットする際の線種。デフォルトは`''` (線なし)。

  • color (str, optional) -- バンドの基本色。占有率による色分けがない場合に使用。デフォルトは`'black'`

  • linewidth (float, optional) -- バンドの線の太さ。デフォルトは0.3。

  • markersize (float, optional) -- マーカーのサイズ。デフォルトは2.0。

  • markeredgewidth (float, optional) -- マーカーの縁の太さ。デフォルトは0.5。

  • legendloc (str, optional) -- 凡例の位置。デフォルトは`'best'`

  • fontsize (int, optional) -- 軸ラベルのフォントサイズ。デフォルトは16。

  • labelsize (int, optional) -- 目盛りラベルのフォントサイズ。この引数は現在コード内で直接使用されていませんが、Docstringとして定義されています。デフォルトは12。

  • legend_fontsize (int, optional) -- 凡例のフォントサイズ。デフォルトは12。

戻り値:

None。この関数はグラフを描画し、明示的な値を返しません。

戻り値の型:

None