teflow.bandlib module¶
- teflow.bandlib.UNIT¶
Key
Value
Notes
T
K
Temperature
E
eV
Energy
N
1E19 cm^(-3)
Carrier concentration
U
cm^2/(V.s)
Mobility
C
S/cm
Conductivity
S
uV/K
Seebeck coefficient
K
W/(m.K)
Thermal conductivity
L
1E-8 W.Ohm/K^2
Lorenz number
PF
uW/(cm.K^2)
Power factor
RH
cm^3/C
Hall coefficient
DOS
1E19 state/(eV.cm^3)
Density of states
TRS
S/cm
Transport distribution function
HALL
S.cm/(V.s)
Hall transport distribution function
- teflow.bandlib.kB_eV = 8.617333262145179e-05¶
Unit:: eV/K
- teflow.bandlib.m_e = 9.1093837015e-31¶
Unit:: kg
- teflow.bandlib.hbar = 1.054571817e-34¶
Unit:: J.s
- teflow.bandlib.q = 1.602176634e-19¶
Unit:: C
- class teflow.bandlib.BaseBand¶
基类:
ABC
An abstract class about the band model. It offers the basic calculation for thermoelectric transport properties, such as the Seebeck coefficient, electrical conductivity, and electronic thermal conductivity. It generally supports numpy-style broadcasting operations.
To subclass, three methods need to be implemented:
1. dos(E): Density of states, in 1E19 states/(eV.cm^3). In physics, it is usually denoted as \(g(E)\) and defined as:
\[g(E) = 2 \int_{\substack{\text{BZ}}} \delta(E-E(k)) \frac{d^3k}{8 \pi ^3}\]2. trs(E, T): Transport distribution function, or spectral conductivity, in S/cm. In physics, it is usually denoted as \(\sigma_s(E, T)\), and is defined as:
\[\sigma_s(E, T) = q^2 \tau v^2 g(E)\]3. hall(E, T): Hall transport distribution function, in S.cm/(V.s) (i.e., the product of S/cm and cm^2/(V.s)). Here, it is denoted as \(\sigma_H(E, T)\), and is expressed as:
\[\sigma_H(E, T) = q \frac{\tau}{m_b^{\ast}} \cdot \sigma_s(E, T)\]Notably, energy (E) and Fermi level (EF) are in (eV), and temperatures (T) are in Kelvin (K), unless otherwise specified.
- cacheable = {'C', 'CCRH', 'CL', 'CS', 'EF', 'K_0', 'K_1', 'K_2', 'Ke', 'L', 'N', 'NH', 'PF', 'RH', 'S', 'T', 'U', 'UH'}¶
- abstract dos(E)¶
Density of states, in 1E19 state/(eV.cm^3).
- abstract trs(E, T)¶
Transport distribution function, in S/cm.
- abstract hall(E, T)¶
Hall transport distribution function, in S.cm/(V.s), i.e. [S/cm]^2 * [cm^3/C] = [S/cm] * [cm^2/(V.s)].
- compile(EF, T, max_level=2)¶
Compile the object under specified Fermi energies (EF) and temperatures (T) to avoid redundant integration computations. The max_level parameter of integer type specifies the highest exponent for caching data, with a default value of 2.
- clear()¶
Clear the cached data.
- fetch(_prop, args=(), index=None, default=None)¶
A proxy method to retrieve cached data (if compiled) or compute it directly (if not compiled). Typically, cached properties are named in the underscored form, i.e., as _XXX.
- 参数:
_prop (str) – Key of cached property.
args (tuple, optional) – Parameters passed to the proxy method, by default ().
index (int, optional) – The index of list or the order, by default None.
default (any, optional) – The default value if failed to retrieve, by default None.
- 返回:
Results.
- 返回类型:
any
- N(EF=None, T=None)¶
Carrier concentration, in 1E19 cm^(-3).
- K_0(EF=None, T=None)¶
Integration of transport distribution function, in S/cm.
- K_1(EF=None, T=None)¶
Integration of transport distribution function, in S/cm.
- K_2(EF=None, T=None)¶
Integration of transport distribution function, in S/cm.
- CCRH(EF=None, T=None)¶
Integration of Hall transport distribution function, in S.cm/(V.s).
- C(EF=None, T=None)¶
Electrical conductivity, in S/cm.
- CS(EF=None, T=None)¶
The product of electrical conductivity and Seebeck coefficient, in [S/cm]*[uV/K].
- S(EF=None, T=None)¶
Seebeck coefficient, in uV/K.
- PF(EF=None, T=None)¶
Power factor, in uW/(cm.K^2).
- CL(EF=None, T=None)¶
The product of electrical conductivity and Lorenz number (or electronic thermal conductivity divided by absolute temperature), in [W/(m.K)] / [K].
- L(EF=None, T=None)¶
Lorenz number, in 1E-8 W.Ohm/K^2.
- Ke(EF=None, T=None)¶
Electronic thermal conductivity, in W/(m.K).
- U(EF=None, T=None)¶
Carrier drift mobility, in cm^2/(V.s).
- RH(EF=None, T=None)¶
Hall coefficient, in cm^3/C.
- UH(EF=None, T=None)¶
Carrier Hall mobility, in cm^2/(V.s).
- NH(EF=None, T=None)¶
Hall carrier concentration, in 1E19 cm^-3.
- solve_EF(prop, value, T, near=0, between=None, **kwargs)¶
A wrapper for the scipy.optimize.root_scalar method used to solve for the Fermi energy from specified thermoelectric transport properties and temperatures.
- 参数:
prop (str) – The thermoelectric transport property, such as ‘S’, ‘C’.
value (ndarray) – The target value of the specified property.
T (ndarray) – The absolute temperature.
near (float, optional) – Initial guess for the Fermi energy value. Default is 0.
between (tuple like (float, float), optional) – Guess range for the Fermi energy. Default is None.Recommended for monotonic properties, use ‘near’.
**kwargs (any, optional) – Additional parameters to pass to scipy.optimize.root_scalar.
- 返回:
Fermi levels in eV.
- 返回类型:
ndarray
- class teflow.bandlib.MultiBand(bands, deltas, btypes=None)¶
基类:
BaseBand
A class for modeling multiple energy bands. Please note that its property calculations are now derived from sub-bands, rather than directly from the ‘dos’, ‘trs’, and ‘hall’ methods.
Initialize an instance of MultiBand.
- 参数:
bands (tuple of BaseBand) – A collection of instances of
BaseBand
.deltas (tuple of float) – Energy offsets for each band.
btypes (tuple or str, optional) – Types of bands for each entry in bands. This can be a sequence matching the length of bands, or a single value applicable to all bands. ‘C’ signifies conduction bands, while ‘V’ signifies valence bands. If not specified (None), band types will be inferred using the
guess_btypes()
method based on deltas.
- cacheable = {'C', 'CCRH', 'CL', 'CS', 'EF', 'K_0', 'K_1', 'K_2', 'Kbip', 'Ke', 'L', 'N', 'NH', 'PF', 'RH', 'S', 'T', 'U', 'UH'}¶
- dos(E)¶
Density of states, in 1E19 state/(eV.cm^3).
- trs(E, T)¶
Transport distribution function, in S/cm.
- hall(E, T)¶
Hall transport distribution function, in S.cm/(V.s), i.e. [S/cm]^2 * [cm^3/C] = [S/cm] * [cm^2/(V.s)].
- Kbip(EF=None, T=None)¶
Bipolar thermal conductivity, in W/(m.K).
- static guess_btypes(deltas: list)¶
Guess the band types (btypes) based on the given energy offsets (deltas). This method classifies each band as a conduction band (‘C’) for positive delta or a valence band (‘V’) for negative delta. Deltas close to zero (1E-6) are considered ambiguous and result in a ValueError. However, if non-zero values in deltas are consistently positive or negative (excluding near-zero values), all bands are classified as either conduction or valence bands accordingly.
Examples: deltas –> btypes
[ 0, 0.1, 0.2] –> [‘C’, ‘C’, ‘C’]
[0.1, 0.1, -0.2] –> [‘C’, ‘C’, ‘V’]
[ 0, -0.1, -0.2] –> [‘V’, ‘V’, ‘V’]
[ 0, 0.1, -0.2] –> ValueError (Failed to classify the first band)
- 参数:
deltas (list of float) – A list of floats representing the energy offsets for each band.
- 返回:
A list of strings (‘C’ for conduction bands, ‘V’ for valence bands) representing the band types. The length of the list is equal to the length of deltas.
- 返回类型:
list of str
- class teflow.bandlib.APSSPB(m_d=1, sigma0=1, Kmass=1)¶
基类:
BaseBand
A class for describing single parabolic band (SPB) model when the acoustic phonon scattering (APS) mechanism predominates. In this model, there are three key parameters determine thermoelectric properties:
The effective mass of the density of states \(m_d^{\ast}\)
The intrinsic electrical conductivity \(\sigma_0\)
The ratio of longitudinal to transverse effective masses \(K^{\ast}\)
These parameters correspond to class attributes m_d, sigma0, and Kmass, respectively. The core of constructing the class is obtaining the values of these parameters.
- m_d¶
Effective mass of the density of states in \(m_e\), primarily influencing carrier concentration calculations. It should be a positive float, by default 1.
- Type:
float, optional
- sigma0¶
Intrinsic electrical conductivity in S/cm, the core parameter influencing thermoelectric transport properties. It should be a positive float, by default 1.
- Type:
float, optional
- Kmass¶
The ratio of longitudinal to transverse effective mass, affecting calculations related to Hall coefficients. It should be a positive float, by default 1.
- Type:
float, optional
- dos(E)¶
Density of states, in 1E19 state/(eV.cm^3).
- trs(E, T)¶
Transport distribution function, in S/cm.
- hall(E, T)¶
Hall transport distribution function, in S.cm/(V.s), i.e. [S/cm]^2 * [cm^3/C] = [S/cm] * [cm^2/(V.s)].
- property Kstar¶
Anisotropy factor of effective mass for Hall effect.
- property UWT¶
Temperature-independent weighted mobility, in cm^2/(V.s).
- property PFmax¶
The maximum power factor, in uW/(cm.K^2).
- EFopt(T)¶
Optimal Fermi level for the maximum power factor, in eV
- classmethod from_DP(m1=1, m2=None, Nv=1, Cii=1, Ed=1)¶
Construct the class based on the Deformation Potential (DP) theory.
- 参数:
m1 (float, optional) – The ratio of the longitudinal effective mass to the static electron mass, by default 1.
m2 (float or None, optional) – The ratio of the transverse effective mass to the static electron mass. If None (default), it is set equal to m1.
Nv (int, optional) – Valley degeneracy, by default 1.
Cii (float, optional) – Elastic constant in GPa, by default 1.
Ed (float, optional) – Deformation potential in eV, by default 1.
- classmethod from_UWT(m_d=1, UWT=1, Kmass=1)¶
Construct the class based on temperature-independent weighted mobility.
- 参数:
m_d (float, optional) – Effective mass of the density of states in static electron mass, by default 1.
UWT (float, optional) – Temperature-independent weighted mobility in cm^2/(V.s), by default 1.
Kmass (float, optional) – The ratio of longitudinal to transverse effective mass, by default 1.
- classmethod valuate(dataS, dataT=None, dataC=None, dataN=None, hall=False, Kmass=1)¶
A class method for quickly evaluating the carriar transport properties (such as Lorenz number L and the temperature-independent weighted mobility UWT) based on experimental data.
- 参数:
dataS (ndarray) – Experimental data for Seebeck coefficient in uV/K.
dataT (ndarray, optional) – Experimental data for temperature in Kelvin. Defaults to None.
dataC (ndarray, optional) – Experimental data for electrical conductivity in S/cm. Defaults to None.
dataN (ndarray, optional) – Experimental data for carrier concentration in 1E19 cm^-3. Defaults to None.
hall (boolean, optional) – Whether to consider the Hall effect. Defaults to False.
Kmass (float, optional) – The ratio of longitudinal to transverse effective mass, by default 1.
- 返回:
An attribute dictionary containing:
L: Lorenz number in 1E-8 W.Ohm/K^2`.
Ke: Electronic thermal conductivity in W/(m.K), only if both dataT and dataC are provided.
sigma0: Intrinsic electrical conductivity in S/cm, only if both dataT and dataC are provided.
UWT: Temperature-independent weighted mobility in cm^2/(V.s), only if both dataT and dataC are provided.
PFmax: The maximum power factor in uW/(cm.K^2), only if both dataT and dataC are provided.
m_d: The ratio of effective mass to the electron mass, only if both dataT and dataN are provided.
Nopt: The optimal carrier concentration in 1E19 cm^(-3), only if both dataT and dataN are provided.
- 返回类型:
- class teflow.bandlib.APSSKB(m_d=1, sigma0=1, Eg=1, Kmass=1)¶
基类:
BaseBand
A class for describing single Kane band (SKB) model when the acoustic phonon scattering (APS) mechanism predominates. In contrast to the classical single parabolic band (SPB) model (see
APSSPB
), an additional parameter describing the energy band shape, namely the bandgap (Eg), is introduced.- m_d¶
Effective mass of the density of states in \(m_e\), primarily influencing carrier concentration calculations. It should be a positive float, by default 1.
- Type:
float, optional
- sigma0¶
Intrinsic electrical conductivity in S/cm, the core parameter influencing thermoelectric transport properties. It should be a positive float, by default 1.
- Type:
float, optional
- Eg¶
Parameter bandgap in eV, which significantly influences various transport properties. It should be a positive float, by default 1.
- Type:
float, optional
- Kmass¶
The ratio of longitudinal to transverse effective mass, affecting calculations related to Hall coefficients. It should be a positive float, by default 1.
- Type:
float, optional
- dos(E)¶
Density of states, in 1E19 state/(eV.cm^3).
- trs(E, T)¶
Transport distribution function, in S/cm.
- hall(E, T)¶
Hall transport distribution function, in S.cm/(V.s), i.e. [S/cm]^2 * [cm^3/C] = [S/cm] * [cm^2/(V.s)].
- property Kstar¶
Anisotropy factor of effective mass for Hall effect.
- property UWT¶
Temperature-independent weighted mobility, in cm^2/(V.s).
- classmethod from_DP(m1=1, m2=None, Nv=1, Cii=1, Ed=1, Eg=1)¶
Construct the class based on the Deformation Potential (DP) theory.
- 参数:
m1 (float, optional) – The ratio of the longitudinal effective mass to the static electron mass, by default 1.
m2 (float or None, optional) – The ratio of the transverse effective mass to the static electron mass. If None (default), it is set equal to m1.
Nv (int, optional) – Valley degeneracy, by default 1.
Cii (float, optional) – Elastic constant in GPa, by default 1.
Ed (float, optional) – Deformation potential in eV, by default 1.
Eg (float, optional) – Bandgap in eV, by default 1.
- classmethod from_UWT(m_d=1, UWT=1, Eg=1, Kmass=1)¶
Construct the class based on temperature-independent weighted mobility.
- 参数:
m_d (float, optional) – Effective mass of the density of states in static electron mass, by default 1.
UWT (float, optional) – Temperature-independent weighted mobility in cm^2/(V.s), by default 1.
Eg (float, optional) – Bandgap in eV, by default 1.
Kmass (float, optional) – The ratio of longitudinal to transverse effective mass, by default 1.
- classmethod valuate(dataS, dataT, dataC=None, dataN=None, Eg=1, hall=False, Kmass=1)¶
A class method for quickly evaluating the carriar transport properties (such as Lorenz number L and the temperature-independent weighted mobility UWT) based on experimental data.
- 参数:
dataS (ndarray) – Experimental data for Seebeck coefficient in uV/K.
dataT (ndarray) – Experimental data for temperature in Kelvin.
dataC (ndarray, optional) – Experimental data for electrical conductivity in S/cm. Defaults to None.
dataN (ndarray, optional) – Experimental data for carrier concentration in 1E19 cm^-3. Defaults to None.
Eg (float, optional) – Bandgap in eV, by default 1.
hall (boolean, optional) – Whether to consider the Hall effect. Defaults to False.
Kmass (float, optional) – The ratio of longitudinal to transverse effective mass, by default 1.
- 返回:
An attribute dictionary containing:
L: Lorenz number in 1E-8 W.Ohm/K^2`.
Ke: Electronic thermal conductivity in W/(m.K), only if dataC is provided.
sigma0: Intrinsic electrical conductivity in S/cm, only if dataC is provided.
UWT: Temperature-independent weighted mobility in cm^2/(V.s), only if dataC is provided.
m_d: The ratio of effective mass to the electron mass, only if dataN is provided.
- 返回类型:
- class teflow.bandlib.LinearBand(vF=1, sigma0=1)¶
基类:
BaseBand
A class for describing linear band model:
\[\begin{split}E &= v_F \cdot \hbar |k| \\ g(E) &= \frac{E^2}{\pi^2 \hbar^3 v_F^3} \\ \sigma_s(E, T) &= \sigma_0 \text{ when } E > 0\end{split}\]- sigma0¶
Intrinsic electrical conductivity in S/cm, the core parameter influencing thermoelectric transport properties. It should be a positive float, by default 1.
- Type:
float, optional
- vF¶
Fermi velocity in Angstrom/fs, i.e. 10^5 m/s. It should be a positive float, by default 1.
- Type:
float, optional
- dos(E)¶
Density of states, in 1E19 state/(eV.cm^3).
- trs(E, T)¶
Transport distribution function, in S/cm.
- hall(E, T)¶
Hall transport distribution function. Not implemented now!
- class teflow.bandlib.RSPB¶
基类:
object
A class for modeling the Restructured Single Parabolic Band (RSPB) model in thermoelectric materials. This class contains three types of attributes:
Ending with ‘r’: Represents reduced properties, usually requiring a reduced carrier concentration (Nr) as input. An optional parameter factor can also be passed in, which defaults to 1. This indicates the return of reduced material property values. If a factor corresponding to the material property (indicated by attributes ending with ‘0’) is passed in, the material property values in common units will be returned.
Ending with ‘0’: Represents factors for material properties in common units.
Starting with ‘i’: Inverse functions of the reduced properties, used to solve the reduced carrier concentration from reduced material property values (or property values in common units, determined by the optional parameter factor).
- N0 = 2.5094122298407915¶
Unit:: 1E19 cm^-3
- S0 = 86.17333262145179¶
Unit:: uV/K
- L0 = 0.7425843255087367¶
Unit:: 1E-8 W.Ohm/K^2
- C0 = 4.020521639724753¶
Unit:: S/cm
- PF0 = 0.029855763500282857¶
Unit:: uW/(cm.K^2)
- static Nmr(Nr, factor=1, m_d=1, T=300)¶
- static Sr(Nr, factor=1, delta: float = 0.075)¶
- static iSr(Sr, factor=1, delta: float = 0.075)¶
- static Ur(Nr, factor=1)¶
- static iUr(Ur, factor=1)¶
- static Lr(Nr, factor=1)¶
- static iLr(Lr, factor=1)¶
- classmethod Cr(Nr, factor=1, UWT=1)¶
- classmethod PFr(Nr, factor=1, UWT=1, delta: float = 0.075)¶
- classmethod valuate(dataC, dataS, dataT=None, dataN=None, delta=0.075)¶
A class method for quickly evaluating the carriar transport properties (such as Lorenz number L and the temperature-independent weighted mobility UWT) based on experimental data.
- 参数:
dataC (ndarray) – Experimental data for electrical conductivity in S/cm.
dataS (ndarray) – Experimental data for Seebeck coefficient in uV/K.
dataT (ndarray, optional) – Experimental data for temperature in Kelvin. Used in conjunction with dataN to calculate m_eff. Defaults to None.
dataN (ndarray, optional) – Experimental data for carrier concentration in 1E19 cm^-3. Used in conjunction with dataT to calculate m_eff. Defaults to None.
delta (float, optional) – A parameter related to the Seebeck coefficient, defaults to 0.075.
- 返回:
An attribute dictionary containing:
L: Lorenz number in 1E-8 W.Ohm/K^2`.
UWT: Temperature-independent weighted mobility in cm^2/(V.s).
PFmax: The maximum power factor in uW/(cm.K^2).
Ke: Electronic thermal conductivity in W/(m.K), only if both dataT and dataN are provided.
m_eff: The ratio of effective mass to the electron mass, only if both dataT and dataN are provided.
Nopt: The optimal carrier concentration in 1E19 cm^(-3), only if both dataT and dataN are provided.
- 返回类型:
- teflow.bandlib.bandline(k, m_b=1, k0=0, E0=0, Eg=None)¶
Model an idealized electronic dispersion relation based on the given parameters.
- 参数:
k (ndarray) – Wave vector in rad/Ang (radians per angstrom), i.e., containing the \(2 \pi\) factor.
m_b (ndarray, optional) – Ratio of the band effective mass to the electron mass. Defaults to 1.
k0 (ndarray, optional) – Wave vector offset in rad/Ang. Defaults to 0.
E0 (ndarray, optional) – Energy offset in eV. Defaults to 0.
Eg (ndarray, optional) – Bandgap in eV. If set to None (default), it represents a parabolic band.
- 返回:
Energy values in eV.
- 返回类型:
ndarray
- teflow.bandlib.dosline(E, m_d=1, E0=0, Vcell=1, Eg=None)¶
Model an idealized density-of-states (DOS) based on the given parameters.
- 参数:
E (ndarray) – Energy values in eV.
m_d (ndarray, optional) – Ratio of the DOS effective mass to the electron mass. Defaults to 1.
E0 (ndarray, optional) – Energy offset in eV. Defaults to 0.
Vcell (ndarray, optional) – Volume of the unit cell in cubic angstrom (Ang^3). Defaults to 1.
Eg (ndarray, optional) – Bandgap in eV. If set to None (default), it represents a parabolic band.
- 返回:
Density-of-states values in states/(eV.cell). When Vcell is set to its default value of 1, the unit is also equivalent to states/(eV.Ang^3) or 1E24 states/(eV.cm^3).
- 返回类型:
ndarray
- teflow.bandlib.parse_Bands(filename, specify=None)¶
Parse bands model, and label list of props from a config file