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=-1

  • hole: charge_sign=+1

carrier reduced chemical potential eta は、

  • electron: (EF - EC) / kBT

  • hole: (EV - EF) / kBT

です。Seebeck係数とHall係数の符号は charge_sign によって決まります。

5. 単位

結果field名に単位が含まれます。

field

単位

carrier density

carrier_density_cm3

cm^-3

conductivity

conductivity_s_cm

S/cm

mobility

mobility_cm2_v_s

cm^2/(V s)

relaxation time

average_relaxation_time_fs

fs

Seebeck

seebeck_uv_k

µV/K

thermal conductivity

*_w_m_k

W/(m K)

Lorenz number

lorenz_number_w_ohm_k2

W Ω/K^2

power factor

power_factor_w_m_k2, power_factor_uw_cm_k2

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

  • CLI Excel出力: openpyxl

  • plot: matplotlib

13. 生成AI向けコード生成ルール

  1. electron/holeの charge_sign を必ず明示する。

  2. eta をeVと誤認しない。無次元量である。

  3. field名に埋め込まれた単位を維持し、無断でSI/CGS変換しない。

  4. conductivityがS/cmであることを確認して実験値と比較する。

  5. Hall densityとtrue carrier densityをHall factorなしに同一視しない。

  6. scattering_factor <= -0.25 でHall計算を行わない。

  7. SPBモデルの仮定を超える多carrier fitを、このpackageだけで実装済みと仮定しない。

  8. sweepでは各array fieldが同じeta gridに対応することを維持する。