PLaSK library
Loading...
Searching...
No Matches
plask::materials::Air Struct Reference

Represent air, its physical properties. More...

#include <plask/material/air.hpp>

Inheritance diagram for plask::materials::Air:
[legend]
Collaboration diagram for plask::materials::Air:
[legend]

Public Member Functions

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, char point) const override
 Get energy gap Eg (eV)
 
double CB (double T, double e, char point) const override
 Get conduction band level CB (eV).
 
double VB (double T, double e, char point, char hole) const override
 Get valence band level VB(eV).
 
double Dso (double T, double e) const override
 Get split-off energy Dso (eV).
 
double Mso (double T, double e) const override
 Get split-off mass Mso [ $m_0$].
 
Tensor2< doubleMe (double T, double e, char point) const override
 Get electron effective mass Me in in-plane (lateral) and cross-plane (vertical) direction [ $m_0$].
 
Tensor2< doubleMhh (double T, double e) const override
 Get heavy hole effective mass Mhh in in-plane (lateral) and cross-plane (vertical) direction [ $m_0$].
 
Tensor2< doubleMlh (double T, double e) const override
 Get light hole effective mass Mlh in in-plane (lateral) and cross-plane (vertical) direction [ $m_0$].
 
Tensor2< doubleMh (double T, double e) const override
 Get hole effective mass Mh in in-plane (lateral) and cross-plane (vertical) direction [ $m_0$].
 
double eps (double T) const override
 Get dielectric constant EpsR (-).
 
double chi (double T, double e, char point) const override
 Get electron affinity Chi(eV).
 
double Ni (double T) const override
 Get intrinsic carrier concentration Ni [cm^(-3)].
 
double Nf (double T) 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< doublemob (double T) const override
 Get mobility in-plane (lateral) and cross-plane (vertical) direction [cm^2/(V*s)].
 
Tensor2< doublecond (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< doublethermk (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) const override
 Get refractive index Nr (-).
 
double absp (double lam, double T) const override
 Get absorption coefficient alpha [cm^(-1)].
 
Tensor2< doublemobe (double T) const override
 Get electron mobility in-plane (lateral) and cross-plane (vertical) direction [cm^2/(V*s)].
 
Tensor2< doublemobh (double T) const override
 Get hole mobility in-plane (lateral) and cross-plane (vertical) direction [cm^2/(V*s)].
 
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 (-).
 
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 Tensor3< dcomplex > Eps (double lam, double T, double n=0) const
 Get Hermitian permittivity tensor ε (-).
 
virtual dcomplex Nr (double lam, double T, double n=0) const
 Get refractive index Nr (-).
 
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)
 
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 = "air"
 

Protected Member Functions

bool isEqual (const Material &other) const override
 Check if this material is equal to other.
 
- 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.
 

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.
 

Detailed Description

Represent air, its physical properties.

Definition at line 28 of file air.hpp.

Member Function Documentation

◆ A()

double plask::materials::Air::A ( double  T) const
overridevirtual

Get monomolecular recombination coefficient A (1/s).

Parameters
Ttemperature (K)
Returns
monomolecular recombination coefficient A (1/s)

Reimplemented from plask::Material.

Definition at line 27 of file air.cpp.

◆ absp()

double plask::materials::Air::absp ( double  lam,
double  T 
) const
overridevirtual

Get absorption coefficient alpha [cm^(-1)].

Parameters
lamWavelength (nm)
Ttemperature (K)
ninjected carriers concentration (1/cm)
Returns
absorption coefficient alpha cm^(-1)]

Reimplemented from plask::Material.

Definition at line 29 of file air.cpp.

◆ B()

double plask::materials::Air::B ( double  T) const
overridevirtual

Get radiative recombination coefficient B (cm^3/s).

Parameters
Ttemperature (K)
Returns
radiative recombination coefficient B (cm^3/s)

Reimplemented from plask::Material.

Definition at line 31 of file air.cpp.

◆ C()

double plask::materials::Air::C ( double  T) const
overridevirtual

Get Auger recombination coefficient C (cm^6/s).

Parameters
Ttemperature (K)
Returns
Auger recombination coefficient C (cm^6/s)

Reimplemented from plask::Material.

Definition at line 33 of file air.cpp.

◆ CB()

double plask::materials::Air::CB ( double  T,
double  e,
char  point 
) const
overridevirtual

Get conduction band level CB (eV).

Parameters
Ttemperature (K)
elateral strain (-)
pointpoint in the Brillouin zone (-)
Returns
conduction band level CB (eV)

Reimplemented from plask::Material.

