mu_TN_Fit プログラム仕様

半導体の散乱モデルの最小二乗法

概要:

半導体のホール移動度に対する散乱モデルの最小二乗フィッティングを行うスクリプトです。

詳細説明:

本スクリプトは、温度およびキャリア濃度依存性を持つホール移動度データを、 複数の散乱メカニズム(光学フォノン散乱、音響フォノン散乱、イオン化不純物散乱、障壁散乱など)を考慮したモデルでフィッティングします。 これにより、各散乱パラメータを決定し、その結果をグラフ表示するとともに、 Excelファイルおよびパラメータファイルに保存します。 動作モードは 'init', 'fit', 'sim' があり、'fit' モードではさらに 'mu_T', 'mu_TN', 'mu_T_Nfix', 'Aop', 'A_T0', 'A_T32', 'VB' のターゲットを指定して特定のフィッティングを実行できます。

関連リンク:

mu-TN-Fit_usage

electrical.mu_TN_Fit.AT0(N, A2, B2, C2, logN02)[ソース]

音響フォノン散乱に関連するパラメータ AT0 を計算します。

詳細説明:

キャリア濃度 N に基づいて、音響フォノン散乱のパラメータ AT0 を計算します。 これは、キャリア濃度に依存する飽和関数として表現されます。

パラメータ:
  • N -- (float) キャリア濃度 (cm^-3)。

  • A2 -- (float) 音響フォノン散乱の振幅パラメータ。

  • B2 -- (float) 音響フォノン散乱の濃度依存性パラメータ。

  • C2 -- (float) 音響フォノン散乱のオフセットパラメータ。

  • logN02 -- (float) 音響フォノン散乱のキャリア濃度基準値の常用対数。

戻り値:

(float) 計算された音響フォノン散乱のパラメータ AT0

electrical.mu_TN_Fit.AT32(N, A3, B3, C3, D3, F3, logN03)[ソース]

イオン化不純物散乱に関連するパラメータ AT32 を計算します。

詳細説明:

キャリア濃度 N に基づいて、イオン化不純物散乱のパラメータ AT32 を計算します。 複数の項が組み合わされており、キャリア濃度に対する複雑な依存性を示します。

パラメータ:
  • N -- (float) キャリア濃度 (cm^-3)。

  • A3 -- (float) イオン化不純物散乱の第1項パラメータ。

  • B3 -- (float) イオン化不純物散乱の濃度依存性パラメータ。

  • C3 -- (float) イオン化不純物散乱の第2項振幅パラメータ。

  • D3 -- (float) イオン化不純物散乱の第2項濃度依存性パラメータ。

  • F3 -- (float) イオン化不純物散乱のオフセットパラメータ。

  • logN03 -- (float) イオン化不純物散乱のキャリア濃度基準値の常用対数。

戻り値:

(float) 計算されたイオン化不純物散乱のパラメータ AT32

electrical.mu_TN_Fit.Aop(N, Eop_0, A1, B1, C1, logN01)[ソース]

光学フォノン散乱に関連するパラメータ (Eop_0, Aop) を計算します。

詳細説明:

キャリア濃度 N に基づいて、光学フォノン散乱のパラメータである Eop_0Aop を計算します。 Aop はフェルミ分布関数に似た形でキャリア濃度に依存します。

パラメータ:
  • N -- (float) キャリア濃度 (cm^-3)。

  • Eop_0 -- (float) 光学フォノン散乱のエネルギーパラメータ。

  • A1 -- (float) 光学フォノン散乱の振幅パラメータ。

  • B1 -- (float) 光学フォノン散乱の濃度依存性パラメータ。

  • C1 -- (float) 光学フォノン散乱のオフセットパラメータ。

  • logN01 -- (float) 光学フォノン散乱のキャリア濃度基準値の常用対数。

戻り値:

(tuple[float, float]) (Eop_0, Aop) のタプル。Eop_0 はそのまま、Aop は計算された値。

electrical.mu_TN_Fit.Aop1(N, Eop_0, A1, B1, C1, logN01)[ソース]

光学フォノン散乱のパラメータ Aop を計算します(Eop_0 を含まない)。

詳細説明:

キャリア濃度 N に基づいて、光学フォノン散乱のパラメータ Aop を計算します。 Aop はフェルミ分布関数に似た形でキャリア濃度に依存します。 Aop 関数と異なり、Eop_0 は返しません。

