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は失敗または初期条件エラーを示す。