# `vasp_plot_dos.py` Documentation

## 1. プログラムの動作
`vasp_plot_dos.py`は、VASP（Vienna Ab initio Simulation Package）によって計算された状態密度（DOS: Density of States）をプロットするPythonスクリプトです。このプログラムは、指定されたディレクトリ内のVASP出力ファイル（`INCAR`, `POSCAR`, `CONTCAR`, `OUTCAR`, `EIGENVAL`, `DOSCAR`）を読み込み、エネルギー範囲内でのDOSをプロットします。プロットには、スピンアップおよびスピンダウンのDOS、バンドエッジ、HOMO（Highest Occupied Molecular Orbital）、LUMO（Lowest Unoccupied Molecular Orbital）などが含まれます。プロットはPNG形式で保存され、オプションで表示されます。

## 2. 必要な非標準ライブラリとインストールコマンドとインストール方法
このプログラムは、以下の非標準ライブラリを使用しています：

- `numpy`
- `scipy`
- `matplotlib`
- `tklib`（カスタムライブラリ）

これらのライブラリは、以下のコマンドでインストールできます：

```bash
pip install numpy scipy matplotlib
```

`tklib`はカスタムライブラリであり、通常のパッケージマネージャーではインストールできません。`tklib`のインストール方法は、ライブラリの提供元の指示に従ってください。

## 3. 必要な入力ファイル
プログラムは、以下のVASP出力ファイルを必要とします。これらのファイルは、指定されたディレクトリ（`CAR_dir`）に存在する必要があります。

- `INCAR`
- `POSCAR`
- `CONTCAR`
- `OUTCAR`
- `EIGENVAL`
- `DOSCAR`

## 4. 実行後に生成される出力ファイル
プログラムの実行後、以下の出力ファイルが生成されます：

- `dos.png`: DOSプロットを保存したPNG画像ファイル。

## 5. コマンドラインでの使用例 (Usage)
プログラムは、以下の形式でコマンドラインから実行できます：

```bash
python vasp_plot_dos.py mode CAR_dir Emin Emax Gaussian_width save_figure plot_figure plot_figure_Ne
```

- `mode`: プロットモード（現在は'DOS'のみサポート）。
- `CAR_dir`: VASP出力ファイルが存在するディレクトリ。
- `Emin`: プロットするエネルギーの最小値（eV）。
- `Emax`: プロットするエネルギーの最大値（eV）。
- `Gaussian_width`: DOSプロットのガウス畳み込み幅（eV）。
- `save_figure`: プロットをファイルに保存するかどうか（1: 保存する, 0: 保存しない）。
- `plot_figure`: プロットを表示するかどうか（1: 表示する, 0: 表示しない）。
- `plot_figure_Ne`: 電子数プロットを表示するかどうか（1: 表示する, 0: 表示しない）。

### 使用例
```bash
python vasp_plot_dos.py DOS ./  -10 10 0.1 1 1 1
```

この例では、カレントディレクトリにあるVASP出力ファイルを使用して、エネルギー範囲-10 eVから10 eVのDOSをプロットし、ガウス畳み込み幅0.1 eVを適用します。プロットはファイルに保存され、画面にも表示されます。