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,
)

名前

推奨用途

FermiIntegral_fast

トップレベルから安定してimportできる公開API

LORENZ_NUMBER_FREE_ELECTRON

トップレベルから安定してimportできる公開API

ScatteringModel

トップレベルから安定してimportできる公開API

SingleParabolicBand

トップレベルから安定してimportできる公開API

TransportProperties

トップレベルから安定してimportできる公開API

HallProperties

トップレベルから安定してimportできる公開API

TransportSweep

トップレベルから安定してimportできる公開API

HallSweep

トップレベルから安定してimportできる公開API

effective_density_of_states

トップレベルから安定してimportできる公開API

effective_mass_from_density_of_states

トップレベルから安定してimportできる公開API

density_of_states_prefactor

トップレベルから安定してimportできる公開API

eta_grid

トップレベルから安定してimportできる公開API

calculate_transport_sweep

トップレベルから安定してimportできる公開API

calculate_hall_sweep

トップレベルから安定してimportできる公開API

モジュール一覧

モジュール

ソース

関数

クラス

tktransport

tktransport/__init__.py

0

0

tktransport.band

tktransport/band.py

3

0

tktransport.cli

tktransport/cli.py

6

0

tktransport.constants

tktransport/constants.py

0

0

tktransport.fermi

tktransport/fermi.py

14

0

tktransport.mobility

tktransport/mobility.py

0

1

tktransport.results

tktransport/results.py

0

2

tktransport.single_carrier

tktransport/single_carrier.py

0

1

tktransport.sweep

tktransport/sweep.py

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

公開定数・モジュール変数

名前

型/値

xlim_exp

40.0

n_deg_coeffs

10

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) を高速かつ高精度に計算します。

この関数は、以下の優先順位で計算方法を適用します。

  1. 整数次数 r = -1, 0, 1 の場合: それぞれ expit(eta), log(1 + exp(eta)), および dilogarithmscipy.special.spence)を用いた解析解または特殊関数によって高速に計算されます。 r = 1 の非常に大きな eta に対しては、漸近展開も利用されます。

  2. その他の次数および eta の範囲: _FermiIntegral_core を呼び出して、縮退近似、非縮退近似、または数値積分を適用します。 use_cacheTrue の場合、計算結果は _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 関数のラッパーであり、 積分の次数 r0.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 関数のラッパーであり、 積分の次数 r1.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)) であり、ガンマ関数による除算は行われません。 したがって、電子濃度 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)

フィールド

名前

既定値

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)

フィールド

名前

既定値

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)

フィールド

名前

既定値

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)

フィールド

名前

既定値

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)

フィールド

名前

既定値

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)

フィールド

名前

既定値

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はありません。シグネチャと実装を参照してください。