# `vasp_correction_VBM.py` Documentation

## 1. プログラムの動作

`vasp_correction_VBM.py`は、VASP（Vienna Ab initio Simulation Package）を用いて計算された欠陥モデルに対する価電子帯最大値（VBM）の補正を推定するためのプログラムです。このプログラムは、理想的な結晶モデルと欠陥を含む結晶モデルのコアポテンシャルの違いを分析し、VBMの補正値を計算します。また、結果をプロットして視覚化します。

## 2. 必要な非標準ライブラリとインストールコマンドとインストール方法

このプログラムは、以下の非標準ライブラリを使用しています。

- `numpy`
- `scipy`
- `matplotlib`
- `tklib`（カスタムライブラリ）

インストールコマンド（`pip`を使用）:

```bash
pip install numpy scipy matplotlib
```

`tklib`はカスタムライブラリであり、通常のパッケージマネージャーではインストールできません。ソースコードが提供されている場合は、手動でインストールする必要があります。

## 3. 必要な入力ファイル

プログラムは、以下のVASP出力ファイルを必要とします。

- `INCAR`
- `POSCAR`
- `CONTCAR`
- `OUTCAR`
- `DOSCAR`
- `EIGENVAL`

これらのファイルは、理想的な結晶モデルと欠陥を含む結晶モデルの両方に対して必要です。

## 4. 実行後に生成される出力ファイル

プログラムの実行後、以下のファイルが生成されます。

- `VBM_correction-out.txt`: ログファイル
- `VBM_correction-summary.prm`: 補正結果のサマリーファイル

## 5. コマンドラインでの使用例 (Usage)

プログラムはコマンドラインから以下のように実行します。

```bash
python vasp_correction_VBM.py mode CAR_dir(ideal) CAR_dir(defect) dVth WGauss Rmin_vacancy Rmin_potential Emin Emax
```

- `mode`: 'mode'（最頻値アルゴリズム）または 'average'（平均値アルゴリズム）
- `CAR_dir(ideal)`: 理想的な結晶モデルのディレクトリ
- `CAR_dir(defect)`: 欠陥を含む結晶モデルのディレクトリ
- `dVth`: サイトポテンシャルの除外基準（eV）
- `WGauss`: ガウス関数のFWHM（eV）
- `Rmin_vacancy`: 欠陥を見つけるための最小距離（Å）
- `Rmin_potential`: サイトポテンシャルを計算するための最小距離（Å）
- `Emin`, `Emax`: プロットのエネルギー範囲（eV）

### 使用例

```bash
python vasp_correction_VBM.py mode ./ideal_model ./defect_model 0.1 0.1 0.5 5.0 0.0 8.0
```

このコマンドは、指定されたディレクトリにある理想的な結晶モデルと欠陥を含む結晶モデルのデータを使用して、VBM補正を計算します。