# Convergence.pl Documentation

## 1. プログラムの動作

`Convergence.pl`は、VASP（Vienna Ab initio Simulation Package）を用いた計算のための補助スクリプトです。このスクリプトは、以下のような機能を提供します：

- `AnalyzeaKProdcut`: aKProductの解析を行い、適切なk-pointメッシュを計算します。
- `Printnkx`, `Printnky`, `Printnkz`: 各方向のk-point数を出力します。
- `CheckConvergence`: エネルギー収束をチェックします。
- `PrintFileName`: 構造ファイル名を出力します。
- `PrintNVEL`: 全価電子数を出力します。
- `AddHistory`: 計算履歴をファイルに追加します。
- `PrintNBANDS`: NBANDSの値を出力します。

## 2. 必要な非標準ライブラリとインストールコマンドとインストール方法

このスクリプトは、以下の非標準Perlモジュールを使用しています：

- `MyApplication`
- `Utils`
- `Crystal::VASP`

これらのモジュールは、PerlのCPANに存在しない可能性があるため、独自に開発されたモジュールである可能性があります。これらのモジュールは、スクリプトの実行環境に配置されている必要があります。

インストール方法は、通常のPerlモジュールと同様に、`lib`ディレクトリに配置するか、`PERL5LIB`環境変数を設定してモジュールのパスを指定します。

## 3. 必要な入力ファイル

- `POSCAR`または`.cif`ファイル: 構造情報を含むファイル。
- `OUTCAR`: VASPの出力ファイル。
- `INCAR`: VASPの入力ファイル。
- `HistoryFile`: 計算履歴を保存するファイル。

## 4. 実行後に生成される出力ファイル

- `BORN`: 非解析項補正のためのBORNファイル。
- `KPOINTS`: VASPのk-point設定ファイル。
- `band.conf`, `pdos.conf`, `mesh.conf`: phonopy用の設定ファイル。

## 5. コマンドラインでの使用例 (Usage)

```bash
perl Convergence.pl --Action=AnalyzeaKProdcut --aKProduct=2.0
perl Convergence.pl --Action=Printnkx
perl Convergence.pl --Action=CheckConvergence --EPS=0.010
perl Convergence.pl --Action=AddHistory --aKProduct=2.0 --nkx=10 --nky=10 --nkz=10
```

各アクションには、必要に応じて追加の引数を指定することができます。例えば、`--aKProduct`や`--EPS`などのオプションがあります。