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に対応することを維持する。