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()[ソース]
コマンドライン引数からグローバル変数 mode と CAR_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計算ディレクトリのパス。