tkTransport プログラム仕様

輸送現象計算モジュール

このモジュールは、フェルミ積分、キャリア統計、ホール効果、磁気抵抗など、半導体や金属における輸送現象に関連する様々な計算機能を提供します。 積分関数、フェルミ・ディラック分布関数、状態密度、移動度モデル、ホール係数計算、磁気抵抗計算などが含まれます。 また、外部ファイルからのデータ読み込み・書き込み機能も提供します。

関連リンク: tkTransport.py 技術ドキュメント

tklib.tktransport.tkTransport.BMShift_FEA(Ne, D0)[ソース]

ボルツマンシフト (フェルミ準位) を計算します。

自由電子近似モデルに基づき、電子数密度 Ne と状態密度係数 D0 からフェルミ準位を計算します。 この関数は、グローバル変数 D0 に依存しますが、このモジュール内では定義されていません。

パラメータ:
  • Ne (float) -- 電子数密度。

  • D0 (float) -- 状態密度係数。

戻り値:

計算されたフェルミ準位 (eV)。

戻り値の型:

float

tklib.tktransport.tkTransport.CalEF_metal(N, T, EF0, dE)[ソース]

金属におけるフェルミ準位を計算します。

与えられた電子数密度 N、温度 T、初期フェルミ準位の推定値 EF0 を基に、数値的にフェルミ準位を求めます。 \(T=0\) の場合は、単純な自由電子モデルによる近似式を使用します。 この関数は、optimize.newton およびグローバル変数 D0、関数 Ne に依存しますが、これらはこのモジュール内では定義されていません。

パラメータ:
  • N (float) -- 電子数密度。

  • T (float) -- 温度 (K)。

  • EF0 (float) -- フェルミ準位の初期推定値 (eV)。

  • dE (float) -- 積分範囲に関するパラメーター (詳細不明、恐らくフェルミ準位周辺の積分幅)。

戻り値:

計算されたフェルミ準位 (eV)。

戻り値の型:

float

tklib.tktransport.tkTransport.CalNe_metal(T, EF)[ソース]

金属における電子数密度を計算し、様々な積分方法で検証します。

与えられた温度 T とフェルミ準位 EF を基に、電子数密度を計算し、その結果を scipy.integrate.quad および scipy.integrate.romberg の両方で検証します。 また、異なる積分範囲での結果も比較表示します。 この関数は、グローバル変数 D0、関数 DeDefeepsncyclemaxorder に依存しますが、これらはこのモジュール内では定義されていません。

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

  • EF (float) -- フェルミ準位 (eV)。

戻り値:

(この関数は直接値を返さず、計算結果を標準出力に表示します。)

戻り値の型:

None

tklib.tktransport.tkTransport.CalPlasmaFrequency(Ne, meff)[ソース]

プラズマ周波数を計算します。

与えられたキャリア密度 Ne と有効質量 meff から、プラズマ周波数を計算します。 この関数は、グローバル変数 e0 に依存しますが、このモジュール内では定義されていません。

パラメータ:
  • Ne (float) -- キャリア密度。

  • meff (float) -- 有効質量 (自由電子質量 \(m_e\) の倍数)。

戻り値:

プラズマ周波数 (Hz)。

戻り値の型:

float

tklib.tktransport.tkTransport.DC02meff_FEA(DC0, T)[ソース]

状態密度係数から有効質量を計算します。

自由電子近似に基づき、状態密度係数 \(D_C0\) から有効質量 \(m_{eff}\) を計算します。 結果は自由電子質量 \(m_e\) の倍数で返されます。

パラメータ:
  • DC0 (float) -- 状態密度係数 (\(cm^{-3}eV^{-1.5}\) 単位)。

  • T (float) -- 温度 (K)。

戻り値:

有効質量 (自由電子質量 \(m_e\) の倍数)。

戻り値の型:

float

