PLaSK library
|
Generic material, which can actually be instantiated. More...
#include <plask/material/material.hpp>
Public Member Functions | |
std::string | name () const override |
Get short (without composition and doping amounts) name of material. | |
Material::Kind | kind () const override |
bool | isEqual (const Material &) const override |
Check if this material is equal to other. | |
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 | lattC (double T, char x) const |
Get lattice constant (Å). | |
virtual double | Eg (double T, double e=0., char point=' *') const |
Get energy gap Eg (eV) | |
virtual double | CB (double T, double e=0., char point=' *') const |
Get conduction band level CB (eV). | |
virtual double | VB (double T, double e=0., char point=' *', char hole='H') const |
Get valence band level VB(eV). | |
virtual double | Dso (double T, double e=0.) const |
Get split-off energy Dso (eV). | |
virtual double | Mso (double T, double e=0.) const |
Get split-off mass Mso [ ]. | |
virtual Tensor2< double > | Me (double T, double e=0., char point=' *') const |
Get electron effective mass Me in in-plane (lateral) and cross-plane (vertical) direction [ ]. | |
virtual Tensor2< double > | Mhh (double T, double e=0.) const |
Get heavy hole effective mass Mhh in in-plane (lateral) and cross-plane (vertical) direction [ ]. | |
virtual Tensor2< double > | Mlh (double T, double e=0.) const |
Get light hole effective mass Mlh in in-plane (lateral) and cross-plane (vertical) direction [ ]. | |
virtual Tensor2< double > | Mh (double T, double e=0.) const |
Get hole effective mass Mh in in-plane (lateral) and cross-plane (vertical) direction [ ]. | |
virtual double | y1 () const |
Get Luttinger parameter γ1 (-). | |
virtual double | y2 () const |
Get Luttinger parameter γ2 (-). | |
virtual double | y3 () const |
Get Luttinger parameter γ3 (-). | |
virtual double | ac (double T) const |
Get hydrostatic deformation potential for the conduction band ac (eV). | |
virtual double | av (double T) const |
Get hydrostatic deformation potential for the valence band av (eV). | |
virtual double | b (double T) const |
Get shear deformation potential b (eV). | |
virtual double | d (double T) const |
Get shear deformation potential d (eV). | |
virtual double | c11 (double T) const |
Get elastic constant c11 (GPa). | |
virtual double | c12 (double T) const |
Get elastic constant c12 (GPa). | |
virtual double | c44 (double T) const |
Get elastic constant c44 (GPa). | |
virtual double | eps (double T) const |
Get dielectric constant EpsR (-). | |
virtual Tensor3< dcomplex > | Eps (double lam, double T, double n=0) const |
Get Hermitian permittivity tensor ε (-). | |
virtual double | chi (double T, double e=0., char point=' *') const |
Get electron affinity Chi(eV). | |
virtual double | Ni (double T) const |
Get intrinsic carrier concentration Ni [cm^(-3)]. | |
virtual double | Nf (double T) const |
Get free carrier concentration N [cm^(-3)]. | |
virtual double | EactD (double T) const |
Get donor ionisation energy EactD (eV). | |
virtual double | EactA (double T) const |
Get acceptor ionisation energy EactA (eV). | |
virtual Tensor2< double > | mob (double T) const |
Get mobility in-plane (lateral) and cross-plane (vertical) direction [cm^2/(V*s)]. | |
virtual Tensor2< double > | cond (double T) const |
Get electrical conductivity sigma in-plane (lateral) and cross-plane (vertical) direction [S/m]. | |
virtual ConductivityType | condtype () const |
Get electrical conductivity type. | |
virtual double | A (double T) const |
Get monomolecular recombination coefficient A (1/s). | |
virtual double | B (double T) const |
Get radiative recombination coefficient B (cm^3/s). | |
virtual double | C (double T) const |
Get Auger recombination coefficient C (cm^6/s). | |
virtual double | D (double T) const |
Get ambipolar diffusion coefficient D (cm^2/s). | |
virtual Tensor2< double > | thermk (double T, double h=INFINITY) const |
Get thermal conductivity in in-plane (lateral) and cross-plane (vertical) direction k [W/(m*K)]. | |
virtual double | dens (double T) const |
Get density (kg/m^3). | |
virtual double | cp (double T) const |
Get specific heat at constant pressure [J/(kg*K)]. | |
virtual double | nr (double lam, double T, double n=0) const |
Get refractive index Nr (-). | |
virtual double | absp (double lam, double T) const |
Get absorption coefficient alpha [cm^(-1)]. | |
virtual dcomplex | Nr (double lam, double T, double n=0) const |
Get refractive index Nr (-). | |
virtual Tensor2< double > | mobe (double T) const |
Get electron mobility in-plane (lateral) and cross-plane (vertical) direction [cm^2/(V*s)]. | |
virtual Tensor2< double > | mobh (double T) const |
Get hole mobility in-plane (lateral) and cross-plane (vertical) direction [cm^2/(V*s)]. | |
virtual double | taue (double T) const |
Get monomolecular electrons lifetime (ns). | |
virtual double | tauh (double T) const |
Get monomolecular holes lifetime (ns). | |
virtual double | Ce (double T) const |
Get Auger recombination coefficient C for electrons (cm^6/s). | |
virtual double | Ch (double T) const |
Get Auger recombination coefficient C for holes (cm^6/s). | |
virtual double | e13 (double T) const |
Get piezoelectric constant e13 (C/m^2) | |
virtual double | e15 (double T) const |
Get piezoelectric constant e13 (C/m^2) | |
virtual double | e33 (double T) const |
Get piezoelectric constant e33 (C/m^2) | |
virtual double | c13 (double T) const |
Get elastic constant c13 (GPa). | |
virtual double | c33 (double T) const |
Get elastic constant c33 (GPa). | |
virtual double | Psp (double T) const |
Get spontaneous polarization (C/m^2) | |
virtual double | Na () const |
Get acceptor concentration Na [cm^(-3)]. | |
virtual double | Nd () const |
Get donor concentration Nd [cm^(-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). | |
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 | |
void | throwNotImplemented (const std::string &method_name) const |
Throw exception with information that method with name method_name is not implemented for this material. | |
Generic material, which can actually be instantiated.
Definition at line 949 of file material.hpp.
Check if this material is equal to other.
Default implementation compares string representation of this and other. For simple materials (without parameters) this should just returns true.
other | other material witch has the same type as this (in implementation you can safty static_cast it to type of this) |
true
only if this is equal to other
Reimplemented from plask::Material.
Definition at line 952 of file material.hpp.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Get short (without composition and doping amounts) name of material.
Implements plask::Material.
Definition at line 950 of file material.hpp.