PLaSK library
|
Material which consist of several real materials. More...
#include <plask/material/mixed.hpp>
Public Member Functions | |
template<typename ... Args> | |
MixedMaterial (Args &&... params) | |
Delegate all constructor to materials vector. | |
void | normalizeWeights () |
Scale weights in materials vector, making sum of this weights equal to 1. | |
MixedMaterial & | add (const shared_ptr< Material > &material, double weight) |
Add material with weight to materials vector. | |
virtual | ~MixedMaterial () |
std::string | name () const override |
Get short (without composition and doping amounts) name of material. | |
Kind | kind () const override |
double | lattC (double T, char x) const override |
Get lattice constant (Å). | |
double | Eg (double T, double e=0., char point=' *') const override |
Get energy gap Eg (eV) | |
double | CB (double T, double e=0., char point=' *') const override |
Get conduction band level CB (eV). | |
double | VB (double T, double e=0., char point=' *', char hole='H') const override |
Get valence band level VB(eV). | |
double | Dso (double T, double e=0.) const override |
Get split-off energy Dso (eV). | |
double | Mso (double T, double e=0.) const override |
Get split-off mass Mso [ ]. | |
Tensor2< double > | Me (double T, double e=0., char point=' *') const override |
Get electron effective mass Me in in-plane (lateral) and cross-plane (vertical) direction [ ]. | |
Tensor2< double > | Mhh (double T, double e=0.) const override |
Get heavy hole effective mass Mhh in in-plane (lateral) and cross-plane (vertical) direction [ ]. | |
Tensor2< double > | Mlh (double T, double e=0.) const override |
Get light hole effective mass Mlh in in-plane (lateral) and cross-plane (vertical) direction [ ]. | |
Tensor2< double > | Mh (double T, double e=0.) const override |
Get hole effective mass Mh in in-plane (lateral) and cross-plane (vertical) direction [ ]. | |
double | ac (double T) const override |
Get hydrostatic deformation potential for the conduction band ac (eV). | |
double | av (double T) const override |
Get hydrostatic deformation potential for the valence band av (eV). | |
double | b (double T) const override |
Get shear deformation potential b (eV). | |
double | d (double T) const override |
Get shear deformation potential d (eV). | |
double | c11 (double T) const override |
Get elastic constant c11 (GPa). | |
double | c12 (double T) const override |
Get elastic constant c12 (GPa). | |
double | c44 (double T) const override |
Get elastic constant c44 (GPa). | |
double | eps (double T) const override |
Get dielectric constant EpsR (-). | |
double | chi (double T, double e=0., char point=' *') const override |
Get electron affinity Chi(eV). | |
double | Ni (double T=0.) const override |
Get intrinsic carrier concentration Ni [cm^(-3)]. | |
double | Nf (double T=0.) const override |
Get free carrier concentration N [cm^(-3)]. | |
double | EactD (double T) const override |
Get donor ionisation energy EactD (eV). | |
double | EactA (double T) const override |
Get acceptor ionisation energy EactA (eV). | |
Tensor2< double > | mob (double T) const override |
Get mobility in-plane (lateral) and cross-plane (vertical) direction [cm^2/(V*s)]. | |
Tensor2< double > | cond (double T) const override |
Get electrical conductivity sigma in-plane (lateral) and cross-plane (vertical) direction [S/m]. | |
ConductivityType | condtype () const override |
Get electrical conductivity type. | |
double | A (double T) const override |
Get monomolecular recombination coefficient A (1/s). | |
double | B (double T) const override |
Get radiative recombination coefficient B (cm^3/s). | |
double | C (double T) const override |
Get Auger recombination coefficient C (cm^6/s). | |
double | D (double T) const override |
Get ambipolar diffusion coefficient D (cm^2/s). | |
Tensor2< double > | thermk (double T, double h) const override |
Get thermal conductivity in in-plane (lateral) and cross-plane (vertical) direction k [W/(m*K)]. | |
double | dens (double T) const override |
Get density (kg/m^3). | |
double | cp (double T) const override |
Get specific heat at constant pressure [J/(kg*K)]. | |
double | nr (double lam, double T, double n=0.0) const override |
Get refractive index Nr (-). | |
double | absp (double lam, double T) const override |
Get absorption coefficient alpha [cm^(-1)]. | |
dcomplex | Nr (double lam, double T, double n=0.0) const override |
Get refractive index Nr (-). | |
Tensor3< dcomplex > | Eps (double lam, double T, double n=0.0) const override |
Get Hermitian permittivity tensor ε (-). | |
Tensor2< double > | mobe (double T) const override |
Get electron mobility in-plane (lateral) and cross-plane (vertical) direction [cm^2/(V*s)]. | |
Tensor2< double > | mobh (double T) const override |
Get hole mobility in-plane (lateral) and cross-plane (vertical) direction [cm^2/(V*s)]. | |
double | taue (double T) const override |
Get monomolecular electrons lifetime (ns). | |
double | tauh (double T) const override |
Get monomolecular holes lifetime (ns). | |
double | Ce (double T) const override |
Get Auger recombination coefficient C for electrons (cm^6/s). | |
double | Ch (double T) const override |
Get Auger recombination coefficient C for holes (cm^6/s). | |
double | e13 (double T) const override |
Get piezoelectric constant e13 (C/m^2) | |
double | e15 (double T) const override |
Get piezoelectric constant e13 (C/m^2) | |
double | e33 (double T) const override |
Get piezoelectric constant e33 (C/m^2) | |
double | c13 (double T) const override |
Get elastic constant c13 (GPa). | |
double | c33 (double T) const override |
Get elastic constant c33 (GPa). | |
double | Psp (double T) const override |
Get spontaneous polarization (C/m^2) | |
double | Na () const override |
Get acceptor concentration Na [cm^(-3)]. | |
double | Nd () const override |
Get donor concentration Nd [cm^(-3)]. | |
Public Member Functions inherited from plask::Material | |
virtual OmpLockGuard | lock () const |
Create OpenMP lock guard. | |
virtual | ~Material () |
Do nothing. | |
std::string | dopant () const |
Get dopant material name (part of name after ':', possibly empty). | |
std::string | nameWithoutDopant () const |
Get material name without dopant (without ':' and part of name after it). | |
virtual std::string | str () const |
Get full (with composition and doping amounts) name of material. | |
bool | isAlloy () const |
Check if this material is alloy. | |
virtual Composition | composition () const |
If this material is alloy return its composition. | |
virtual double | doping () const |
Doping concentration. | |
virtual double | y1 () const |
Get Luttinger parameter γ1 (-). | |
virtual double | y2 () const |
Get Luttinger parameter γ2 (-). | |
virtual double | y3 () const |
Get Luttinger parameter γ3 (-). | |
bool | operator== (const Material &other) const |
Check if this material is equal to other (checks type and uses isEqual). | |
bool | operator== (shared_ptr< const Material > other) const |
Check if this material is equal to other (checks type and uses isEqual). | |
bool | operator!= (const Material &other) const |
Check if this material is different from other (checks type and uses isEqual). | |
bool | operator!= (shared_ptr< const Material > other) const |
Check if this material is different from other (checks type and uses isEqual). | |
Public Attributes | |
std::vector< std::pair< shared_ptr< Material >, double > > | materials |
Vector of materials and its weights. | |
Additional Inherited Members | |
Public Types inherited from plask::Material | |
enum | Kind : unsigned { GENERIC = (1<<0) , EMPTY = (1<<1) , SEMICONDUCTOR = (1<<2) , OXIDE = (1<<3) , DIELECTRIC = (1<<4) , METAL = (1<<5) , LIQUID_CRYSTAL = (1<<6) , MIXED = (1<<7) } |
Material kind. More... | |
enum | ConductivityType { CONDUCTIVITY_N , CONDUCTIVITY_I , CONDUCTIVITY_P , CONDUCTIVITY_OTHER , CONDUCTIVITY_UNDETERMINED } |
Material conductivity type. More... | |
typedef std::map< std::string, double > | Composition |
Type for material composition. | |
Static Public Member Functions inherited from plask::Material | |
static bool | isNameWithDopant (const std::string &material_name) |
Check if dopant is included in material_name . | |
static bool | isSimpleMaterialName (const std::string &material_name) |
Check if material_name is name of simple material. | |
static std::pair< std::string, double > | firstCompositionObject (const char *&begin, const char *end, const char *fullname) |
Parse composition object from [begin, end) string. | |
static Composition | completeComposition (const Composition &composition) |
Change NaN-s in material composition to calculated amounts. | |
static Composition | minimalComposition (const Composition &composition) |
Change material composition to minimal set. | |
static Composition | parseComposition (const char *begin, const char *end, const char *fullname=nullptr) |
Parse composition from string, or string fragment. | |
static Composition | parseComposition (const std::string &composition_str, const std::string &fullname="") |
Parse composition from string. | |
static void | parseDopant (const char *begin, const char *end, std::string &dopant_elem_name, double &doping, bool allow_dopant_without_amount, const char *fullname) |
Parse information about dopant from string. | |
static void | parseDopant (const std::string &dopant, std::string &dopant_elem_name, double &doping, bool allow_dopant_without_amount, const std::string &fullname) |
Parse information about dopant from string. | |
static std::vector< std::string > | parseObjectsNames (const char *begin, const char *end) |
Split object name to objects. | |
static std::vector< std::string > | parseObjectsNames (const std::string &allNames) |
Split object name to objects. | |
Protected Member Functions inherited from plask::Material | |
virtual bool | isEqual (const Material &other) const |
Check if this material is equal to other. | |
void | throwNotImplemented (const std::string &method_name) const |
Throw exception with information that method with name method_name is not implemented for this material. | |
Material which consist of several real materials.
It calculate averages for all properties.
Example:
|
inlinevirtual |
Get monomolecular recombination coefficient A (1/s).
T | temperature (K) |
Reimplemented from plask::Material.
Get absorption coefficient alpha [cm^(-1)].
lam | Wavelength (nm) |
T | temperature (K) |
n | injected carriers concentration (1/cm) |
Reimplemented from plask::Material.
Get hydrostatic deformation potential for the conduction band ac (eV).
T | temperature (K) |
Reimplemented from plask::Material.
MixedMaterial & plask::MixedMaterial::add | ( | const shared_ptr< Material > & | material, |
double | weight | ||
) |
Get hydrostatic deformation potential for the valence band av (eV).
T | temperature (K) |
Reimplemented from plask::Material.
Get shear deformation potential b (eV).
T | temperature (K) |
Reimplemented from plask::Material.
Get radiative recombination coefficient B (cm^3/s).
T | temperature (K) |
Reimplemented from plask::Material.
Get Auger recombination coefficient C (cm^6/s).
T | temperature (K) |
Reimplemented from plask::Material.
Get elastic constant c11 (GPa).
T | temperature (K) |
Reimplemented from plask::Material.
Get elastic constant c12 (GPa).
T | temperature (K) |
Reimplemented from plask::Material.
Get elastic constant c13 (GPa).
T | temperature (K) |
Reimplemented from plask::Material.
Get elastic constant c33 (GPa).
T | temperature (K) |
Reimplemented from plask::Material.
Get elastic constant c44 (GPa).
T | temperature (K) |
Reimplemented from plask::Material.
Get conduction band level CB (eV).
T | temperature (K) |
e | lateral strain (-) |
point | point in the Brillouin zone (-) |
Reimplemented from plask::Material.
Get Auger recombination coefficient C for electrons (cm^6/s).
T | temperature (K) |
Reimplemented from plask::Material.
Get Auger recombination coefficient C for holes (cm^6/s).
T | temperature (K) |
Reimplemented from plask::Material.
|
overridevirtual |
Get electron affinity Chi(eV).
T | temperature (K) |
e | lateral strain (-) |
point | point in Brillouin zone (-) |
Reimplemented from plask::Material.
Get electrical conductivity sigma in-plane (lateral) and cross-plane (vertical) direction [S/m].
T | temperature (K) |
Reimplemented from plask::Material.
|
overridevirtual |
Get electrical conductivity type.
In semiconductors this indicates what type of carriers Nf refers to.
Reimplemented from plask::Material.
Get specific heat at constant pressure [J/(kg*K)].
T | temperature (K) |
Reimplemented from plask::Material.
Get shear deformation potential d (eV).
T | temperature (K) |
Reimplemented from plask::Material.
Get ambipolar diffusion coefficient D (cm^2/s).
T | temperature (K) |
Reimplemented from plask::Material.
Get density (kg/m^3).
T | temperature (K) |
Reimplemented from plask::Material.
Get split-off energy Dso (eV).
T | temperature (K) |
e | lateral strain (-) |
Reimplemented from plask::Material.
Get piezoelectric constant e13 (C/m^2)
T | temperature (K) |
Reimplemented from plask::Material.
Get piezoelectric constant e13 (C/m^2)
T | temperature (K) |
Reimplemented from plask::Material.
Get piezoelectric constant e33 (C/m^2)
T | temperature (K) |
Reimplemented from plask::Material.
Get acceptor ionisation energy EactA (eV).
T | temperature (K) |
Reimplemented from plask::Material.
Get donor ionisation energy EactD (eV).
T | temperature (K) |
Reimplemented from plask::Material.
Get energy gap Eg (eV)
T | temperature (K) |
e | lateral strain (-) |
point | point in the Brillouin zone (-) |
Reimplemented from plask::Material.
|
overridevirtual |
Get Hermitian permittivity tensor ε (-).
lam | Wavelength (nm) |
T | temperature (K) |
n | injected carriers concentration (1/cm) |
Reimplemented from plask::Material.
Get dielectric constant EpsR (-).
T | temperature (K) |
Reimplemented from plask::Material.
|
overridevirtual |
Get lattice constant (Å).
T | temperature (K) |
x | lattice parameter (-) |
Reimplemented from plask::Material.
|
overridevirtual |
Get electron effective mass Me in in-plane (lateral) and cross-plane (vertical) direction [ ].
T | temperature (K) |
e | lateral strain (-) |
point | point in Brillouin zone (-) |
Reimplemented from plask::Material.
Get hole effective mass Mh in in-plane (lateral) and cross-plane (vertical) direction [ ].
T | temperature (K) |
e | lateral strain (-) |
Reimplemented from plask::Material.
Get heavy hole effective mass Mhh in in-plane (lateral) and cross-plane (vertical) direction [ ].
T | temperature (K) |
e | lateral strain (-) |
Reimplemented from plask::Material.
Get light hole effective mass Mlh in in-plane (lateral) and cross-plane (vertical) direction [ ].
T | temperature (K) |
e | lateral strain (-) |
Reimplemented from plask::Material.
Get mobility in-plane (lateral) and cross-plane (vertical) direction [cm^2/(V*s)].
T | temperature (K) |
Reimplemented from plask::Material.
Get electron mobility in-plane (lateral) and cross-plane (vertical) direction [cm^2/(V*s)].
T | temperature (K) |
Reimplemented from plask::Material.
Get hole mobility in-plane (lateral) and cross-plane (vertical) direction [cm^2/(V*s)].
T | temperature (K) |
Reimplemented from plask::Material.
Get split-off mass Mso [ ].
T | temperature (K) |
e | lateral strain (-) |
Reimplemented from plask::Material.
|
overridevirtual |
Get acceptor concentration Na [cm^(-3)].
Reimplemented from plask::Material.
|
overridevirtual |
Get short (without composition and doping amounts) name of material.
Implements plask::Material.
|
overridevirtual |
Get donor concentration Nd [cm^(-3)].
Reimplemented from plask::Material.
Get free carrier concentration N [cm^(-3)].
T | temperature (K) |
Reimplemented from plask::Material.
Get intrinsic carrier concentration Ni [cm^(-3)].
T | temperature (K) |
Reimplemented from plask::Material.
void plask::MixedMaterial::normalizeWeights | ( | ) |
Get refractive index Nr (-).
lam | Wavelength (nm) |
T | temperature (K) |
n | injected carriers concentration (1/cm) |
Reimplemented from plask::Material.
Get refractive index Nr (-).
lam | Wavelength (nm) |
T | temperature (K) |
Reimplemented from plask::Material.
Get spontaneous polarization (C/m^2)
T | temperature (K) |
Reimplemented from plask::Material.
Get monomolecular electrons lifetime (ns).
T | temperature (K) |
Reimplemented from plask::Material.
Get monomolecular holes lifetime (ns).
T | temperature (K) |
Reimplemented from plask::Material.
Get thermal conductivity in in-plane (lateral) and cross-plane (vertical) direction k [W/(m*K)].
T | temperature (K) |
h | layer thickness (µm) |
Reimplemented from plask::Material.
|
overridevirtual |
Get valence band level VB(eV).
T | temperature (K) |
e | lateral strain (-) |
point | point in Brillouin zone (-) |
hole | hole type ('H'eavy or 'L'ight) (-) |
Reimplemented from plask::Material.