tklib.tktransport.tkTransport.DegenerateFD_z = (0.822467, 0.947033, 0.985551, 0.996233, 0.99904, 0.999758, 0.999939, 0.999985, 0.999996, 0.999999)

縮退フェルミ・ディラック積分で使用される係数群。 Sommerfeld展開に現れる項の係数に対応します。

tklib.tktransport.tkTransport.DegenerateFermiDirac(eta, r, eps=1e-07)[ソース]

縮退フェルミ・ディラック積分を計算します。

フェルミ準位が大きく正の値 (縮退状態) である場合に適用される近似式を用いて、フェルミ積分を計算します。 Sommerfeld展開に基づいた多項式近似を使用します。

パラメータ:
  • eta (float) -- 換算フェルミ準位 \(\eta = E_F / k_B T\)

  • r (float) -- フェルミ積分を定義する指数。

  • eps (float, optional) -- 精度に関するパラメーター (この関数内では直接使用されていない)。

戻り値:

縮退フェルミ・ディラック積分の値。

戻り値の型:

float

tklib.tktransport.tkTransport.DiffFermiDiracDistribution(w, w0, x)[ソース]

フェルミ・ディラック分布関数の微分を計算します。

詳細説明:

引数 x0 が定義されていないため、この関数は実行時にエラーを発生させます。 もし x0w0 のタイプミスである場合、修正が必要です。 現状のコードは変更しないというルールに従い、x0 の記述はそのまま残します。

パラメータ:
  • w (float) -- 幅のパラメーター。

  • w0 (float) -- 位置のパラメーター。

  • x (float) -- 独立変数。

戻り値:

フェルミ・ディラック分布関数の微分の値。

戻り値の型:

float

tklib.tktransport.tkTransport.FermiIntegral_Simpson(eta, r, dx=0.01, eps=1e-07)[ソース]

シンプソン法を用いてフェルミ積分を計算します。

scipy.integrate.simps を用いて、フェルミ積分の数値積分を行います。 非縮退極限 (\(\eta < -13.0\)) では、ガンマ関数を用いた近似式を使用します。 それ以外の領域では、定義された刻み幅 dx と推定された積分範囲 xmax に基づいて積分を実行します。 コメントアウトされている箇所には、リーマン、台形、シンプソン、ボーデの各数値積分法のコード例が含まれています。

パラメータ:
  • eta (float) -- 換算フェルミ準位 \(\eta = E_F / k_B T\)

  • r (float) -- フェルミ積分を定義する指数。

  • dx (float, optional) -- 積分に使用する刻み幅。

  • eps (float, optional) -- 積分精度を決定する小さな値。積分範囲の推定に利用されます。

戻り値:

シンプソン法によるフェルミ積分の値。

戻り値の型:

float

tklib.tktransport.tkTransport.FermiIntegral_fast(eta, r, eps=1e-07)[ソース]

フェルミ積分を高速に計算するための統合関数です。

換算フェルミ準位 eta の値に応じて、縮退近似、非縮退近似、または数値積分 (関数 func_Fr_x2 を使用) を切り替えます。 中間的な eta の範囲では、数値積分を複数の区間に分割して scipy.integrate.quad で計算し、精度と速度を両立させます。

パラメータ:
  • eta (float) -- 換算フェルミ準位 \(\eta = E_F / k_B T\)

  • r (float) -- フェルミ積分を定義する指数。

  • eps (float, optional) -- 積分精度を決定する小さな値 (この関数内では直接使用されていない)。

戻り値:

フェルミ積分の値。

戻り値の型:

float

tklib.tktransport.tkTransport.FermiIntegral_simple(eta, r, eps=1e-07)[ソース]

scipy.integrate.quad を使用してフェルミ積分を直接計算します。

非縮退極限 (\(\eta < -13.0\)) では、ガンマ関数を用いた近似式を使用します。 それ以外の領域では、scipy.integrate.quad を用いて数値積分を実行します。