Definition at line 35 of file air.cpp.

◆ chi()

double plask::materials::Air::chi ( double  T,
double  e,
char  point 
) const
overridevirtual

Get electron affinity Chi(eV).

Parameters
Ttemperature (K)
elateral strain (-)
pointpoint in Brillouin zone (-)
Returns
electron affinity Chi (eV)

Reimplemented from plask::Material.

Definition at line 37 of file air.cpp.

◆ cond()

Tensor2< double > plask::materials::Air::cond ( double  T) const
overridevirtual

Get electrical conductivity sigma in-plane (lateral) and cross-plane (vertical) direction [S/m].

Parameters
Ttemperature (K)
Returns
electrical conductivity sigma [S/m]

Reimplemented from plask::Material.

◆ condtype()

ConductivityType plask::materials::Air::condtype ( ) const
overridevirtual

Get electrical conductivity type.

In semiconductors this indicates what type of carriers Nf refers to.

Returns
electrical conductivity type of material

Reimplemented from plask::Material.

◆ cp()

double plask::materials::Air::cp ( double  T) const
overridevirtual

Get specific heat at constant pressure [J/(kg*K)].

Parameters
Ttemperature (K)
Returns
specific heat at constant pressure [J/(kg*K)]

Reimplemented from plask::Material.

◆ D()

double plask::materials::Air::D ( double  T) const
overridevirtual

Get ambipolar diffusion coefficient D (cm^2/s).

Parameters
Ttemperature (K)
Returns
ambipolar diffusion coefficient D (cm^2/s)

Reimplemented from plask::Material.

◆ dens()

double plask::materials::Air::dens ( double  T) const
overridevirtual

Get density (kg/m^3).

Parameters
Ttemperature (K)
Returns
density (kg/m^3)

Reimplemented from plask::Material.

◆ Dso()

double plask::materials::Air::Dso ( double  T,
double  e 
) const
overridevirtual

Get split-off energy Dso (eV).

Parameters
Ttemperature (K)
elateral strain (-)
Returns
split-off energy Dso (eV)

Reimplemented from plask::Material.

◆ EactA()

double plask::materials::Air::EactA ( double  T) const
overridevirtual

Get acceptor ionisation energy EactA (eV).

Parameters
Ttemperature (K)
Returns
acceptor ionisation energy EactA (eV)

Reimplemented from plask::Material.

◆ EactD()

double plask::materials::Air::EactD ( double  T) const
overridevirtual

Get donor ionisation energy EactD (eV).

Parameters
Ttemperature (K)
Returns
donor ionisation energy EactD (eV)

Reimplemented from plask::Material.

◆ Eg()

double plask::materials::Air::Eg ( double  T,
double  e,
char  point 
) const
overridevirtual

Get energy gap Eg (eV)

Parameters
Ttemperature (K)
elateral strain (-)
pointpoint in the Brillouin zone (-)
Returns
energy gap Eg (eV)

Reimplemented from plask::Material.

◆ eps()

double plask::materials::Air::eps ( double  T) const
overridevirtual

Get dielectric constant EpsR (-).

Parameters
Ttemperature (K)
Returns
dielectric constant EpsR (-)

Reimplemented from plask::Material.

◆ isEqual()

bool plask::materials::Air::isEqual ( const Material other) const
overrideprotectedvirtual

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.

◆ kind()

Material::Kind plask::materials::Air::kind ( ) const
overridevirtual
Returns
material kind

Implements plask::Material.

Definition at line 24 of file air.cpp.

◆ lattC()

double plask::materials::Air::lattC ( double  T,
char  x 
) const
overridevirtual

Get lattice constant (Å).

Parameters
Ttemperature (K)
xlattice parameter (-)
Returns
lattice constant (Å)

Reimplemented from plask::Material.

◆ Me()

Tensor2< double > plask::materials::Air::Me ( double  T,
double  e,
char  point 
) const
overridevirtual

Get electron effective mass Me in in-plane (lateral) and cross-plane (vertical) direction [ $m_0$].

Parameters
Ttemperature (K)
elateral strain (-)
pointpoint in Brillouin zone (-)
Returns
electron effective mass Me [ $m_0$]

Reimplemented from plask::Material.

◆ Mh()

Tensor2< double > plask::materials::Air::Mh ( double  T,
double  e 
) const
overridevirtual

Get hole effective mass Mh in in-plane (lateral) and cross-plane (vertical) direction [ $m_0$].

Parameters
Ttemperature (K)
elateral strain (-)
Returns
hole effective mass Mh [ $m_0$]

Reimplemented from plask::Material.

◆ Mhh()

