Defines the physical properties of a device, e.g. doping. This is the implementation for 2d and higher dimensions. More...
#include <device.hpp>
Additional Inherited Members | |
Public Types inherited from viennashe::detail::device_base< MeshT > | |
typedef MeshT | mesh_type |
typedef viennagrid::result_of::facet< MeshT >::type | facet_type |
typedef viennagrid::result_of::cell< MeshT >::type | cell_type |
typedef viennagrid::result_of::accessor_container< cell_type, bool, viennagrid::std_vector_tag >::type | CellRefinementContainerType |
typedef viennagrid::result_of::segment_handle< segmentation_type >::type | segment_type |
typedef viennagrid::result_of::segmentation_segment_id_type< segmentation_type >::type | segment_id_type |
typedef long | material_id_type |
typedef std::size_t | id_type |
typedef trap_level | trap_level_type |
typedef std::vector< trap_level_type > | trap_level_container_type |
typedef viennagrid::result_of::voronoi_cell_contribution< const_cell_handle_type >::type | voronoi_contribution_container_type |
Public Member Functions inherited from viennashe::detail::device_base< MeshT > | |
device_base () | |
void | load_mesh (std::string filename) |
template<typename DeviceLoaderType > | |
void | load_device (DeviceLoaderType &loader) |
void | generate_mesh (viennashe::util::device_generation_config const &generator_params) |
template<typename MeshGeneratorType > | |
void | generate_mesh (MeshGeneratorType const &gen) |
MeshT const & | mesh () const |
Returns the underlying mesh. More... | |
MeshT & | mesh () |
segmentation_type const & | segmentation () const |
segmentation_type & | segmentation () |
segment_type const & | segment (segment_id_type id) const |
void | scale (double factor) |
void | refine (int factor) |
void | set_lattice_temperature (double new_value) |
Sets the homogeneous temperature of the device. More... | |
void | set_lattice_temperature (double new_value, cell_type const &c) |
Sets the lattice temperature at a cell. More... | |
void | set_lattice_temperature (double new_value, segment_type const &s) |
Sets the lattice temperature on a segment. More... | |
double | get_lattice_temperature (cell_type const &c) const |
Returns the lattice temperature on a cell. More... | |
double | get_lattice_temperature (facet_type const &facet) const |
void | set_doping_n (double value, cell_type const &c) |
Sets the donator doping (in m^-3) in the specified cell. More... | |
void | set_doping_n (double value, segment_type const &d) |
Sets the donator doping (in m^-3) in the specified segment. More... | |
void | set_doping_n (double value, segment_id_type const &seg_id) |
Sets the donator doping (in m^-3) in the specified segment. More... | |
void | set_doping_n (double value) |
Sets the donator doping (in m^-3) in the whole device. More... | |
double | get_doping_n (cell_type const &c) const |
Returns the donator doping (in m^-3) in the specified cell. More... | |
double | get_doping_n (facet_type const &facet) const |
std::vector< double > const & | doping_n () const |
void | set_doping_p (double value, cell_type const &c) |
Sets the acceptor doping (in m^-3) in the specified cell. More... | |
void | set_doping_p (double value, segment_type const &d) |
Sets the acceptor doping (in m^-3) in the specified segment. More... | |
void | set_doping_p (double value, segment_id_type const &seg_id) |
Sets the donator doping (in m^-3) in the specified segment. More... | |
void | set_doping_p (double value) |
Sets the acceptor doping (in m^-3) in the whole device. More... | |
double | get_doping_p (cell_type const &c) const |
Returns the donator doping (in m^-3) in the specified cell. More... | |
double | get_doping_p (facet_type const &facet) const |
std::vector< double > const & | doping_p () const |
double | get_doping (cell_type const &c, carrier_type_id ctype) const |
void | set_material (long material_id, cell_type const &elem) |
Sets the material ID on a cell. More... | |
template<typename MaterialType > | |
void | set_material (MaterialType, cell_type const &elem) |
Sets the material type using the structs defined in viennashe::materials on a cell. More... | |
void | set_material (long material_id, segment_type const &seg) |
Sets the material ID on a segment. More... | |
void | set_material (long material_id, segment_id_type id) |
Sets the material ID on a segment. More... | |
template<typename MaterialType > | |
void | set_material (MaterialType, segment_type const &seg) |
Sets the material type using the structs defined in viennashe::materials on a segment. More... | |
void | set_material (long material_id) |
Sets a uniform material ID on the whole device. More... | |
template<typename MaterialType > | |
void | set_material (MaterialType) |
Sets a uniform material type using the structs defined in viennashe::materials on the whole device. More... | |
long | get_material (cell_type const &elem) const |
Returns the material id of the provided cell. More... | |
std::vector< material_id_type > const & | material () const |
void | set_contact_potential (double pot, cell_type const &c) |
Sets the contact potential at a cell. More... | |
void | set_contact_potential (double pot, segment_type const &seg) |
Sets a contact potential for a whole segment. More... | |
double | get_contact_potential (cell_type const &c) const |
Returns the contact potential at a given cell (this is the externally applied voltage not considering any built-in potential) More... | |
bool | has_contact_potential (cell_type const &c) const |
Returns true if a contact potential has been set for the respective vertex. More... | |
bool | has_contact_potential (facet_type const &) const |
void | add_trap_level (trap_level_type trap, cell_type const &cell) |
Adds a trap (density, energy) to a cell of the device. More... | |
void | add_trap_level (trap_level_type trap, segment_type const &seg) |
Adds a trap (density, energy) to a segment of the device. More... | |
void | add_trap_level (trap_level_type trap) |
Adds a trap (density, energy) to the whole device. More... | |
trap_level_container_type const & | get_trap_levels (cell_type const &cell) const |
Returns all the trap levels defined for the provided cell. More... | |
void | clear_traps () |
Removes all traps from the device. More... | |
void | set_fixed_charge (cell_type const &c, double charge) |
Sets a fixed charge at a cell. More... | |
double | get_fixed_charge (cell_type const &c) const |
Gives the fixed charge set at a certain cell. More... | |
Protected Types inherited from viennashe::detail::device_base< MeshT > | |
typedef viennagrid::result_of::segmentation< MeshT >::type | segmentation_type |
typedef viennagrid::result_of::vertex< MeshT >::type | vertex_type |
typedef viennagrid::result_of::point< MeshT >::type | point_type |
typedef viennagrid::result_of::const_cell_handle< MeshT >::type | const_cell_handle_type |
Protected Member Functions inherited from viennashe::detail::device_base< MeshT > | |
void | set_lattice_temp_impl (double value, cell_type const &c) |
template<typename MeshOrSegmentT > | |
void | set_lattice_temp_impl (double value, MeshOrSegmentT const &meshseg) |
void | set_doping_n_impl (double value, cell_type const &c) |
void | set_doping_p_impl (double value, cell_type const &c) |
template<typename MeshOrSegmentT > | |
void | set_doping_n_impl (double value, MeshOrSegmentT const &meshseg) |
template<typename MeshOrSegmentT > | |
void | set_doping_p_impl (double value, MeshOrSegmentT const &meshseg) |
template<typename MeshOrSegmentT > | |
void | set_material_on_complex (long material_id, MeshOrSegmentT const &meshseg) |
template<typename MeshOrSegmentT > | |
void | add_trap_level_on_complex (trap_level_type trap, MeshOrSegmentT const &meshseg) |
Protected Attributes inherited from viennashe::detail::device_base< MeshT > | |
MeshT | mesh_ |
segmentation_type | seg_ |
std::vector< double > | cell_doping_n_ |
std::vector< double > | cell_doping_p_ |
std::vector< double > | cell_temperature_ |
std::vector< bool > | cell_contact_potential_mask_ |
std::vector< double > | cell_contact_potential_ |
std::vector< material_id_type > | cell_material_ |
std::vector< trap_level_container_type > | cell_traps_ |
std::vector< double > | cell_fixed_charges_ |
Defines the physical properties of a device, e.g. doping. This is the implementation for 2d and higher dimensions.
Definition at line 817 of file device.hpp.