パラメータ:
  • eta (float) -- 換算フェルミ準位 \(\eta = E_F / k_B T\)

  • r (float) -- フェルミ積分を定義する指数。

  • eps (float, optional) -- 積分精度を決定する小さな値。積分範囲の推定に利用されます。

戻り値:

フェルミ積分の値。

戻り値の型:

float

tklib.tktransport.tkTransport.FermiIntegral_x2(eta, r, eps=1e-07)[ソース]

変数変換 \(z=x^2\) を使用してフェルミ積分を高速に計算します。

非縮退極限 (\(\eta < -13.0\)) では、ガンマ関数を用いた近似式を使用します。 それ以外の領域では、scipy.integrate.quad を用いて数値積分を実行しますが、func_Fr_x2 を使用することで積分範囲を短縮し、計算を高速化します。

パラメータ:
  • eta (float) -- 換算フェルミ準位 \(\eta = E_F / k_B T\)

  • r (float) -- フェルミ積分を定義する指数。

  • eps (float, optional) -- 積分精度を決定する小さな値。積分範囲の推定に利用されます。

戻り値:

フェルミ積分の値。

戻り値の型:

float

tklib.tktransport.tkTransport.LorentzNumber_FEA = 2.4430045090736663e-08

フェルミ・エイゼンシュタインモデルにおけるローレンツ数 自由電子模型における理想的な金属の熱伝導度と電気伝導度の比率を表す定数。 単位は W ohm / K^2。

tklib.tktransport.tkTransport.MR(model, nh, muh, ne, mue, B)[ソース]

指定されたモデルに基づいて磁気抵抗とホール効果を計算する汎用関数です。

model 引数の値に応じて、単一キャリアモデル、二種類キャリアモデル、 または移動度が同じ二種類キャリアモデルのいずれかの関数を呼び出します。

パラメータ:
  • model (str) -- 計算モデルを指定する文字列 ('two', 'single', 'same_mu')。

  • nh (float) -- 正孔のキャリア密度 (単一キャリアモデルの場合は使用されない)。

  • muh (float) -- 正孔の移動度 (単一キャリアモデルの場合は全体のキャリア移動度として使用)。

  • ne (float) -- 電子のキャリア密度 (単一キャリアモデルの場合は使用されない)。

  • mue (float) -- 電子の移動度 (単一キャリアモデルの場合は使用されない)。

  • B (float) -- 磁場の強さ (T)。

戻り値:

選択されたモデルの磁気抵抗計算関数からの戻り値 (rhoxx, rhoxx0, MRxx, MRxy)。

戻り値の型:

tuple[float, float, float, float]

tklib.tktransport.tkTransport.MR_samemu(nh, mu, ne, B)[ソース]

二種類のキャリアが存在し、両方のキャリア移動度が同じである場合の磁気抵抗とホール効果を計算します。

この関数は、MR_twocarrier 関数に muhmue を同じ値 (mu) として渡すラッパー関数です。

パラメータ:
  • nh (float) -- 正孔のキャリア密度。

  • mu (float) -- 正孔と電子の両方のキャリア移動度。

  • ne (float) -- 電子のキャリア密度。

  • B (float) -- 磁場の強さ (T)。

戻り値:

MR_twocarrier 関数からの戻り値と同じく、タプル (rhoxx, rhoxx0, MRxx, MRxy) - rhoxx (float): 磁場中の比抵抗 (\(\rho_{xx}(B)\))。 - rhoxx0 (float): 磁場ゼロでの比抵抗 (\(\rho_{xx}(0)\)、すなわち \(\rho_0\))。 - MRxx (float): 磁気抵抗 (\(\rho_{xx}(B) - \rho_{xx}(0)\))。 - MRxy (float): ホール比抵抗 (\(\rho_{xy}(B)\))。

戻り値の型:

tuple[float, float, float, float]

tklib.tktransport.tkTransport.MR_singlecarrier(n, mu, B)[ソース]

単一キャリアが存在する系の磁気抵抗とホール効果を計算します。

