7 #ifndef CT_SEMICONDPHASE_H
8 #define CT_SEMICONDPHASE_H
16 const int cElectron = 0;
35 *
this = operator=(right);
41 m_press = right.m_press;
55 return cSemiconductor;
68 eosdata.
_require(
"model",
"Semiconductor");
75 doublereal n_donor =
ctml::getFloat(eosdata,
"donor_concentration",
"-");
76 doublereal e_acceptor =
ctml::getFloat(eosdata,
"acceptor_energy",
"-");
77 doublereal n_acceptor =
ctml::getFloat(eosdata,
"acceptor_concentration",
"-");
78 setEffectiveMasses(e_mass, h_mass);
79 setDonorDoping(n_donor, e_donor);
80 setAcceptorDoping(n_acceptor, e_acceptor);
83 void setEffectiveMasses(doublereal e_mass, doublereal h_mass) {
88 void setDonorDoping(doublereal n_donor, doublereal e_donor) {
93 void setAcceptorDoping(doublereal n_acceptor, doublereal e_acceptor) {
94 m_nacceptor = n_acceptor;
95 m_eacceptor = e_acceptor;
98 doublereal effectiveMass_e()
const {
102 doublereal effectiveMass_h()
const {
106 doublereal fermiLevel()
const {
107 return m_fermi_level;
111 doublereal nc()
const;
112 doublereal nv()
const;
113 doublereal
ec()
const;
114 doublereal ev()
const;
115 doublereal bandgap()
const {
127 doublereal m_nacceptor;
128 doublereal m_eacceptor;
129 doublereal m_fermi_level;
130 doublereal m_bandgap;
void _require(const std::string &a, const std::string &v) const
Require that the current xml node have an attribute named by the first argument, a, and that this attribute have the the string value listed in the second argument, v.
Class SemiconductorPhase represents electrons and holes in a semiconductor.
ThermoPhase & operator=(const ThermoPhase &right)
Assignment operator.
virtual void getChemPotentials(doublereal *mu) const
Get the species chemical potentials. Units: J/kmol.
Class XML_Node is a tree-based representation of the contents of an XML file.
doublereal getFloat(const Cantera::XML_Node &parent, const std::string &name, const std::string &type)
Get a floating-point value from a child element.
virtual ThermoPhase * duplMyselfAsThermoPhase() const
Duplicator.
virtual void setPressure(doublereal pres)
Set the internally stored pressure (Pa) at constant temperature and composition.
Base class for a phase with thermodynamic properties.
doublereal ec() const
Energy at the top of the conduction band.
virtual doublereal pressure() const
Return the thermodynamic pressure (Pa).
virtual void setParametersFromXML(const XML_Node &eosdata)
Set equation of state parameter values from XML entries.
virtual int eosType() const
Equation of state type flag.
std::vector< double > vector_fp
Turn on the use of stl vectors for the basic array type within cantera Vector of doubles.
Header file for class ThermoPhase, the base class for phases with thermodynamic properties, and the text for the Module thermoprops (see Thermodynamic Properties and class ThermoPhase).
virtual void setDensity(const doublereal density_)
Set the internally stored density (kg/m^3) of the phase Note the density of a phase is an independent...