1#ifndef VIENNASHE_MATERIALS_MATERIALS_HPP
2#define VIENNASHE_MATERIALS_MATERIALS_HPP
158 if (material_id ==
si::id)
230 std::stringstream ss;
231 ss <<
"Cannot retrieve permittivity from material with id: " << material_id << std::endl;
249 std::stringstream ss;
250 ss <<
"Cannot retrieve diffusivity from material with id: " << material_id << std::endl;
262 std::transform(material_name.begin(), material_name.end(), material_name.begin(), ::toupper);
264 if (material_name ==
"SI")
268 else if (material_name ==
"SIO2")
272 else if (material_name ==
"HFO2")
276 else if (material_name ==
"SION")
280 else if (material_name ==
"GAS")
284 else if (material_name ==
"METAL")
290 std::stringstream ss;
291 ss <<
"Cannot retrieve material ID for material named: '" << material_name <<
"'" << std::endl;
Simple checker class for checking whether a certain material is of a given type (conductor,...
checker(material_category_id category)
bool operator()(long material_id) const
Exception for the case that an invalid material is in use.
Contains forward declarations and definition of small classes that must be defined at an early stage.
Contains all the exceptions used for accessing materials.
bool is_semiconductor(long material_id)
Convenience function for checking whether the supplied material ID refers to a semiconductor.
double permittivity(long material_id)
Convenience function for returning the permittivity of the material identified by the ID provided.
bool is_insulator(long material_id)
Convenience function for checking whether the supplied material ID refers to an oxide.
long get_material_id(std::string material_name)
Returns the material ID for a material identified by a string.
double diffusivity(long material_id)
bool is_conductor(long material_id)
Convenience function for checking whether the supplied material ID refers to a metal.
The main ViennaSHE namespace. All functionality resides inside this namespace.
carrier_type_id
Enumeration type for selecting the carrier type.
@ MATERIAL_NO_SEMICONDUCTOR_ID
@ MATERIAL_SEMICONDUCTOR_ID
@ MATERIAL_NO_CONDUCTOR_ID
Provides a number of fundamental constants. All constants in SI units.
A class referring to an ideal gas.
static double permittivity()
static double diffusivity()
A class referring to hafnium dioxide.
static double diffusivity()
static double permittivity()
A class referring to silicon and providing certain material parameters Note that this is the default ...
static double permittivity()
static double longitudinal_effective_mass(viennashe::carrier_type_id ctype)
static double diffusivity()
static double get_mass_density()
static double transverse_effective_mass(viennashe::carrier_type_id ctype)
static double conductivity_effective_mass(viennashe::carrier_type_id ctype)
static double specific_heat()
static double dos_effective_mass(viennashe::carrier_type_id ctype)
static double reference_temperature()
A class referring to silicon dioxide.
static double permittivity()
static double diffusivity()
A class referring to silicon oxynitride
static double permittivity()
static double diffusivity()
static const double eps_0
Permittivity of vacuum.
static const double q
Elementary charge.
static const double mass_electron
Electron rest mass.