キャリア密度 n、移動度 mu、および磁場 B を用いて、 比抵抗の変化 (\(\rho_{xx}\)\(\rho_{xx0}\))、磁気抵抗 (\(MR_{xx}\))、およびホール比抵抗 (\(MR_{xy}\)) を計算します。

パラメータ:
  • n (float) -- キャリア密度。

  • mu (float) -- キャリアの移動度。

  • B (float) -- 磁場の強さ (T)。

戻り値:

タプル (rhoxx, rhoxx0, MRxx, MRxy) - rhoxx (float): 磁場中の比抵抗 (\(\rho_{xx}(B)\))。 - rhoxx0 (float): 磁場ゼロでの比抵抗 (\(\rho_{xx}(0)\)、すなわち \(\rho_0\))。 - MRxx (float): 磁気抵抗 (\(\rho_{xx}(B) - \rho_{xx}(0)\))。 - MRxy (float): ホール比抵抗 (\(\rho_{xy}(B)\))。

戻り値の型:

tuple[float, float, float, float]

tklib.tktransport.tkTransport.MR_twocarrier(nh, muh, ne, mue, B)[ソース]

二種類のキャリアが存在する系の磁気抵抗とホール効果を計算します。

正孔のキャリア密度 nh と移動度 muh、電子のキャリア密度 ne と移動度 mue、および磁場 B を用いて、 比抵抗の変化 (\(\rho_{xx}\)\(\rho_{xx0}\))、磁気抵抗 (\(MR_{xx}\))、およびホール比抵抗 (\(MR_{xy}\)) を計算します。

パラメータ:
  • nh (float) -- 正孔のキャリア密度。

  • muh (float) -- 正孔の移動度。

  • ne (float) -- 電子のキャリア密度。

  • mue (float) -- 電子の移動度。

  • B (float) -- 磁場の強さ (T)。

戻り値:

タプル (rhoxx, rhoxx0, MRxx, MRxy) - rhoxx (float): 磁場中の比抵抗 (\(\rho_{xx}(B)\))。 - rhoxx0 (float): 磁場ゼロでの比抵抗 (\(\rho_{xx}(0)\)、すなわち \(\rho_0\))。 - MRxx (float): 磁気抵抗 (\(\rho_{xx}(B) - \rho_{xx}(0)\))。 - MRxy (float): ホール比抵抗 (\(\rho_{xy}(B)\))。

戻り値の型:

tuple[float, float, float, float]

tklib.tktransport.tkTransport.NC2meff_FEA(NC, T)[ソース]

実効状態密度から有効質量を計算します。

自由電子近似に基づき、与えられた実効状態密度 \(N_C\) と温度 \(T\) から有効質量を計算します。 結果は自由電子質量 \(m_e\) の倍数で返されます。

パラメータ:
  • NC (float) -- 実効状態密度 (\(cm^{-3}\) 単位)。

  • T (float) -- 温度 (K)。

戻り値:

有効質量 (自由電子質量 \(m_e\) の倍数)。

戻り値の型:

float

tklib.tktransport.tkTransport.NonDegenerateFermiDirac(eta, r, eps=1e-07)[ソース]

非縮退フェルミ・ディラック積分を計算します。

フェルミ準位が大きく負の値 (非縮退状態) である場合に適用される近似式を用いて、フェルミ積分を計算します。 この近似は、フェルミ・ディラック分布関数をボルツマン分布で近似することで導出されます。

パラメータ:
  • eta (float) -- 換算フェルミ準位 \(\eta = E_F / k_B T\)

  • r (float) -- フェルミ積分を定義する指数。

  • eps (float, optional) -- 精度に関するパラメーター (この関数内では gg の収束判定に使用)。

戻り値:

非縮退フェルミ・ディラック積分の値。

戻り値の型:

float

tklib.tktransport.tkTransport.RichardsonDushman_FEA(meff=1.0)[ソース]

リチャードソン・ダッシュマン定数を計算します。

