# CalMaxJsc.pl Documentation

## 1. プログラムの動作
`CalMaxJsc.pl`は、太陽電池の最大短絡電流密度 (Jsc) を計算するためのPerlスクリプトです。このプログラムは、光学スペクトルデータとVASP（Vienna Ab initio Simulation Package）からのデータを使用して、太陽電池の効率を評価します。具体的には、以下の手順を実行します：
- 太陽スペクトルデータを読み込み、正規化します。
- 光子フラックスを計算します。
- VASPデータを読み込み、バンドギャップ (Eg) を取得します。
- 最大吸収ケースと単一パス吸収ケースに基づいて、Jscと効率を計算します。
- 多層干渉モデルを使用して、フィルムの光学特性を評価します。

## 2. 必要な非標準ライブラリとインストールコマンドとインストール方法
このプログラムは、以下の非標準Perlモジュールを使用しています：
- `CSV`
- `JFile`
- `MyHTMLApplication`
- `Sci`
- `MultiColumnData`
- `Crystal::VASP`

これらのモジュールはCPANからインストールできます。以下はインストールコマンドの例です：

```bash
cpan CSV
cpan JFile
cpan MyHTMLApplication
cpan Sci
cpan MultiColumnData
cpan Crystal::VASP
```

## 3. 必要な入力ファイル
- `SolarSpectra.txt`: 太陽スペクトルデータを含むファイル。
- `Optics.csv`: 光学スペクトルデータを含むファイル。
- VASP関連のデータファイル（`INCAR`, `KPOINTS`, `POTCAR`, `POSCAR`, `OUTCAR`）が適切なディレクトリに存在する必要があります。

## 4. 実行後に生成される出力ファイル
- `NormalizedLightSource.csv`: 正規化された光源スペクトルデータ。
- `OpticalSpectra.csv`: 光学スペクトルデータ。
- `FilmDielectricFunction.csv`: フィルムの誘電関数データ。
- `MultilayerSpectra.csv`: 多層スペクトルデータ。

## 5. コマンドラインでの使用例 (Usage)
以下は、コマンドラインでの使用例です：

```bash
perl CalMaxJsc.pl --Eg=1.5 --Voc=0.7 --VocRatio=0.8 --FF=0.8 --Power=1000 --Thickness=100
```

この例では、バンドギャップ (Eg) を1.5 eV、開放電圧 (Voc) を0.7 V、Voc比を0.8、充填率 (FF) を0.8、光源のパワーを1000 W/m²、フィルムの厚さを100 nmとして計算を行います。