vasp_correction_charge プログラム仕様

VASPの計算結果から帯電欠陥および双極子相互作用の補正を推定するスクリプト。

このスクリプトは、VASPの計算結果(OUTCARやINCARなど)を解析し、 帯電欠陥を持つ系における長距離クーロン相互作用や双極子相互作用によって生じる 有限サイズ補正エネルギーを推定します。 具体的には、IDIPOL=4の計算結果、電子誘電率、イオン性誘電率、 そして欠陥の電荷情報を用いて補正値を算出します。

使用方法の詳細は以下のドキュメントを参照してください。 vasp_correction_charge.py 技術ドキュメント

VASP.vasp_correction_charge.correct_charged_defects(mode, CAR_IDIPOL_dir, CAR_DIEL_el_dir, CAR_DIEL_ion_dir, CAR_charge_dir)[ソース]

帯電欠陥および双極子相互作用のエネルギー補正を計算し、結果を要約ファイルに保存する。

詳細説明:

以下の4つのVASP計算ディレクトリから必要な情報を収集し、帯電欠陥のエネルギー補正を計算します。 1. CAR_IDIPOL_dir: IDIPOL=4で計算された欠陥モデルのディレクトリ。

ここから双極子補正情報(Ecorr(charge)など)を読み取ります。

  1. CAR_DIEL_el_dir: 電子誘電率計算モデルのディレクトリ、または電子誘電率の平均値。 電子誘電率を読み取ります。

  2. CAR_DIEL_ion_dir: イオン性誘電率計算モデルのディレクトリ、またはイオン性誘電率の平均値。 イオン性誘電率を読み取ります。

  3. CAR_charge_dir: 欠陥の電荷を決定するための欠陥モデルのディレクトリ。 POSCARとPOTCARから総価電子数を取得し、OUTCARからNELECTを読み取って、欠陥の電荷 q を決定します。 また、セル体積から欠陥の代表長 L を算出します。

集めた情報 (q, L, eps_tot, dipoleinf["Ecorr(charge)"]) を使用して、 電荷補正エネルギー dEcorr を算出し、結果を`summaryfile`に保存します。

パラメータ:
  • mode -- str 計算モード(現在'Z'のみ有効)。

  • CAR_IDIPOL_dir -- str IDIPOL=4で計算された欠陥モデルのディレクトリパス。

  • CAR_DIEL_el_dir -- str 電子誘電率計算モデルのディレクトリパス、または電子誘電率の平均値。

  • CAR_DIEL_ion_dir -- str イオン性誘電率計算モデルのディレクトリパス、またはイオン性誘電率の平均値。

  • CAR_charge_dir -- str 欠陥の電荷を決定するための欠陥モデルのディレクトリパス。

戻り値:

None

VASP.vasp_correction_charge.main()[ソース]

スクリプトのメイン処理を実行する。

詳細説明:

この関数は、プログラムのエントリポイントとして機能します。 - グローバル変数をコマンドライン引数に基づいて更新します。 - ログファイルをリダイレクトして、標準出力とファイルに同時に記録します。 - 現在のモードに基づいて電荷補正計算関数 correct_charged_defects を呼び出します。 - 不正なモードが指定された場合はエラーメッセージを表示し、プログラムを終了します。

戻り値:

None

VASP.vasp_correction_charge.read_dielectric_inf_el(outcarpath)[ソース]

VASPのOUTCARファイルから電子誘電率に関する情報を読み込む。

詳細説明:

指定されたOUTCARファイルを解析し、"REAL DIELECTRIC FUNCTION"セクションから 実部の誘電率テンソルを抽出します。 通常は、エネルギーが0.000000 eVに対応する最初の誘電率データを使用します。 情報が見つからない場合やファイルが読み込めない場合はNoneを返します。

パラメータ:

outcarpath -- str OUTCARファイルのパス。

戻り値:

dict 読み込んだ電子誘電率情報を含む辞書。ファイルが読み込めない場合はNone。

VASP.vasp_correction_charge.read_dielectric_inf_ion(outcarpath)[ソース]

VASPのOUTCARファイルからイオン性誘電率に関する情報を読み込む。

詳細説明:

指定されたOUTCARファイルを解析し、以下のセクションから誘電率テンソルを抽出します。 - "MACROSCOPIC STATIC DIELECTRIC TENSOR (incl":マクロな静的誘電率(局所電場を含む) - "MACROSCOPIC STATIC DIELECTRIC TENSOR IONIC":イオン性誘電率 これらのテンソルを辞書に格納して返します。情報が見つからない場合や ファイルが読み込めない場合はNoneを返します。

パラメータ:

outcarpath -- str OUTCARファイルのパス。

戻り値:

dict 読み込んだイオン性誘電率情報を含む辞書。ファイルが読み込めない場合はNone。

VASP.vasp_correction_charge.read_dipole_inf(outcarpath)[ソース]

VASPのOUTCARファイルから双極子補正に関する情報を読み込む。

詳細説明:

指定されたOUTCARファイルを解析し、"DIPCOR: dipole corrections for dipol" セクションから以下の情報を抽出します。 - 双極子モーメント (dipolemoment) - 四極子モーメントのトレース (Tr[quadrupol]) - 電荷によるエネルギー補正 (Ecorr(charge)) - 双極子+四極子によるエネルギー補正 (Ecorr(di+quadrupol)) - 追加電場によるイオン相互作用のエネルギー補正 (Ecorr(with field)) 情報が見つからない場合やファイルが読み込めない場合はNoneを返します。

パラメータ:

outcarpath -- str OUTCARファイルのパス。

戻り値:

dict 読み込んだ双極子補正情報を含む辞書。ファイルが読み込めない場合はNone。

VASP.vasp_correction_charge.updatevars()[ソース]

コマンドライン引数に基づいてグローバル変数を更新する。

詳細説明:

sys.argv`からコマンドライン引数を取得し、 `CAR_IDIPOL_dir, CAR_DIEL_el_dir, CAR_DIEL_ion_dir, CAR_charge_dir のグローバル変数を更新します。 現在サポートされている`mode`は'Z'のみであり、それ以外の値が指定された場合は エラーメッセージを表示してプログラムを終了します。

戻り値:

None

VASP.vasp_correction_charge.usage(app=None)[ソース]

スクリプトの正しい使用方法を標準出力に表示する。

詳細説明:

本スクリプトのコマンドライン引数の渡し方を示す。 引数には、IDIPOL=4計算ディレクトリ、電子誘電率計算ディレクトリまたは値、 イオン誘電率計算ディレクトリまたは値、欠陥電荷計算ディレクトリを渡す。

パラメータ:

app -- tkApplicationのインスタンス(オプション)。

戻り値:

None