Seebeck_ZT プログラム仕様
- electrical.Seebeck_ZT.Fj(j, xi)[ソース]
概要: フェルミ・ディラック積分 F_j(xi) = ∫_0^∞ x^j / (1+exp(x-xi)) dx を計算します。
詳細説明: SciPyの`quad`関数を使用して数値積分を実行します。結果は`lru_cache`でキャッシュされ、 同じ引数での再計算を回避し、パフォーマンスを向上させます。 この関数は、ガンマ関数による正規化(1/Gamma(j+1))は含まれていません。
- electrical.Seebeck_ZT.Nc_3D(T, m_eff=1.0)[ソース]
概要: 3次元放物線バンドにおける有効状態密度 Nc を計算します。
詳細説明: 以下の公式を用いて有効状態密度を計算します。 Nc = 2 * (2π m* kB T / h^2)^(3/2) ここで、m* は有効質量、kB はボルツマン定数、T は温度、h はプランク定数です。
- electrical.Seebeck_ZT.electron_density_from_xi(xi, T, m_eff=1.0)[ソース]
概要: 還元フェルミ準位 xi から電子濃度 n を計算します。
詳細説明: 電子濃度は以下の式で計算されます。 n [m^-3] = Nc * F_{1/2}^{std}(xi) ここで、Nc は有効状態密度、F^{std}_{1/2}(xi) = Fj(1/2, xi) / Gamma(3/2) は 標準化されたフェルミ・ディラック積分です。
- electrical.Seebeck_ZT.equivalent_l0_from_tau_pref(tau_pref, r, m_eff=1.0)[ソース]
概要: 緩和時間の前因子 tau_pref から等価な平均自由行程 l0 を計算します。
詳細説明: 一部のスライドでの慣例的な定義 tau(E) = sqrt(m*/2) * [ l0(T) * e_chg^(-r) ] * E^(r-1/2) から、l0(T) を逆算します。 したがって、l0(T) = tau_pref * sqrt(2/m*) * e_chg^r となります。
- electrical.Seebeck_ZT.lorenz_from_xi_transport(xi, r)[ソース]
概要: 還元フェルミ準位 xi と散乱因子 r からローレンツ因子 L を計算します。
詳細説明: ローレンツ因子は厳密な輸送積分を用いて以下の式で計算されます。 L = (kB/e)^2 * ( I2/I0 - (I1/I0)^2 )
- electrical.Seebeck_ZT.m0 = 9.1093837015e-31
散乱因子 r は tau(E) ∝ E^(r-1/2) で定義
- electrical.Seebeck_ZT.main()[ソース]
概要: スクリプトの主要な実行フローを定義します。コマンドライン引数を解析し、 熱電輸送特性を計算・プロット・保存します。
詳細説明: 1. argparse モジュールを使用してコマンドライン引数(温度、有効質量、参照移動度、
格子熱伝導率、キャリア種別、還元フェルミ準位の範囲と点数、散乱因子`r`のリスト、 出力ファイル名など)を解析します。
指定されたパラメータに基づいて、各散乱因子 r に対して輸送特性(電子濃度、 ゼーベック係数、ローレンツ因子、電気伝導度、移動度、電子熱伝導度、パワーファクター、ZT因子)を計算します。
計算されたデータは save_results_to_excel 関数を使用してExcelファイルに保存されます。
計算結果は matplotlib を用いてキャリア濃度に対する各特性のグラフとしてプロットされ、表示されます。
- 戻り値:
なし
- 戻り値の型:
None
- electrical.Seebeck_ZT.mobility_from_sigma_n(sigma, n)[ソース]
概要: 電気伝導度 sigma と電子濃度 n から移動度 mu を計算します。
詳細説明: 電気伝導度 sigma、電子濃度 n、素電荷 e、移動度 mu の間に成り立つ関係式 sigma = n * e * mu を用いて移動度を計算します。 したがって、mu = sigma / (n * e) となります。
- electrical.Seebeck_ZT.save_results_to_excel(outfile, meta_rows, data_rows)[ソース]
概要: 計算結果とメタデータをExcelファイルに保存します。
詳細説明: 指定された出力ファイル名で新しいExcelワークブックを作成し、 "metadata"と"transport_vs_Ne"の2つのシートにデータを書き込みます。 "metadata"シートには計算条件などのメタデータが保存され、 "transport_vs_Ne"シートにはキャリア濃度に対する輸送特性の計算結果が保存されます。
- electrical.Seebeck_ZT.seebeck_from_xi_transport(xi, r, carrier='electron')[ソース]
概要: 還元フェルミ準位 xi と散乱因子 r からゼーベック係数 S を計算します。
詳細説明: ゼーベック係数は厳密な輸送積分を用いて以下の式で計算されます。 S = (kB/q) * I1/I0 q はキャリアの種類によって異なり、電子の場合は -e、正孔の場合は +e となります。
- パラメータ:
- 戻り値:
ゼーベック係数 S [V/K]。
- 戻り値の型:
- 例外:
ValueError -- carrier が "electron" または "hole" 以外の場合。
- electrical.Seebeck_ZT.sigma_from_xi_tau_pref(xi, r, T, tau_pref, m_eff=1.0)[ソース]
概要: 還元フェルミ準位 xi、散乱因子 r、温度 T、緩和時間の前因子 tau_pref から 電気伝導度 sigma を計算します。
詳細説明: 電気伝導度は以下の式で計算されます。 sigma = A_sigma * tau_pref * (kB T)^(r + 1.0) * I0 ここで、A_sigma は transport_prefactor_sigma で計算される前因子、 I0 は transport_I0 で計算される輸送積分です。
- electrical.Seebeck_ZT.tau_at_energy(E_J, tau_pref, r)[ソース]
概要: 特定のエネルギー E_J における緩和時間 tau(E_J) を計算します。
詳細説明: 緩和時間は以下の式で定義されます。 tau(E) = tau_pref * E^(r-1/2) E_J が0以下の場合は np.nan を返します。
- electrical.Seebeck_ZT.tau_pref_from_mu_ref(mu_ref_cm2_Vs, xi_ref, r, T, m_eff=1.0)[ソース]
概要: 参照移動度 mu_ref と参照還元フェルミ準位 xi_ref に基づいて、 緩和時間の前因子 tau_pref を決定します。
詳細説明: 緩和時間 tau(E) が tau(E) = tau_pref * E^(r-1/2) で定義されるとき、 指定された xi_ref と T における移動度が mu_ref となるように tau_pref を逆算します。 参照移動度 mu_ref_cm2_Vs は cm^2/V/s 単位で与えられますが、計算ではSI単位に変換されます。
- electrical.Seebeck_ZT.transport_I0(xi, r)[ソース]
概要: 輸送積分 I0 を計算します。
詳細説明: tau(E) ∝ E^(r-1/2) の緩和時間に対する輸送積分の一つである I0 を計算します。 I0 = (r + 1) * F_r(xi)
- electrical.Seebeck_ZT.transport_I1(xi, r)[ソース]
概要: 輸送積分 I1 を計算します。
詳細説明: tau(E) ∝ E^(r-1/2) の緩和時間に対する輸送積分の一つである I1 を計算します。 I1 = (r + 2) * F_{r+1}(xi) - xi * (r + 1) * F_r(xi)
- electrical.Seebeck_ZT.transport_I2(xi, r)[ソース]
概要: 輸送積分 I2 を計算します。
詳細説明: tau(E) ∝ E^(r-1/2) の緩和時間に対する輸送積分の一つである I2 を計算します。 I2 = (r + 3) * F_{r+2}(xi) - 2 * xi * (r + 2) * F_{r+1}(xi) + xi^2 * (r + 1) * F_r(xi)
- electrical.Seebeck_ZT.transport_prefactor_sigma(T, m_eff=1.0)[ソース]
概要: 電気伝導度 sigma の計算における前因子 A_sigma を計算します。
詳細説明: 電気伝導度は sigma = A_sigma * tau_pref * (kB T)^(r+1) * I0 の形で表されます。 この関数は、tau(E) = tau_pref * E^(r-1/2) と定義される緩和時間において、 以下の物理定数を含む前因子 A_sigma を計算します。 A_sigma [SI] = e^2 * 2^(3/2) * sqrt(m*) / (3 π^2 ħ^3) ここで、e は素電荷、m* は有効質量、ħ は換算プランク定数です。