tktransport 生成AI投入用コンテキスト
このファイルは
tktransportを使うコード生成のため、マニュアルとAPIリファレンスを1ファイルへ統合したものです。API名・引数は下記APIリファレンスを優先し、存在しないAPIを推測で作らないでください。ソースコードが同時に与えられた場合はソースコードを最優先します。
tktransport マニュアル
1. 役割
tktransport は、単一等方放物線band(SPB)とpower-law scattering modelに基づき、carrier density、conductivity、mobility、Seebeck係数、Lorenz数、電子熱伝導率、power factor、ZT、Hall係数等を計算する独立パッケージです。
2. 推奨import
from tktransport import (
SingleParabolicBand,
ScatteringModel,
eta_grid,
calculate_transport_sweep,
calculate_hall_sweep,
)
3. 単一点計算
from tktransport import SingleParabolicBand, ScatteringModel
band = SingleParabolicBand(
effective_mass=0.30,
band_edge_ev=0.0,
)
scattering = ScatteringModel(
charge_sign=-1, # electron
scattering_factor=0.5,
mean_free_path=10e-9, # m
)
result = band.calculate_transport_properties(
eta=0.0,
temperature=300.0,
scattering=scattering,
lattice_thermal_conductivity=1.5,
)
print(result.as_dict())
4. 符号規約
electron:
charge_sign=-1hole:
charge_sign=+1
carrier reduced chemical potential eta は、
electron:
(EF - EC) / kBThole:
(EV - EF) / kBT
です。Seebeck係数とHall係数の符号は charge_sign によって決まります。
5. 単位
結果field名に単位が含まれます。
量 |
field |
単位 |
|---|---|---|
carrier density |
|
cm^-3 |
conductivity |
|
S/cm |
mobility |
|
cm^2/(V s) |
relaxation time |
|
fs |
Seebeck |
|
µV/K |
thermal conductivity |
|
W/(m K) |
Lorenz number |
|
W Ω/K^2 |
power factor |
|
W/(m K^2), µW/(cm K^2) |
mean_free_path はm、effective_mass は自由電子質量単位です。
6. eta sweep
from tktransport import eta_grid, calculate_transport_sweep
etas = eta_grid(-8.0, 8.0, 321)
sweep = calculate_transport_sweep(
band,
scattering,
temperature=300.0,
eta_values=etas,
lattice_thermal_conductivity=1.5,
)
best = sweep.eta[sweep.zt.argmax()]
Hall sweep:
from tktransport import calculate_hall_sweep
hall = calculate_hall_sweep(band, scattering, 300.0, etas)
7. Fermi levelとの変換
eta = band.eta_from_fermi_level(
fermi_level_ev=0.10,
temperature=300.0,
charge_sign=-1,
)
ef = band.fermi_level_from_eta(eta, 300.0, charge_sign=-1)
absolute Fermi levelを使う計算には calculate_transport_from_fermi_level() と calculate_hall_from_fermi_level() があります。
8. scattering model
実装はmean-free-path normalizationを使うpower lawです。relaxation_time(E) は非正のenergyで None を返します。
Hall計算では scattering_factor > -0.25 が必要です。これ以下では該当Fermi integralがband edgeで発散するため ValueError になります。
9. 近似式と厳密計算
SingleParabolicBand には、非縮退・縮退近似のSeebeck、近似Lorenz数、Fermi energy等の補助methodがあります。適用範囲外で近似式を主結果として使わず、通常はFermi integralを使う calculate_transport_properties() を優先してください。
10. 数値・物理上の制約
温度、effective massは正でなければなりません。
lattice thermal conductivityは非負です。
SPB、等方、有効質量近似、単一carrier、指定scattering lawを仮定します。
多band、bipolar conduction、energy-dependent band nonparabolicity、grain boundary、localization等は自動的には含まれません。
計算値と実験Hall densityの比較ではHall factorを区別してください。
11. CLI
tktransport.cli は計算・sweep・Excel/plot出力用の関数を含みます。正確な引数は次で確認してください。
python -m tktransport --help
# または
python -m tktransport.cli --help
12. 依存関係
numpy,scipyCLI Excel出力:
openpyxlplot:
matplotlib
13. 生成AI向けコード生成ルール
electron/holeの
charge_signを必ず明示する。etaをeVと誤認しない。無次元量である。field名に埋め込まれた単位を維持し、無断でSI/CGS変換しない。
conductivityがS/cmであることを確認して実験値と比較する。
Hall densityとtrue carrier densityをHall factorなしに同一視しない。
scattering_factor <= -0.25でHall計算を行わない。SPBモデルの仮定を超える多carrier fitを、このpackageだけで実装済みと仮定しない。
sweepでは各array fieldが同じeta gridに対応することを維持する。
tktransport APIリファレンス
対象ソース:
tklib2.zip(解析日: 2026-08-03)。この文書はソースコードを静的解析して生成しています。
APIの読み方
パッケージ公開APIは、原則としてトップレベルの
__all__に含まれる名前です。モジュールAPIには、公開名(先頭が
_でない関数・クラス・メソッド)を列挙しています。docstringがないAPIでは、シグネチャとソースパスを一次情報として扱ってください。
生成AIは、この文書に存在しない引数・戻り値・メソッドを推測で追加しないでください。
パッケージ公開API
from tktransport import (
FermiIntegral_fast,
LORENZ_NUMBER_FREE_ELECTRON,
ScatteringModel,
SingleParabolicBand,
TransportProperties,
HallProperties,
TransportSweep,
HallSweep,
effective_density_of_states,
effective_mass_from_density_of_states,
density_of_states_prefactor,
eta_grid,
calculate_transport_sweep,
calculate_hall_sweep,
)
名前 |
推奨用途 |
|---|---|
|
トップレベルから安定してimportできる公開API |
|
トップレベルから安定してimportできる公開API |
|
トップレベルから安定してimportできる公開API |
|
トップレベルから安定してimportできる公開API |
|
トップレベルから安定してimportできる公開API |
|
トップレベルから安定してimportできる公開API |
|
トップレベルから安定してimportできる公開API |
|
トップレベルから安定してimportできる公開API |
|
トップレベルから安定してimportできる公開API |
|
トップレベルから安定してimportできる公開API |
|
トップレベルから安定してimportできる公開API |
|
トップレベルから安定してimportできる公開API |
|
トップレベルから安定してimportできる公開API |
|
トップレベルから安定してimportできる公開API |
モジュール一覧
モジュール |
ソース |
関数 |
クラス |
|---|---|---|---|
|
|
0 |
0 |
|
|
3 |
0 |
|
|
6 |
0 |
|
|
0 |
0 |
|
|
14 |
0 |
|
|
0 |
1 |
|
|
0 |
2 |
|
|
0 |
1 |
|
|
3 |
2 |
tktransport
ソース: tktransport/__init__.py
Independent single-parabolic-band transport library.
このモジュールには静的解析で検出された公開関数・クラス・定数はありません。
tktransport.band
ソース: tktransport/band.py
Parabolic-band density-of-states utilities.
function effective_density_of_states
def effective_density_of_states(effective_mass: float, temperature: float) -> float
Return the 3D parabolic-band effective DOS in cm^-3.
effective_mass is measured in units of the free-electron mass.
function effective_mass_from_density_of_states
def effective_mass_from_density_of_states(density_of_states: float, temperature: float) -> float
Invert :func:effective_density_of_states.
Parameters
density_of_states: Effective DOS in cm^-3. temperature: Temperature in K.
function density_of_states_prefactor
def density_of_states_prefactor(effective_mass: float) -> float
Return D0 for D(E)=D0*sqrt(E-Eedge).
The returned unit is cm^-3 eV^-3/2. Unlike the legacy function, this quantity is temperature independent and therefore has no temperature argument.
tktransport.cli
ソース: tktransport/cli.py
Command-line application for SPB transport and Hall sweeps.
function save_transport_excel
def save_transport_excel(path: Path, sweep: TransportSweep, parameters: dict[str, object]) -> None
ソース内docstringはありません。シグネチャと実装を参照してください。
function save_hall_excel
def save_hall_excel(path: Path, sweep: HallSweep, parameters: dict[str, object]) -> None
ソース内docstringはありません。シグネチャと実装を参照してください。
function plot_transport
def plot_transport(sweep: TransportSweep, title: str, figure_path: Path | None, show: bool) -> None
ソース内docstringはありません。シグネチャと実装を参照してください。
function plot_hall
def plot_hall(sweep: HallSweep, title: str, figure_path: Path | None, show: bool) -> None
ソース内docstringはありません。シグネチャと実装を参照してください。
function build_parser
def build_parser() -> argparse.ArgumentParser
ソース内docstringはありません。シグネチャと実装を参照してください。
function main
def main(argv: list[str] | None = None) -> int
ソース内docstringはありません。シグネチャと実装を参照してください。
tktransport.constants
ソース: tktransport/constants.py
Physical constants and reusable prefactors for transport calculations.
このモジュールには静的解析で検出された公開関数・クラス・定数はありません。
tktransport.fermi
ソース: tktransport/fermi.py
Fermi-Dirac積分を高速かつ堅牢に計算するためのライブラリ。
このモジュールは、フェルミ・ディラック積分 F_r(eta) の様々な次数 r に対する効率的な計算を提供します。
半導体物理学や統計物理学におけるキャリア密度や関連する熱力学的特性の計算に利用できます。
特に、整数次数 r=-1, 0, 1 に対しては解析解を用いた高速化が施されており、
その他の次数では漸近展開や数値積分を組み合わせて高い精度と性能を実現しています。
:doc:tkfermi_integral_usage
公開定数・モジュール変数
名前 |
型/値 |
|---|---|
|
|
|
|
function generate_sommerfeld_coeffs
def generate_sommerfeld_coeffs(n_terms)
ゾンマーフェルト展開に使用される係数を生成します。
この関数は、フェルミ・ディラック積分の縮退近似(ゾンマーフェルト展開)
において使用される定数 z_k = (1 - 2^(1-2k)) * zeta(2k) を計算します。
zeta(s, q) はフルヴィッツのゼータ関数です。
:param n_terms: 生成する係数の数。 :type n_terms: int :returns: 生成されたゾンマーフェルト展開係数のタプル。 :rtype: tuple[float]
function fermi_dirac_e_npvector
def fermi_dirac_e_npvector(x)
与えられたエネルギー x = (E - E_f) / kT のNumpy配列に対するフェルミ・ディラック分布関数を計算します。
この関数は、数値的な安定性を確保するために、x の値を [-xlim_exp, xlim_exp] の範囲にクリップします。
また、x の符号に応じて計算方法を切り替えることで、大きな x の値に対してもオーバーフローやアンダーフローを防ぎます。
:param x: 無次元エネルギー (E - E_f) / kT を表すNumpy配列。
:type x: numpy.ndarray
:returns: 各エネルギー x に対応するフェルミ・ディラック分布関数の値。
:rtype: numpy.ndarray
function fermi_dirac_e_if
def fermi_dirac_e_if(x, eta, g = 1.0)
フェルミ・ディラック分布関数 f = 1 / (1 + g * exp(x - eta)) を計算します。
この関数は、x - eta の値に基づいて条件分岐を使用し、
指数関数 exp() の引数が非常に大きくなったり小さくなったりする場合の
数値的な安定性(オーバーフローやアンダーフロー)を確保します。
xlim_exp の範囲外では、結果を 0.0 または 1.0 にクリップします。
:param x: 無次元エネルギー E / kT。
:type x: float
:param eta: 無次元化学ポテンシャル E_f / kT。
:type eta: float
:param g: スピン縮重因子。デフォルトは1.0です。
:type g: float
:returns: フェルミ・ディラック分布関数の値。
:rtype: float
function fermi_dirac_e
def fermi_dirac_e(x, eta, g = 1.0)
フェルミ・ディラック分布関数 f = 1 / (1 + g * exp(x - eta)) を計算します。
この関数は、scipy.special.expit (ロジスティックシグモイド関数) を使用して、
exp(x - eta) が非常に大きいまたは小さい場合に発生する可能性のある
数値的な不安定性(オーバーフローやアンダーフロー)を回避し、
よりロバストな計算を提供します。
:param x: 無次元エネルギー E / kT。
:type x: float or numpy.ndarray
:param eta: 無次元化学ポテンシャル E_f / kT。
:type eta: float or numpy.ndarray
:param g: スピン縮重因子。デフォルトは1.0です。
:type g: float
:returns: フェルミ・ディラック分布関数の値。x または eta がNumpy配列の場合、結果もNumpy配列となります。
:rtype: float or numpy.ndarray
function log_fermi_dirac_e
def log_fermi_dirac_e(x, eta, g = 1.0)
フェルミ・ディラック分布関数 f の自然対数 log(f) を安定的に計算します。
この関数は f = 1 / (1 + g * exp(x - eta)) の対数を計算しますが、
scipy.special.log_expit を使用することで、f が非常に小さい(0に近い)場合に
log(f) を直接計算する際のアンダーフロー問題を回避します。
:param x: 無次元エネルギー E / kT。
:type x: float or numpy.ndarray
:param eta: 無次元化学ポテンシャル E_f / kT。
:type eta: float or numpy.ndarray
:param g: スピン縮重因子。デフォルトは1.0です。
:type g: float
:returns: フェルミ・ディラック分布関数の自然対数値。x または eta がNumpy配列の場合、結果もNumpy配列となります。
:rtype: float or numpy.ndarray
function fermi_dirac_h
def fermi_dirac_h(x, eta, g = 1.0)
正孔(ホール)の占有確率 1 - f を計算します。
この関数は、1 - f = 1 / (1 + g * exp(eta - x)) という形で定義される正孔の確率を、
scipy.special.expit を使用して数値的に安定な方法で計算します。
フェルミ・ディラック分布関数 f と同様に、g はスピン縮重因子です。
:param x: 無次元エネルギー E / kT。
:type x: float or numpy.ndarray
:param eta: 無次元化学ポテンシャル E_f / kT。
:type eta: float or numpy.ndarray
:param g: スピン縮重因子。デフォルトは1.0です。
:type g: float
:returns: 正孔の占有確率 1 - f の値。x または eta がNumpy配列の場合、結果もNumpy配列となります。
:rtype: float or numpy.ndarray
function log_fermi_dirac_h
def log_fermi_dirac_h(x, eta, g = 1.0)
正孔(ホール)の占有確率 1 - f の自然対数 log(1 - f) を安定的に計算します。
この関数は 1 - f = 1 / (1 + g * exp(eta - x)) の対数を計算しますが、
scipy.special.log_expit を使用することで、1 - f が非常に小さい(0に近い)場合に
log(1 - f) を直接計算する際のアンダーフロー問題を回避します。
:param x: 無次元エネルギー E / kT。
:type x: float or numpy.ndarray
:param eta: 無次元化学ポテンシャル E_f / kT。
:type eta: float or numpy.ndarray
:param g: スピン縮重因子。デフォルトは1.0です。
:type g: float
:returns: 正孔の占有確率の自然対数値。x または eta がNumpy配列の場合、結果もNumpy配列となります。
:rtype: float or numpy.ndarray
function ionized_acceptor_frac
def ionized_acceptor_frac(eta, xA, g = 1.0)
イオン化されたアクセプターの割合を計算します。
この関数は、アクセプター準位が電子で占有されている確率として定義される、
イオン化されたアクセプターの割合 N_A^- / N_A を計算します。
基本的なフェルミ・ディラック分布関数 fermi_dirac_e のラッパーです。
:param eta: 無次元化学ポテンシャル E_f / kT。
:type eta: float or numpy.ndarray
:param xA: 無次元アクセプター準位エネルギー E_A / kT。
:type xA: float or numpy.ndarray
:param g: スピン縮重因子。デフォルトは1.0です。
:type g: float
:returns: イオン化されたアクセプターの割合。eta または xA がNumpy配列の場合、結果もNumpy配列となります。
:rtype: float or numpy.ndarray
function ionized_donor_frac
def ionized_donor_frac(eta, xD, g = 1.0)
イオン化されたドナーの割合を計算します。
この関数は、ドナー準位が正孔で占有されている(つまり電子を放出した)確率として定義される、
イオン化されたドナーの割合 N_D^+ / N_D を計算します。
基本的な正孔の占有確率関数 fermi_dirac_h のラッパーです。
:param eta: 無次元化学ポテンシャル E_f / kT。
:type eta: float or numpy.ndarray
:param xD: 無次元ドナー準位エネルギー E_D / kT。
:type xD: float or numpy.ndarray
:param g: スピン縮重因子。デフォルトは1.0です。
:type g: float
:returns: イオン化されたドナーの割合。eta または xD がNumpy配列の場合、結果もNumpy配列となります。
:rtype: float or numpy.ndarray
function FermiIntegral_fast
def FermiIntegral_fast(eta, r, *, epsabs = 1e-10, epsrel = 1e-08, limit = 50, use_cache = True)
一般的なフェルミ・ディラック積分 F_r(eta) を高速かつ高精度に計算します。
この関数は、以下の優先順位で計算方法を適用します。
整数次数
r = -1, 0, 1の場合: それぞれexpit(eta),log(1 + exp(eta)), およびdilogarithm(scipy.special.spence)を用いた解析解または特殊関数によって高速に計算されます。r = 1の非常に大きなetaに対しては、漸近展開も利用されます。その他の次数および
etaの範囲:_FermiIntegral_coreを呼び出して、縮退近似、非縮退近似、または数値積分を適用します。use_cacheがTrueの場合、計算結果は_FermiIntegral_cachedを通じてキャッシュされます。
:param eta: 無次元化学ポテンシャル E_f / kT。
:type eta: float
:param r: フェルミ・ディラック積分の次数。
:type r: float
:param epsabs: (キーワード引数) 数値積分の絶対許容誤差。デフォルトは1.0e-10です。
:type epsabs: float
:param epsrel: (キーワード引数) 数値積分の相対許容誤差。デフォルトは1.0e-8です。
:type epsrel: float
:param limit: (キーワード引数) scipy.integrate.quad で使用される最大部分区間数。デフォルトは50です。
:type limit: int
:param use_cache: (キーワード引数) 計算結果をキャッシュするかどうか。デフォルトはTrueです。
:type use_cache: bool
:returns: フェルミ・ディラック積分の値。
:rtype: float
function FermiIntegral_half
def FermiIntegral_half(eta, *, epsabs = 1e-10, epsrel = 1e-08, limit = 50)
フェルミ・ディラック積分 F_{1/2}(eta) を計算します。
この関数は、FermiIntegral_fast 関数のラッパーであり、
積分の次数 r を 0.5 に固定して呼び出すことで、特定の次数を便利に計算できるようにします。
半導体中の電子濃度計算によく用いられます。
:param eta: 無次元化学ポテンシャル E_f / kT。
:type eta: float
:param epsabs: (キーワード引数) 数値積分の絶対許容誤差。デフォルトは1.0e-10です。
:type epsabs: float
:param epsrel: (キーワード引数) 数値積分の相対許容誤差。デフォルトは1.0e-8です。
:type epsrel: float
:param limit: (キーワード引数) scipy.integrate.quad で使用される最大部分区間数。デフォルトは50です。
:type limit: int
:returns: フェルミ・ディラック積分 F_{1/2}(eta) の値。
:rtype: float
function FermiIntegral_3half
def FermiIntegral_3half(eta, *, epsabs = 1e-10, epsrel = 1e-08, limit = 50)
フェルミ・ディラック積分 F_{3/2}(eta) を計算します。
この関数は、FermiIntegral_fast 関数のラッパーであり、
積分の次数 r を 1.5 に固定して呼び出すことで、特定の次数を便利に計算できるようにします。
非放物型バンドにおけるキャリア密度や、その他の物理量の計算に利用されます。
:param eta: 無次元化学ポテンシャル E_f / kT。
:type eta: float
:param epsabs: (キーワード引数) 数値積分の絶対許容誤差。デフォルトは1.0e-10です。
:type epsabs: float
:param epsrel: (キーワード引数) 数値積分の相対許容誤差。デフォルトは1.0e-8です。
:type epsrel: float
:param limit: (キーワード引数) scipy.integrate.quad で使用される最大部分区間数。デフォルトは50です。
:type limit: int
:returns: フェルミ・ディラック積分 F_{3/2}(eta) の値。
:rtype: float
function electron_density
def electron_density(Nc, eta_c, *, epsabs = 1e-10, epsrel = 1e-08, limit = 50)
導電帯における電子濃度を計算します(非放物型効果は無視し、標準的な放物型バンドを仮定)。
このライブラリで定義される(非正規化)フェルミ・ディラック積分 I_{1/2}(eta) は、
∫_0^∞ ε^{1/2} / (1 + exp(ε - eta)) dε であり、ガンマ関数による除算は行われません。
したがって、電子濃度 n は以下の式で与えられます。
n = Nc * (2/sqrt(pi)) * I_{1/2}(eta_c)
この関数は eta_c がスカラーでもNumpy配列でも対応し、それぞれの eta_c に対して
FermiIntegral_half を呼び出して電子濃度を計算します。
:param Nc: 導電帯の実効状態密度 [cm^-3] または [m^-3]。単位は結果に引き継がれます。
:type Nc: float
:param eta_c: 電子に対する無次元化学ポテンシャル eta_c = (Ef - Ec) / (kT)。
:type eta_c: float or numpy.ndarray
:param epsabs: (キーワード引数) 数値積分の絶対許容誤差。デフォルトは1.0e-10です。
:type epsabs: float
:param epsrel: (キーワード引数) 数値積分の相対許容誤差。デフォルトは1.0e-8です。
:type epsrel: float
:param limit: (キーワード引数) scipy.integrate.quad で使用される最大部分区間数。デフォルトは50です。
:type limit: int
:returns: Nc と同じ単位の電子濃度。eta_c がNumpy配列の場合、結果もNumpy配列となります。
:rtype: float or numpy.ndarray
function hole_density
def hole_density(Nv, eta_v, *, epsabs = 1e-10, epsrel = 1e-08, limit = 50)
価電子帯における正孔濃度を計算します(標準的な放物型バンドを仮定)。
このライブラリで定義される(非正規化)フェルミ・ディラック積分 I_{1/2} を使用して、
正孔濃度 p は以下の式で計算されます。
p = Nv * (2/sqrt(pi)) * I_{1/2}( beta(Ev - Ef) )
eta_v = (Ef - Ev) / (kT) として渡される場合、beta(Ev - Ef) = -eta_v となるため、
FermiIntegral_half(-eta_v) を呼び出す必要があります。
この関数は eta_v がスカラーでもNumpy配列でも対応し、それぞれの eta_v に対して
FermiIntegral_half を呼び出して正孔濃度を計算します。
:param Nv: 価電子帯の実効状態密度 [cm^-3] または [m^-3]。単位は結果に引き継がれます。
:type Nv: float
:param eta_v: 無次元化学ポテンシャル eta_v = (Ef - Ev) / (kT)。
:type eta_v: float or numpy.ndarray
:param epsabs: (キーワード引数) 数値積分の絶対許容誤差。デフォルトは1.0e-10です。
:type epsabs: float
:param epsrel: (キーワード引数) 数値積分の相対許容誤差。デフォルトは1.0e-8です。
:type epsrel: float
:param limit: (キーワード引数) scipy.integrate.quad で使用される最大部分区間数。デフォルトは50です。
:type limit: int
:returns: Nv と同じ単位の正孔濃度。eta_v がNumpy配列の場合、結果もNumpy配列となります。
:rtype: float or numpy.ndarray
tktransport.mobility
ソース: tktransport/mobility.py
Energy-dependent scattering model for a single parabolic band.
class ScatteringModel
Power-law mean-free-path model.
The model follows the convention used by the original program::
tau(E) = sqrt(m* m_e / 2) * (l0 / e**r) * (E e)**(r - 1/2)
where E is supplied in eV, l0 is in m, and the returned relaxation
time is in seconds. charge_sign is +1 for holes and -1 for electrons.
データクラス相当の初期化フィールド
ScatteringModel(charge_sign: int = 1, scattering_factor: float = 0.5, mean_free_path: float = 1e-08)
フィールド
名前 |
型 |
既定値 |
|---|---|---|
|
|
|
|
|
|
|
|
|
メソッド/プロパティ
property ScatteringModel.normalized_mean_free_path
def normalized_mean_free_path(self) -> float
Return l0/e**r in the SI normalization used by the model.
method ScatteringModel.relaxation_time
def relaxation_time(self, energy_ev: float, effective_mass: float) -> float | None
Return tau(E) in seconds, or None for non-positive energy.
tktransport.results
ソース: tktransport/results.py
Typed results returned by the transport models.
class TransportProperties
ソース内docstringはありません。シグネチャと実装を参照してください。
データクラス相当の初期化フィールド
TransportProperties(eta: float, temperature: float, reduced_chemical_potential_ev: float, carrier_density_cm3: float, conductivity_s_cm: float, mobility_cm2_v_s: float, average_relaxation_time_fs: float, seebeck_uv_k: float, electronic_thermal_conductivity_w_m_k: float, total_thermal_conductivity_w_m_k: float, lorenz_number_w_ohm_k2: float, power_factor_w_m_k2: float, power_factor_uw_cm_k2: float, zt: float)
フィールド
名前 |
型 |
既定値 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
メソッド/プロパティ
method TransportProperties.as_dict
def as_dict(self) -> dict[str, float]
ソース内docstringはありません。シグネチャと実装を参照してください。
class HallProperties
ソース内docstringはありません。シグネチャと実装を参照してください。
データクラス相当の初期化フィールド
HallProperties(eta: float, temperature: float, reduced_chemical_potential_ev: float, carrier_density_cm3: float, conductivity_s_cm: float, drift_mobility_cm2_v_s: float, average_relaxation_time_fs: float, hall_factor: float, hall_coefficient_cm3_c: float, classical_hall_coefficient_cm3_c: float, hall_density_cm3: float, hall_mobility_cm2_v_s: float)
フィールド
名前 |
型 |
既定値 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
メソッド/プロパティ
method HallProperties.as_dict
def as_dict(self) -> dict[str, float]
ソース内docstringはありません。シグネチャと実装を参照してください。
tktransport.single_carrier
ソース: tktransport/single_carrier.py
Single-parabolic-band transport and Hall properties.
class SingleParabolicBand
Single isotropic parabolic band.
Parameters
effective_mass:
Density-of-states effective mass in units of the free-electron mass.
band_edge_ev:
Absolute conduction- or valence-band edge in eV. The core methods use
the carrier reduced chemical potential eta: (EF-EC)/kBT for
electrons and (EV-EF)/kBT for holes.
データクラス相当の初期化フィールド
SingleParabolicBand(effective_mass: float, band_edge_ev: float = 0.0)
フィールド
名前 |
型 |
既定値 |
|---|---|---|
|
|
|
|
|
|
メソッド/プロパティ
method SingleParabolicBand.effective_density_of_states
def effective_density_of_states(self, temperature: float) -> float
ソース内docstringはありません。シグネチャと実装を参照してください。
method SingleParabolicBand.density_of_states_prefactor
def density_of_states_prefactor(self) -> float
ソース内docstringはありません。シグネチャと実装を参照してください。
method SingleParabolicBand.reduced_chemical_potential_ev
def reduced_chemical_potential_ev(eta: float, temperature: float) -> float
Return eta*kBT in eV using the carrier-band convention.
method SingleParabolicBand.eta_from_fermi_level
def eta_from_fermi_level(self, fermi_level_ev: float, temperature: float, charge_sign: int) -> float
Convert an absolute Fermi level to carrier eta.
For electrons (charge_sign=-1), eta=(EF-EC)/kBT.
For holes (charge_sign=+1), eta=(EV-EF)/kBT.
method SingleParabolicBand.fermi_level_from_eta
def fermi_level_from_eta(self, eta: float, temperature: float, charge_sign: int) -> float
Convert carrier eta to an absolute Fermi level in eV.
method SingleParabolicBand.carrier_density
def carrier_density(self, eta: float, temperature: float) -> float
ソース内docstringはありません。シグネチャと実装を参照してください。
method SingleParabolicBand.calculate_transport_properties
def calculate_transport_properties(self, eta: float, temperature: float, scattering: ScatteringModel, lattice_thermal_conductivity: float = 0.0) -> TransportProperties
Calculate SPB transport coefficients for a dimensionless eta.
Units are encoded in the result field names. The Seebeck and Hall
signs are controlled by scattering.charge_sign.
method SingleParabolicBand.calculate_transport_from_fermi_level
def calculate_transport_from_fermi_level(self, fermi_level_ev: float, temperature: float, scattering: ScatteringModel, lattice_thermal_conductivity: float = 0.0) -> TransportProperties
ソース内docstringはありません。シグネチャと実装を参照してください。
method SingleParabolicBand.calculate_hall_properties
def calculate_hall_properties(self, eta: float, temperature: float, scattering: ScatteringModel) -> HallProperties
Calculate single-carrier Hall properties for dimensionless eta.
method SingleParabolicBand.calculate_hall_from_fermi_level
def calculate_hall_from_fermi_level(self, fermi_level_ev: float, temperature: float, scattering: ScatteringModel) -> HallProperties
ソース内docstringはありません。シグネチャと実装を参照してください。
method SingleParabolicBand.seebeck_nondegenerate_uv_k
def seebeck_nondegenerate_uv_k(self, carrier_density_cm3: float, temperature: float, scattering: ScatteringModel) -> float
Non-degenerate Seebeck approximation in microvolt/K.
method SingleParabolicBand.seebeck_degenerate_uv_k
def seebeck_degenerate_uv_k(self, carrier_density_cm3: float, temperature: float, scattering: ScatteringModel) -> float
Degenerate Seebeck approximation in microvolt/K.
method SingleParabolicBand.approximate_lorenz_number_from_seebeck
def approximate_lorenz_number_from_seebeck(seebeck_uv_k: float) -> float
Empirical Lorenz-number approximation in W ohm K^-2.
This preserves the approximation used by the original program. The magnitude is used so that electron and hole inputs give the same Lorenz estimate.
tktransport.sweep
ソース: tktransport/sweep.py
Convenience functions for eta sweeps.
class TransportSweep
ソース内docstringはありません。シグネチャと実装を参照してください。
データクラス相当の初期化フィールド
TransportSweep(eta: np.ndarray, reduced_chemical_potential_ev: np.ndarray, carrier_density_cm3: np.ndarray, conductivity_s_cm: np.ndarray, mobility_cm2_v_s: np.ndarray, relaxation_time_at_fermi_fs: np.ndarray, average_relaxation_time_fs: np.ndarray, seebeck_uv_k: np.ndarray, seebeck_nondegenerate_uv_k: np.ndarray, seebeck_degenerate_uv_k: np.ndarray, electronic_thermal_conductivity_w_m_k: np.ndarray, total_thermal_conductivity_w_m_k: np.ndarray, lorenz_number_w_ohm_k2: np.ndarray, approximate_lorenz_number_w_ohm_k2: np.ndarray, power_factor_w_m_k2: np.ndarray, power_factor_uw_cm_k2: np.ndarray, zt: np.ndarray)
フィールド
名前 |
型 |
既定値 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class HallSweep
ソース内docstringはありません。シグネチャと実装を参照してください。
データクラス相当の初期化フィールド
HallSweep(eta: np.ndarray, reduced_chemical_potential_ev: np.ndarray, carrier_density_cm3: np.ndarray, conductivity_s_cm: np.ndarray, drift_mobility_cm2_v_s: np.ndarray, average_relaxation_time_fs: np.ndarray, hall_factor: np.ndarray, hall_coefficient_cm3_c: np.ndarray, classical_hall_coefficient_cm3_c: np.ndarray, hall_density_cm3: np.ndarray, hall_mobility_cm2_v_s: np.ndarray)
フィールド
名前 |
型 |
既定値 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function eta_grid
def eta_grid(xmin: float, xmax: float, count: int) -> np.ndarray
ソース内docstringはありません。シグネチャと実装を参照してください。
function calculate_transport_sweep
def calculate_transport_sweep(band: SingleParabolicBand, scattering: ScatteringModel, temperature: float, eta_values: np.ndarray, lattice_thermal_conductivity: float = 0.0) -> TransportSweep
ソース内docstringはありません。シグネチャと実装を参照してください。
function calculate_hall_sweep
def calculate_hall_sweep(band: SingleParabolicBand, scattering: ScatteringModel, temperature: float, eta_values: np.ndarray) -> HallSweep
ソース内docstringはありません。シグネチャと実装を参照してください。