vasp_watch プログラム仕様

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

スクリプトのメインエントリポイント。

詳細説明:

コマンドライン引数を解析し、グローバル変数を設定します。 設定されたモードに基づいて、適切なVASP計算監視関数(現在は`watch_relax`のみ)を呼び出します。 不正なモードが指定された場合はエラーで終了します。

VASP.vasp_watch.update_relax(mode, CAR_path, update_time_prev, fig_conv, ax_logE, ax_dE, ax_F)[ソース]

VASPの構造緩和計算の進捗を監視し、リアルタイムでグラフを更新する。

詳細説明:

OUTCARとOSZICARファイルの最終更新時刻をチェックし、更新があればファイルを読み込みます。 INCAR, POSCAR, OUTCARから主要な計算情報をコンソールに出力します。 OSZICARから電子収束ステップとイオン緩和ステップのエネルギー、力に関するデータを抽出し、 MatplotlibのAxesオブジェクトにプロットして、エネルギー収束と力の収束状況を可視化します。 収束基準 (EDIFF, EDIFFG) をグラフ上に破線で表示し、現在の進捗との比較を容易にします。

パラメータ:
  • mode -- str 監視モード(例: 'relax')。

  • CAR_path -- str VASP計算ディレクトリのパス。

  • update_time_prev -- float | None 前回のOUTCARファイルの更新時刻 (UNIXタイムスタンプ)。初回呼び出し時はNone。

  • fig_conv -- matplotlib.figure.Figure プロット全体を管理するMatplotlib Figureオブジェクト。

  • ax_logE -- matplotlib.axes.Axes エネルギー変化の絶対値の対数プロット用Axesオブジェクト。

  • ax_dE -- matplotlib.axes.Axes エネルギー変化の符号付きべき乗プロット用Axesオブジェクト。

  • ax_F -- matplotlib.axes.Axes 力変化の符号付きべき乗プロット用Axesオブジェクト。

戻り値:

float | None 現在のOUTCARファイルの最終更新時刻 (UNIXタイムスタンプ)。ファイルが存在しないなどのエラー時はNone。

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

コマンドライン引数からグローバル変数 modeCAR_dir を更新する。

詳細説明:

sys.argvから指定された引数を取得し、`mode`と`CAR_dir`に設定します。 もし`mode`が不正な値であれば、エラーメッセージを表示してスクリプトを終了します。

VASP.vasp_watch.usage()[ソース]

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

詳細説明:

コマンドライン引数のフォーマットと具体的な使用例を示し、 ユーザーがスクリプトを正しく実行できるように案内する。

VASP.vasp_watch.watch_relax(mode, CAR_dir)[ソース]

VASPの構造緩和プロセスのリアルタイム監視ループを実行する。

詳細説明:

MatplotlibのFigureとAxesオブジェクトを初期化し、 指定されたVASP計算ディレクトリ(CAR_dir)に対して、 一定間隔(t_sleep)で`update_relax`関数を呼び出し続けます。 これにより、計算の進捗状況がリアルタイムでグラフに表示されます。 ユーザーがCtrl-C (KeyboardInterrupt) を押すことで監視ループは終了します。

パラメータ:
  • mode -- str 監視モード(例: 'relax')。

  • CAR_dir -- str VASP計算ディレクトリのパス。