パラメータ:
  • N -- (float) キャリア濃度 (cm^-3)。

  • Eop_0 -- (float) (未使用) 光学フォノン散乱のエネルギーパラメータ。

  • A1 -- (float) 光学フォノン散乱の振幅パラメータ。

  • B1 -- (float) 光学フォノン散乱の濃度依存性パラメータ。

  • C1 -- (float) 光学フォノン散乱のオフセットパラメータ。

  • logN01 -- (float) 光学フォノン散乱のキャリア濃度基準値の常用対数。

戻り値:

(float) 計算された光学フォノン散乱のパラメータ Aop

electrical.mu_TN_Fit.VB(N, A6, B6, C6, D6, logN06)[ソース]

障壁散乱(またはキャリア濃度依存の有効質量)に関連するパラメータ VB を計算します。

詳細説明:

キャリア濃度 N に基づいて、障壁散乱のパラメータ VB を計算します。 これはキャリア濃度の対数に線形に依存する項を含む関数として表現されます。

パラメータ:
  • N -- (float) キャリア濃度 (cm^-3)。

  • A6 -- (float) 障壁散乱の振幅パラメータ。

  • B6 -- (float) 障壁散乱の濃度依存性パラメータ。

  • C6 -- (float) 障壁散乱のオフセットパラメータ。

  • D6 -- (float) 障壁散乱の対数濃度依存性パラメータ。

  • logN06 -- (float) 障壁散乱のキャリア濃度基準値の常用対数。

戻り値:

(float) 計算された障壁散乱のパラメータ VB

electrical.mu_TN_Fit.cal_mu_from_TN(x_list, pk)[ソース]

温度とキャリア濃度からホール移動度を計算します。

詳細説明:

温度 T とキャリア濃度 N、および全フィッティングパラメータ pk を使用して、 各散乱メカニズム(光学フォノン、音響フォノン、イオン化不純物、障壁)によるパラメータを計算し、 それらを用いて最終的なホール移動度を算出します。

パラメータ:
  • x_list -- (list[float, float]) 温度 T とキャリア濃度 N を含むリスト。

  • pk -- (list[float]) 全フィッティングパラメータのリスト。

戻り値:

(float) 計算されたホール移動度 mu

electrical.mu_TN_Fit.cal_mu_from_params(T, _Eop, _Aop, _AT0, _AT32, _VB)[ソース]

各散乱パラメータからホール移動度を計算します。

詳細説明:

温度 T と各散乱メカニズムのパラメータ(_Eop, _Aop, _AT0, _AT32, _VB)を 用いて、ホール移動度 mu を計算します。 各散乱メカニズムによる移動度の逆数を合計し、それに温度依存の係数を乗じます。

パラメータ:
  • T -- (float) 温度 (K)。

  • _Eop -- (float) 光学フォノン散乱のエネルギーパラメータ。

  • _Aop -- (float) 光学フォノン散乱の振幅パラメータ。

  • _AT0 -- (float) 音響フォノン散乱のパラメータ。

  • _AT32 -- (float) イオン化不純物散乱のパラメータ。

  • _VB -- (float) 障壁散乱のパラメータ。

戻り値:

(float) 計算されたホール移動度 mu

electrical.mu_TN_Fit.cal_mulist(pk, T=None)[ソース]

温度のリストに対してホール移動度のリストを計算します。

詳細説明:

与えられたパラメータ pk と温度リスト T を使用して、 各温度におけるホール移動度を cal_mu_from_params 関数を呼び出して計算し、 そのリストを返します。

パラメータ:
  • pk -- (list[float]) 全散乱パラメータのリスト。

  • T -- (list[float] | None) 温度のリスト (K)。デフォルトは slef.T

戻り値:

(list[float]) 各温度に対応するホール移動度のリスト。

electrical.mu_TN_Fit.fit_mu_T(app, fit=None)[ソース]

特定のサンプルの温度依存ホール移動度データに対する最小二乗フィッティングを実行します。

詳細説明:

Excelファイルからデータを読み込み、特定のサンプルについて温度 T とホール移動度 mu のデータを抽出します。 その際、基準温度 Tbase におけるキャリア濃度 Nbase を補間し、この Nbase を用いて 各散乱メカニズムのパラメータを固定値またはフィッティング対象として、温度依存性のホール移動度をフィッティングします。 結果はグラフ表示され、Excelファイルとパラメータファイルに保存されます。