Tensor2< double > plask::materials::Air::Mhh ( double  T,
double  e 
) const
overridevirtual

Get heavy hole effective mass Mhh in in-plane (lateral) and cross-plane (vertical) direction [ $m_0$].

Parameters
Ttemperature (K)
elateral strain (-)
Returns
heavy hole effective mass Mhh [ $m_0$]

Reimplemented from plask::Material.

◆ Mlh()

Tensor2< double > plask::materials::Air::Mlh ( double  T,
double  e 
) const
overridevirtual

Get light hole effective mass Mlh in in-plane (lateral) and cross-plane (vertical) direction [ $m_0$].

Parameters
Ttemperature (K)
elateral strain (-)
Returns
light hole effective mass Mlh [ $m_0$]

Reimplemented from plask::Material.

◆ mob()

Tensor2< double > plask::materials::Air::mob ( double  T) const
overridevirtual

Get mobility in-plane (lateral) and cross-plane (vertical) direction [cm^2/(V*s)].

Parameters
Ttemperature (K)
Returns
mobility [cm^2/(V*s)]

Reimplemented from plask::Material.

◆ mobe()

Tensor2< double > plask::materials::Air::mobe ( double  T) const
overridevirtual

Get electron mobility in-plane (lateral) and cross-plane (vertical) direction [cm^2/(V*s)].

Parameters
Ttemperature (K)
Returns
mobility [cm^2/(V*s)]

Reimplemented from plask::Material.

◆ mobh()

Tensor2< double > plask::materials::Air::mobh ( double  T) const
overridevirtual

Get hole mobility in-plane (lateral) and cross-plane (vertical) direction [cm^2/(V*s)].

Parameters
Ttemperature (K)
Returns
mobility [cm^2/(V*s)]

Reimplemented from plask::Material.

◆ Mso()

double plask::materials::Air::Mso ( double  T,
double  e 
) const
overridevirtual

Get split-off mass Mso [ $m_0$].

Parameters
Ttemperature (K)
elateral strain (-)
Returns
split-off mass Mso [ $m_0$]

Reimplemented from plask::Material.

◆ Na()

double plask::materials::Air::Na ( ) const
overridevirtual

Get acceptor concentration Na [cm^(-3)].

Returns
acceptor concentration Na [cm^(-3)]

Reimplemented from plask::Material.

◆ name()

std::string plask::materials::Air::name ( ) const
overridevirtual

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

Returns
material name

Implements plask::Material.

Definition at line 23 of file air.cpp.

◆ Nd()

double plask::materials::Air::Nd ( ) const
overridevirtual

Get donor concentration Nd [cm^(-3)].

Returns
donor concentration Nd [cm^(-3)]

Reimplemented from plask::Material.

◆ Nf()

double plask::materials::Air::Nf ( double  T) const
overridevirtual

Get free carrier concentration N [cm^(-3)].

Parameters
Ttemperature (K)
Returns
free carrier concentration N [cm^(-3)]

Reimplemented from plask::Material.

◆ Ni()

double plask::materials::Air::Ni ( double  T) const
overridevirtual

Get intrinsic carrier concentration Ni [cm^(-3)].

Parameters
Ttemperature (K)
Returns
intrinsic carrier concentration Ni [cm^(-3)]

Reimplemented from plask::Material.

◆ nr()

double plask::materials::Air::nr ( double  lam,
double  T,
double  n = .0 
) const
overridevirtual

Get refractive index Nr (-).

Parameters
lamWavelength (nm)
Ttemperature (K)
ninjected carriers concentration (1/cm)
Returns
refractive index Nr (-)

Reimplemented from plask::Material.

◆ thermk()

Tensor2< double > plask::materials::Air::thermk ( double  T,
double  h 
) const
overridevirtual

Get thermal conductivity in in-plane (lateral) and cross-plane (vertical) direction k [W/(m*K)].

Parameters
Ttemperature (K)
hlayer thickness (µm)
Returns
thermal conductivity k [W/(m*K)]

Reimplemented from plask::Material.

◆ VB()

double plask::materials::Air::VB ( double  T,
double  e,
char  point,
char  hole 
) const
overridevirtual

Get valence band level VB(eV).

Parameters
Ttemperature (K)
elateral strain (-)
pointpoint in Brillouin zone (-)
holehole type ('H'eavy or 'L'ight) (-)
Returns
valence band level VB(eV)

Reimplemented from plask::Material.

Member Data Documentation

◆ NAME

constexpr const char* plask::materials::Air::NAME = "air"
staticconstexpr

Definition at line 30 of file air.hpp.


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