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

Generic material, which can actually be instantiated. More...

#include <plask/material/material.hpp>

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

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 [ $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).
 

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
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

Generic material, which can actually be instantiated.

Definition at line 949 of file material.hpp.

Member Function Documentation

◆ isEqual()

bool plask::GenericMaterial::isEqual ( const Material other) const
inlineoverridevirtual

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.

Parameters
otherother material witch has the same type as this (in implementation you can safty static_cast it to type of this)
Returns
true only if this is equal to other

Reimplemented from plask::Material.

Definition at line 952 of file material.hpp.

◆ kind()

Material::Kind plask::GenericMaterial::kind ( ) const
inlineoverridevirtual
Returns
material kind

Implements plask::Material.

Definition at line 951 of file material.hpp.

◆ name()

std::string plask::GenericMaterial::name ( ) const
inlineoverridevirtual

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

Returns
material name

Implements plask::Material.

Definition at line 950 of file material.hpp.


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