自由電子近似に基づき、熱電子放出におけるリチャードソン・ダッシュマン定数を計算します。 有効質量 meff を自由電子質量 me で割った比率として考慮し、実効リチャードソン定数を導出します。

パラメータ:

meff (float, optional) -- 有効質量 (自由電子質量 \(m_e\) の倍数)。デフォルトは1.0。

戻り値:

実効リチャードソン・ダッシュマン定数。

戻り値の型:

float

tklib.tktransport.tkTransport.cal_statistics(self, T)[ソース]

半導体におけるキャリア統計量を計算します。

与えられた温度 T に対し、二分法を用いてフェルミ準位 EF を求めます。 この EF に基づいて、電子密度 Neh、正孔密度 Nhh、イオン化アクセプタ密度 NAmh、イオン化ドナー密度 NDph を計算します。 最後に、二種類キャリアモデルでの比抵抗、ホール係数、ホールキャリア密度を計算します。 この関数は、self および mat オブジェクトに依存するメソッドおよびプロパティを使用しますが、これらはこのモジュール内では定義されていません。

パラメータ:
  • self (object) -- クラスインスタンス。Ev, Ec, Ne, NAm, Nh, NDp, mue, muh などのメソッドやプロパティを持つ必要があります。

  • T (float) -- 温度 (K)。

戻り値:

タプル (EFhalf, Neh, Nhh, NDph, NAmh, Ns) - EFhalf (float): 計算されたフェルミ準位 (eV)。 - Neh (float): 電子のキャリア密度。 - Nhh (float): 正孔のキャリア密度。 - NDph (float): イオン化ドナー密度。 - NAmh (float): イオン化アクセプタ密度。 - Ns (float): ホールキャリア密度。

戻り値の型:

tuple[float, float, float, float, float, float] または (None, None, ...) (エラー時)

tklib.tktransport.tkTransport.cal_transport(self, T)[ソース]

半導体における輸送特性を計算します。

与えられた温度 T に対し、cal_statistics を呼び出してフェルミ準位とキャリア統計量を計算します。 その後、クラスメソッド cal_muhcal_mue を用いて正孔と電子の移動度を計算し、電気伝導率 sigma を導出します。 この関数は、self オブジェクトに依存するメソッドを使用しますが、これらはこのモジュール内では定義されていません。

パラメータ:
  • self (object) -- クラスインスタンス。cal_statistics, cal_muh, cal_mue などのメソッドを持つ必要があります。

  • T (float) -- 温度 (K)。

戻り値:

タプル (EF, Ne, Nh, NDph, NAm, Ns, mue, muh, sigma) - EF (float): フェルミ準位 (eV)。 - Ne (float): 電子のキャリア密度。 - Nh (float): 正孔のキャリア密度。 - NDph (float): イオン化ドナー密度。 - NAm (float): イオン化アクセプタ密度。 - Ns (float): ホールキャリア密度。 - mue (float): 電子の移動度。 - muh (float): 正孔の移動度。 - sigma (float): 電気伝導率。

戻り値の型:

tuple[float, float, float, float, float, float, float, float, float]

tklib.tktransport.tkTransport.cal_twocarriers(mue, ne, muh, nh)[ソース]

二種類のキャリア (電子と正孔) が存在する系の輸送パラメーターを計算します。

電子の移動度 mue とキャリア密度 ne、正孔の移動度 muh とキャリア密度 nh を用いて、 比抵抗 (rhoxx) およびホール係数 (RH) を計算します。 この関数はホールキャリア密度 Ns も計算しますが、その定義は 1.0 / RH / e です。

パラメータ:
  • mue (float) -- 電子の移動度。

  • ne (float) -- 電子のキャリア密度。

  • muh (float) -- 正孔の移動度。

  • nh (float) -- 正孔のキャリア密度。

戻り値:

タプル (rhoxx, RH, Ns) - rhoxx (float): 比抵抗 (\(\rho_{xx}\))。 - RH (float): ホール係数 (\(R_H\))。 - Ns (float): ホールキャリア密度 (\(1 / (R_H \cdot e)\))。

