PLaSK library
Loading...
Searching...
No Matches
plask::Semiconductor Struct Reference

Base material class for all semiconductors and similar materials. More...

#include <plask/material/material.hpp>

Inheritance diagram for plask::Semiconductor:
[legend]
Collaboration diagram for plask::Semiconductor:
[legend]

Public Member Functions

std::string name () const override
 Get short (without composition and doping amounts) name of material.
 
Kind kind () const override
 
- 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 [ $m_0$].
 
virtual Tensor2< doubleMe (double T, double e=0., char point=' *') const
 Get electron effective mass Me in in-plane (lateral) and cross-plane (vertical) direction [ $m_0$].
 
virtual Tensor2< doubleMhh (double T, double e=0.) const
 Get heavy hole effective mass Mhh in in-plane (lateral) and cross-plane (vertical) direction [ $m_0$].
 
virtual Tensor2< doubleMlh (double T, double e=0.) const
 Get light hole effective mass Mlh in in-plane (lateral) and cross-plane (vertical) direction [ $m_0$].
 
virtual Tensor2< doubleMh (double T, double e=0.) const
 Get hole effective mass Mh in in-plane (lateral) and cross-plane (vertical) direction [ $m_0$].
 
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< doublemob (double T) const
 Get mobility in-plane (lateral) and cross-plane (vertical) direction [cm^2/(V*s)].
 
virtual Tensor2< doublecond (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< doublethermk (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< doublemobe (double T) const
 Get electron mobility in-plane (lateral) and cross-plane (vertical) direction [cm^2/(V*s)].
 
virtual Tensor2< doublemobh (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).
 

Static Public Attributes

static constexpr const charNAME = "semiconductor"
 

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, doubleComposition
 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, doublefirstCompositionObject (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.
 

Detailed Description

Base material class for all semiconductors and similar materials.

Definition at line 902 of file material.hpp.

Member Function Documentation

◆ kind()

Material::Kind plask::Semiconductor::kind ( ) const
overridevirtual
Returns
material kind

Implements plask::Material.

Definition at line 425 of file material.cpp.

◆ name()

std::string plask::Semiconductor::name ( ) const
overridevirtual

Get short (without composition and doping amounts) name of material.

Returns
material name

Implements plask::Material.

Definition at line 424 of file material.cpp.

Member Data Documentation

◆ NAME

constexpr const char* plask::Semiconductor::NAME = "semiconductor"
staticconstexpr

Definition at line 903 of file material.hpp.


The documentation for this struct was generated from the following files: