D2MatE Top page tklib Top page
機能: 自由電子モデル、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)