equation_bisection プログラム仕様
半導体中のフェルミ準位を二分法で計算するモジュール。
このスクリプトは、電荷中性条件を満たすフェルミ準位(EF)を二分法を用いて数値的に決定します。 電子、正孔、イオン化されたドナーおよびアクセプターのキャリア密度を計算し、 それらの合計電荷がゼロになるEFを見つけます。
equation-bisection_usage
- cms.equation.equation_bisection.NAm(EF, T)[ソース]
イオン化されたアクセプター密度を計算する。
アクセプター準位EAに電子が捕獲され、イオン化したアクセプターの密度を計算します。 フェルミ・ディラック分布関数`fe`とグローバル変数`NA`, `EA`を使用します。
- パラメータ:
EF -- float: フェルミ準位 (eV)。
T -- float: 温度 (K)。
- 戻り値:
float: イオン化アクセプター密度 (cm^-3)。
- cms.equation.equation_bisection.NDp(EF, T)[ソース]
イオン化されたドナー密度を計算する。
ドナー準位EDにある電子が伝導帯へ励起され、イオン化したドナーの密度を計算します。 フェルミ・ディラック分布関数`fe`とグローバル変数`ND`, `ED`を使用します。
- パラメータ:
EF -- float: フェルミ準位 (eV)。
T -- float: 温度 (K)。
- 戻り値:
float: イオン化ドナー密度 (cm^-3)。
- cms.equation.equation_bisection.Ne(EF, T)[ソース]
伝導帯における電子密度を計算する。
伝導帯の下端Ecとフェルミ準位EFから電子密度を計算します。 ここでは古典近似(Boltzmann近似)が使用されており、グローバル変数`Nc`, Ec, `ekBT`を使用します。
- パラメータ:
EF -- float: フェルミ準位 (eV)。
T -- float: 温度 (K)。
- 戻り値:
float: 電子密度 (cm^-3)。
- cms.equation.equation_bisection.Nh(EF, T)[ソース]
価電子帯における正孔密度を計算する。
価電子帯の上端Evとフェルミ準位EFから正孔密度を計算します。 ここでは古典近似(Boltzmann近似)が使用されており、グローバル変数`Nv`, Ev, `ekBT`を使用します。
- パラメータ:
EF -- float: フェルミ準位 (eV)。
T -- float: 温度 (K)。
- 戻り値:
float: 正孔密度 (cm^-3)。
- cms.equation.equation_bisection.fe(E, EF, T)[ソース]
フェルミ・ディラック分布関数を計算する。
電子があるエネルギー準位Eを占有する確率をフェルミ・ディラック統計に基づいて計算します。 計算にはグローバル変数`ekBT` (e / kB / T) を使用します。
- パラメータ:
E -- float: エネルギー準位 (eV)。
EF -- float: フェルミ準位 (eV)。
T -- float: 温度 (K)。
- 戻り値:
float: エネルギー準位Eが占有される確率。
- cms.equation.equation_bisection.main()[ソース]
半導体中のフェルミ準位を二分法で計算し、結果を出力するメイン関数。
この関数は、`EFmin`と`EFmax`で定義された範囲内で、電荷中性条件 (電子密度 + イオン化アクセプター密度 - 正孔密度 - イオン化ドナー密度 = 0) を満たすフェルミ準位 (EF) を二分法を用いて探索します。 探索の進行状況と最終結果を標準出力に表示します。 初期条件が不適切であったり、最大反復回数を超過した場合はエラーメッセージを出力します。
- 戻り値:
int: 計算の成功状態。1は成功、0は失敗または初期条件エラーを示す。