戻り値の型:

tuple[float, float, float]

tklib.tktransport.tkTransport.fe(E, T, EF)[ソース]

フェルミ・ディラック分布関数 (電子用) を計算します。

エネルギー \(E\) における電子の占有確率をフェルミ・ディラック分布関数に従って計算します。 \(T=0\) の場合はステップ関数として動作します。 数値的な安定性を確保するため、指数関数がオーバーフローまたはアンダーフローする可能性のある大きな値に対しては、直接0または1を返します。

パラメータ:
  • E (float) -- エネルギー (eV)。

  • T (float) -- 温度 (K)。

  • EF (float) -- フェルミ準位 (eV)。

戻り値:

フェルミ・ディラック分布関数の値。

戻り値の型:

float

tklib.tktransport.tkTransport.fh(E, T, EF)[ソース]

フェルミ・ディラック分布関数 (正孔用) を計算します。

エネルギー \(E\) における正孔の占有確率をフェルミ・ディラック分布関数に従って計算します。 これは電子のフェルミ・ディラック分布関数 \(f_e\)\(1 - f_e\) に相当します。 \(T=0\) の場合はステップ関数として動作します。 数値的な安定性を確保するため、指数関数がオーバーフローまたはアンダーフローする可能性のある大きな値に対しては、直接0または1を返します。

パラメータ:
  • E (float) -- エネルギー (eV)。

  • T (float) -- 温度 (K)。

  • EF (float) -- フェルミ準位 (eV)。

戻り値:

正孔のフェルミ・ディラック分布関数の値。

戻り値の型:

float

tklib.tktransport.tkTransport.func_Fr(x, eta, r)[ソース]

標準的なフェルミ積分 \(F_r(\eta)\) の被積分関数を定義します。

被積分関数は \(x^r / (exp(x - \eta) + 1)\) の形を取ります。 数値的な安定性を確保するため、x が大きいまたは小さい値のときに、指数関数のオーバーフロー/アンダーフローを避けるために適切な値を返します。

パラメータ:
  • x (float) -- 積分変数。

  • eta (float) -- 換算フェルミ準位 \(\eta = E_F / k_B T\)

  • r (float) -- フェルミ積分を定義する指数。

戻り値:

被積分関数の値。

戻り値の型:

float

tklib.tktransport.tkTransport.func_Fr_x2(x, eta, r)[ソース]

変数変換 \(z=x^2\) を行った場合のフェルミ積分被積分関数を定義します。

この関数は、積分範囲を短縮し高速化するために、変数変換後の被積分関数 \(2x^{2r+1} / (exp(x^2 - \eta) + 1)\) を計算します。 数値的な安定性を確保するため、x が大きいまたは小さい値のときに、指数関数のオーバーフロー/アンダーフローを避けるために適切な値を返します。

パラメータ:
  • x (float) -- 変換後の積分変数。

  • eta (float) -- 換算フェルミ準位 \(\eta = E_F / k_B T\)

  • r (float) -- フェルミ積分を定義する指数。

戻り値:

変数変換後の被積分関数の値。

戻り値の型:

float

tklib.tktransport.tkTransport.integrate_Simpson(func, E0, E1, h, nmin=8)[ソース]

シンプソン法による定積分を計算します。

与えられた関数と積分範囲、刻み幅を用いて、シンプソン法(台形公式の改良版)で定積分の近似値を計算します。 積分範囲が0の場合は0を返します。

パラメータ:
  • func (callable) -- 積分する関数。引数を1つ取る関数である必要があります。

  • E0 (float) -- 積分範囲の開始点。

  • E1 (float) -- 積分範囲の終了点。

  • h (float) -- 刻み幅。

  • nmin (int, optional) -- 分割数の最小値。

戻り値:

シンプソン法による定積分の近似値。

戻り値の型:

float

