# `vasp_correction_bandfilling.py` Documentation

## 1. プログラムの動作
`vasp_correction_bandfilling.py`は、VASP（Vienna Ab initio Simulation Package）を用いて計算された理想的な結晶モデルと欠陥を含む結晶モデルのバンドフィリング補正を推定するプログラムです。このプログラムは、与えられたディレクトリ内のVASP出力ファイル（INCAR, POSCAR, OUTCAR, DOSCAR, EIGENVAL）を読み込み、バンドエッジや電子占有数を解析し、バンドフィリングエネルギーを計算します。また、結果をプロットし、指定されたファイルにサマリーを保存します。

## 2. 必要な非標準ライブラリとインストールコマンドとインストール方法
このプログラムは、以下の非標準ライブラリを使用しています。

- `tklib`: カスタムライブラリで、VASPファイルの読み込みや解析に使用されます。
- `numpy`: 数値計算ライブラリ。
- `scipy`: 数値計算ライブラリで、特に補間に使用。
- `matplotlib`: グラフ描画ライブラリ。

インストールコマンド:
```bash
pip install numpy scipy matplotlib
```

`tklib`はカスタムライブラリであるため、通常のパッケージマネージャーではインストールできません。ソースコードが提供されている場合は、適切なディレクトリに配置するか、Pythonのパスに追加する必要があります。

## 3. 必要な入力ファイル
プログラムは以下のVASP出力ファイルを必要とします。これらは、理想的な結晶モデルと欠陥を含む結晶モデルの両方について必要です。

- `INCAR`
- `POSCAR`
- `OUTCAR`
- `DOSCAR`
- `EIGENVAL`

これらのファイルは、指定されたディレクトリ（`CAR_dir1`と`CAR_dir2`）に存在する必要があります。

## 4. 実行後に生成される出力ファイル
プログラムの実行後、以下のファイルが生成されます。

- `BF_correction-out.txt`: ログファイル。計算の詳細なログが記録されます。
- `BF_correction-summary.prm`: サマリーファイル。計算結果の要約が記録されます。

これらのファイルは、欠陥モデルのディレクトリ（`CAR_dir2`）に保存されます。

## 5. コマンドラインでの使用例 (Usage)
プログラムはコマンドラインから以下のように実行します。

```bash
python vasp_correction_bandfilling.py mode CAR_dir1 CAR_dir2 dEVBM WG Emin Emax EF0
```

- `mode`: 動作モード（現在は`BF`のみが有効）。
- `CAR_dir1`: 理想的な結晶モデルのディレクトリ。
- `CAR_dir2`: 欠陥を含む結晶モデルのディレクトリ。
- `dEVBM`: VBM補正によって得られたエネルギー差。
- `WG`: DOSのガウススミアリング関数のFWHM（eV）。
- `Emin`: エネルギー範囲の最小値（eV）。
- `Emax`: エネルギー範囲の最大値（eV）。
- `EF0`: エッジエネルギーを検索するための基準エネルギー。

例:
```bash
python vasp_correction_bandfilling.py BF ./ideal_model ./defect_model 0.1 0.1 -10 10 0.1
```

このコマンドは、`./ideal_model`と`./defect_model`ディレクトリにあるVASP出力ファイルを使用して、バンドフィリング補正を計算します。