# `vasp_watch.py` Documentation

## 1. プログラムの動作

`vasp_watch.py` は、VASP（Vienna Ab initio Simulation Package）による計算の進行状況を監視するためのスクリプトです。このプログラムは、指定されたディレクトリ内の VASP 出力ファイル（OUTCAR, OSZICAR など）を定期的にチェックし、エネルギー収束や力の変化をリアルタイムでプロットします。主に以下の機能を持っています：

- VASP の計算ディレクトリを監視し、OUTCAR や OSZICAR ファイルの更新を検出。
- エネルギーの変化（dE）や力の変化（dF）をプロットし、収束状況を可視化。
- プロットはリアルタイムで更新され、収束基準（EDIFF, EDIFFG）も表示。

## 2. 必要な非標準ライブラリとインストールコマンドとインストール方法

このプログラムは、以下の非標準ライブラリを使用しています：

- `numpy`
- `scipy`
- `matplotlib`
- `tklib`（カスタムライブラリ）

これらのライブラリは、以下のコマンドでインストールできます：

```bash
pip install numpy scipy matplotlib
```

`tklib` はカスタムライブラリであり、通常のパッケージマネージャーではインストールできません。`tklib` のインストール方法は、提供元のドキュメントを参照してください。

## 3. 必要な入力ファイル

プログラムを実行するためには、以下の VASP 出力ファイルが必要です：

- `INCAR`
- `POSCAR`
- `KPOINTS`
- `OUTCAR`
- `OSZICAR`

これらのファイルは、指定した計算ディレクトリ（`CAR_dir`）内に存在する必要があります。

## 4. 実行後に生成される出力ファイル

このプログラム自体は新しいファイルを生成しませんが、リアルタイムでエネルギーと力の変化をプロットするグラフを表示します。グラフはプログラムの実行中に更新され続けます。

## 5. コマンドラインでの使用例 (Usage)

プログラムは以下のように実行します：

```bash
python vasp_watch.py relax <CAR_dir> <cif_path>
```

- `relax` はモードを指定します（現在は `relax` のみサポート）。
- `<CAR_dir>` は VASP 計算が行われているディレクトリのパスです。
- `<cif_path>` は CIF ファイルのパスですが、現在の実装では使用されていないようです。

例：

```bash
python vasp_watch.py relax . /path/to/cif_file.cif
```

このコマンドは、カレントディレクトリで VASP の計算を監視し、エネルギーと力の収束をリアルタイムでプロットします。