tklib.tktransport.tkTransport.integrate_Simpson_list(xlist, ylist)[ソース]

データリストからシンプソン法による累積積分を計算します。

与えられた離散データ点 (xlist, ylist) を用いて、シンプソン法(台形公式の改良版)で累積積分の近似値を計算します。

パラメータ:
  • xlist (list[float]) -- \(x\) 座標のリスト。昇順である必要があります。

  • ylist (list[float]) -- \(y\) 座標のリスト。xlist と同じ長さである必要があります。

戻り値:

各点までの累積積分値のリスト。

戻り値の型:

list[float]

tklib.tktransport.tkTransport.main()[ソース]

モジュールが直接実行された場合に呼び出されるメイン関数。

このモジュールがライブラリとして使用されることを示し、実行可能ではないことをユーザーに通知します。

戻り値:

None

戻り値の型:

None

tklib.tktransport.tkTransport.meff2DC0_FEA(meff, T)[ソース]

有効質量から状態密度係数 (\(D_C0\)) を計算します。

自由電子近似に基づき、有効質量 \(m_{eff}\) から状態密度のエネルギー依存性 \(D(E) = D_C0 \cdot E^{0.5}\) における係数 \(D_C0\) を計算します。 結果は \(cm^{-3}eV^{-1.5}\) 単位で返されます。

パラメータ:
  • meff (float) -- 有効質量 (自由電子質量 \(m_e\) の倍数)。

  • T (float) -- 温度 (K)。

戻り値:

状態密度係数 (\(cm^{-3}eV^{-1.5}\) 単位)。

戻り値の型:

float

tklib.tktransport.tkTransport.meff2NC_FEA(meff, T)[ソース]

有効質量から実効状態密度 (Effective Density of States, \(N_C\)) を計算します。

自由電子近似に基づき、与えられた有効質量 \(m_{eff}\) と温度 \(T\) から伝導帯または価電子帯の実効状態密度を計算します。 結果は \(cm^{-3}\) 単位で返されます。

パラメータ:
  • meff (float) -- 有効質量 (自由電子質量 \(m_e\) の倍数)。

  • T (float) -- 温度 (K)。

戻り値:

実効状態密度 (\(cm^{-3}\) 単位)。

戻り値の型:

float

tklib.tktransport.tkTransport.read_Hall_excel(infile)[ソース]

Excelファイルからホール効果測定データを読み込みます。

指定されたExcelファイルを開き、最初のシートから温度 (T)、キャリア密度 (N)、移動度 (mu)、電気伝導率 (sigma) のデータを抽出します。 1行目をヘッダーとして解釈し、2行目以降の数値を読み込みます。

パラメータ:

infile (str) -- 読み込むExcelファイルのパス。

戻り値:

タプル ([Tlabel, Nlabel, mulabel, slabel], xT, yN, ymu, ys) - [Tlabel, Nlabel, mulabel, slabel] (list[str]): 各データのヘッダーラベルのリスト。 - xT (list[float]): 温度データのリスト。 - yN (list[float]): キャリア密度データのリスト。 - ymu (list[float]): 移動度データのリスト。 - ys (list[float]): 電気伝導率データのリスト。

戻り値の型:

tuple[list[str], list[float], list[float], list[float], list[float]]

tklib.tktransport.tkTransport.read_csv(infile, xmin=None, xmax=None, delimiter=',')[ソース]

CSVファイルからデータを読み込みます。

指定されたCSVファイルを読み込み、ヘッダーと最初の2列のデータを抽出します。 xminxmax が指定されている場合、1列目の値がその範囲内にある行のみを読み込みます。 この関数は pfloat 関数に依存しますが、これはこのモジュール内では定義されていません。

パラメータ:
  • infile (str) -- 読み込むCSVファイルのパス。

  • xmin (float, optional) -- 1列目の値の最小範囲。Noneの場合、最小値によるフィルタリングは行われません。

  • xmax (float, optional) -- 1列目の値の最大範囲。Noneの場合、最大値によるフィルタリングは行われません。

  • delimiter (str, optional) -- CSVファイルの区切り文字。