パラメータ:
  • app -- (tkApplication) アプリケーションオブジェクト。

  • fit -- (tkFit | None) フィッティング処理を行う tkFit オブジェクト。デフォルトは None

戻り値:

None

electrical.mu_TN_Fit.fit_mu_TN(app, fit)[ソース]

温度とキャリア濃度依存のホール移動度データに対する最小二乗フィッティングを実行します。

詳細説明:

Excelファイルから温度 T、キャリア濃度 N、ホール移動度 mu のデータを読み込み、 複数の散乱モデルを含む複合関数 cal_mu_from_TN を用いて、非線形最小二乗法でフィッティングを行います。 フィッティング結果はグラフ表示され、Excelファイルとパラメータファイルに保存されます。 また、指定された温度でキャリア濃度を固定するオプションもサポートします。

パラメータ:
  • app -- (tkApplication) アプリケーションオブジェクト。

  • fit -- (tkFit_m) フィッティング処理を行う tkFit_m オブジェクト。

戻り値:

None

electrical.mu_TN_Fit.fit_parameters(app, fit=None)[ソース]

単一の散乱モデルパラメータに対する最小二乗フィッティングを実行します。

詳細説明:

ユーザーが指定したターゲット(例: Aop, A_T0, A_T32, VB)に基づいて、 ExcelファイルからXYデータを読み込み、対応する単一の散乱モデル関数を用いて 非線形最小二乗法でフィッティングを行います。 フィッティング結果はグラフ表示され、Excelファイルとパラメータファイルに保存されます。

パラメータ:
  • app -- (tkApplication) アプリケーションオブジェクト。

  • fit -- (tkFit | None) フィッティング処理を行う tkFit オブジェクト。デフォルトは None

戻り値:

None

electrical.mu_TN_Fit.initialize()[ソース]

アプリケーションとパラメータを初期化します。

詳細説明:

tkApplicationとtkParamsのインスタンスを作成し、アプリケーション全体のデフォルト設定や フィッティングパラメータの初期値を設定します。 主に、モード、ターゲット、入力ファイル、データカラム、温度範囲、 最適化アルゴリズム、フィッティングパラメータの初期値などを設定します。

戻り値:

tuple[tkApplication, tkParams]: 初期化されたアプリケーションオブジェクトと共通パラメータオブジェクトのタプル。

electrical.mu_TN_Fit.main()[ソース]

スクリプトのメインエントリポイントです。

詳細説明:

アプリケーションと共通パラメータを初期化し、コマンドライン引数でパラメータを更新します。 ログファイルの準備と既存パラメータファイルの読み込みを行った後、 cparams.modecparams.target に応じて適切なフィッティング関数を呼び出します。 サポートされるモードは 'init', 'fit', 'sim' で、'fit' モードではさらに 'mu_T', 'mu_TN', 'mu_T_Nfix', 'Aop', 'A_T0', 'A_T32', 'VB' のターゲットが選択可能です。

戻り値:

None

electrical.mu_TN_Fit.pk2params(*pk)[ソース]

全パラメータリストを個別の散乱モデルパラメータ群に分割します。

詳細説明:

結合されたパラメータリスト pk を、光学フォノン散乱 (Aop_params)、 音響フォノン散乱 (AT0_params)、イオン化不純物散乱 (AT32_params)、 障壁散乱 (VB_params) の各モデルに対応する部分リストに分割します。

パラメータ:

*pk --

(float) 可変長引数として渡される全フィッティングパラメータ。

戻り値:

(tuple[list[float], list[float], list[float], list[float]]) 各散乱モデルのパラメータリストを含むタプル。

electrical.mu_TN_Fit.update_vars(app, cparams)[ソース]

コマンドライン引数に基づいてパラメータを更新します。

詳細説明:

スクリプト起動時に指定されたコマンドライン引数を解析し、 共通パラメータ cparams の各値を上書きします。 引数が指定されていない場合は、現在の cparams の値が維持されます。

パラメータ:
  • app -- (tkApplication) アプリケーションオブジェクト。

  • cparams -- (tkParams) 更新対象の共通パラメータオブジェクト。

戻り値:

None

electrical.mu_TN_Fit.usage(app)[ソース]

スクリプトの使用方法を標準出力に表示します。

詳細説明:

app オブジェクトに格納されている使用方法文字列を整形して表示します。

パラメータ:

app -- (tkApplication) アプリケーションオブジェクト。

戻り値:

None