D2MatE Top page tklib Top page

tktransportクラス

機能: 自由電子モデル、VASPの計算結果などをもとに、金属・半導体のキャリア輸送に掛かる物性を計算するライブラリです。

tklib.tktransport.tkDOS_FEA_single_carrier.tkDOS 自由電子モデルに基づき半導体統計を計算するクラス
tklib.tktransport.tkDOS_FEA.tkDOS 自由電子モデルに基づき半導体統計を計算するクラス。2キャリアモデルに対応
tklib.tktransport.tkDOS_VASP.tkDOS: VASPで計算したDOSCARに基づき半導体統計を計算するクラス
tklib.tktransport.tkmobility_tau. tkMobility: 緩和時間・散乱因子近似により移動度を計算するクラス

 

コード例

# tkFitのimport
from tklib.tktransport.tkDOS_FEA import tkDOS
from tklib.tktransport.tkmobility_tau import tkMobility

charge = 1.0
rfac = 0.0
# 移動度モデル
mu_e = tkMobility(charge = charge, meff = None, rfac = rfac, l0 = 1.0e-10) # l0 in m
# 状態密度モデル
dos = tkDOS(EV = 0.0, EC = 1.1, EA = 0.0, NA = 0.0, ED = 0.0, ND = 0.0, EF0 = 0.0, dEFmin = -0.2, dEFmax = 2.0, meeff = None, mheff = None)
# 光子熱伝導率
klatt = 5.0

# 積分条件
dE = nrange * kB * T / e
E0 = dos.EV - dE
E1 = dos.EC + dE

# 移動度の設定、有効状態密度の計算
mu_e.meff = meff
dos.set_meeff(mu_e.meff, T)
dos.set_mheff(mu_e.meff, T)

# 非縮退近似の熱電係数
Sndeg = dos.cal_S_nondegenerated_from_Ne(n = N, rfac = r, charge = mu_e.charge)
# 縮退近似の熱電係数
Sdeg = dos.cal_S_degenerated_from_Ne(T = T, n = N, rfac = r, charge = mu_e.charge)
# SからLorentz因子の近似値の計算
Lapprox = dos.cal_LorentzNumber_from_S_approximate(S)

# 非縮退近似でSを計算
def cal_S_nondegenerated_from_Ne(self, n, rfac, charge = 1.0, unit = 'uV/K'): # V/K
# 縮退近似でSを計算
def cal_S_degenerated_from_Ne(self, T, n, rfac, charge = 1.0, unit = 'uV/K'): # V/K
# Sを計算
def cal_electronSeebeck(self, EF, T, mobility = None, rfac = None, unit = 'uV/K'):

# キャリア密度を計算
def cal_electrondensity(self, EF, T):
def Ne(self, T, EF, E0, E1, Estep):
def Nh(self, T, EF, E0, E1, Estep):

# 縮退半導体の 0 K におけるFermi準位
EFdeg = dos.EF0K_from_N_meff(N = N, meff = dos.meeff)

# キャリア密度から温度 T におけるFermi準位を計算
EFfin, diffEF, flag = dos.EF_from_electrondensity(n, T0, EF0 = 0.0, dEF = 0.01, dump = 0.0, epsEF = epsEF, maxiter = 100) 
# Fermi準位を計算
def FindEF_metal(self, T, EF0, E0, E1, Estep, totNe):
def FindEF_semi(self, T, EFmin, EFmax, E0h, E1h, E0e, E1e, Estep, print_level = 1):
# SからFermi準位を計算
def EF_from_electronSeebeck(self, Starget, T, mobility, EF0 = 0.0, dEF = 0.01, dump = 0.0, epsEF = 1.0e-5, maxiter = 100):

# 還元Fermi準位
xe = (EF - dos.EC) * e / kB / T
# キャリア輸送特性の計算
sigmae, ne, mue, tau_avge, Se, kappae, kappa_tote, Le, PFe, ZTe, infe = \
    dos.cal_transport_S(xe, T, meff, dos.NC, mu_e, klatt = klatt, validate_error_str = None, charge = mu_e.charge)

# SからFermi準位を計算
EF_S = dos.EF_from_S(T, abs(S), mu_e.rfac, EFmin = -2.0, EFmax = 3.0, print_level = 0, eps = eps, nmaxiter = nmaxiter)
# Fermi準位とキャリア密度から有効質量を計算
meff_S = dos.meeff_from_Ne_EF0K(N, EF_S) # N in cm^-3

# Hall降下関係のキャリア輸送特性の計算
inf = dos.cal_Hall_properteis(T0, EF, mobility, validate_error_str = 'Error in properteis()')


# 有効状態密度、状態密度関数前置因子の計算
dos.NC = meff2NC_FEA(dos.meeff, T0)
dos.DC0 = meff2DC0_FEA(dos.meeff, T0)