戻り値:

タプル (header, data_col1, data_col2) - header (list[str]): ヘッダー行の文字列リスト。 - data_col1 (list[float]): 1列目のデータのリスト。 - data_col2 (list[float]): 2列目のデータのリスト。

戻り値の型:

tuple[list[str], list[float], list[float]]

tklib.tktransport.tkTransport.read_datafile(infile, usage=None)[ソース]

汎用的なデータファイル (.dat や .txt など) から輸送特性データを読み込みます。

tkVariousData クラスを利用して、ファイルからデータとラベルを抽出し、 特に S (ゼーベック係数), sigma (電気伝導率), N (キャリア密度), mu (移動度) のデータを抽出します。 正規表現を用いてカラムを識別します。

パラメータ:
  • infile (str) -- 読み込むデータファイルのパス。

  • usage (Any, optional) -- tkVariousData に渡される用途指定パラメーター (詳細不明)。

戻り値:

タプル (label_sample, xsample, label_S, yS, label_sigma, ysigma, label_N, yN, label_mu, ymu) - label_sample (str): 汎用データX軸のラベル。 - xsample (list[float]): 汎用データX軸のデータ。 - label_S (str): ゼーベック係数のラベル。 - yS (list[float]): ゼーベック係数のデータ。 - label_sigma (str): 電気伝導率のラベル。 - ysigma (list[float]): 電気伝導率のデータ。 - label_N (str): キャリア密度のラベル。 - yN (list[float]): キャリア密度のデータ。 - label_mu (str): 移動度のラベル。 - ymu (list[float]): 移動度のデータ。

戻り値の型:

tuple[str, list[float], str, list[float], str, list[float], str, list[float], str, list[float]]

tklib.tktransport.tkTransport.read_excel(infile)[ソース]

Excelファイルから汎用データを読み込みます。

指定されたExcelファイルを開き、最初のシートから温度 (T)、キャリア密度 (N)、ゼーベック係数 (S) のデータを抽出します。 1行目をヘッダーとして解釈し、2行目以降の数値を読み込みます。

パラメータ:

infile (str) -- 読み込むExcelファイルのパス。

戻り値:

タプル ([Tlabel, Nlabel], xT, yN, yS) - [Tlabel, Nlabel] (list[str]): 各データのヘッダーラベルのリスト (Slabel は返されない)。 - xT (list[float]): 温度データのリスト。 - yN (list[float]): キャリア密度データのリスト。 - yS (list[float]): ゼーベック係数データのリスト。

戻り値の型:

tuple[list[str], list[float], list[float], list[float]]

tklib.tktransport.tkTransport.rieman(x0, dx, y, xmin, xmax)[ソース]

リーマン和による積分を計算します。

与えられたデータ点と範囲に基づいて、リーマン和を用いて積分の近似値を計算します。

パラメータ:
  • x0 (float) -- \(x\) 軸の始点。

  • dx (float) -- \(x\) 軸の刻み幅。

  • y (list[float]) -- 積分対象の \(y\) 値のリスト。

  • xmin (float) -- 積分範囲の最小値。

  • xmax (float) -- 積分範囲の最大値。

戻り値:

リーマン和による積分の近似値。

戻り値の型:

float

tklib.tktransport.tkTransport.savecsv(outfile, header, datalist)[ソース]

データをCSVファイルに保存します。

与えられたヘッダーとデータのリストを、指定されたファイルパスのCSVファイルに書き込みます。 データのリストは、各要素が1つのデータ列に対応する形式である必要があります。

パラメータ:
  • outfile (str) -- 出力するCSVファイルのパス。

  • header (list[str]) -- CSVのヘッダー行の文字列リスト。

  • datalist (list[list[float]]) -- 各列のデータを含むリストのリスト。例: [[col1_data], [col2_data], ...]

戻り値:

None

戻り値の型:

None