Defines the physical properties of a device, e.g. doping. More...
#include <device.hpp>
Public Types | |
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 | |
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 | |
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 | |
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 | |
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.
Definition at line 54 of file device.hpp.
typedef viennagrid::result_of::cell<MeshT>::type viennashe::detail::device_base< MeshT >::cell_type |
Definition at line 67 of file device.hpp.
typedef viennagrid::result_of::accessor_container<cell_type,bool,viennagrid::std_vector_tag>::type viennashe::detail::device_base< MeshT >::CellRefinementContainerType |
Definition at line 69 of file device.hpp.
|
protected |
Definition at line 62 of file device.hpp.
typedef viennagrid::result_of::facet<MeshT>::type viennashe::detail::device_base< MeshT >::facet_type |
Definition at line 66 of file device.hpp.
typedef std::size_t viennashe::detail::device_base< MeshT >::id_type |
Definition at line 75 of file device.hpp.
typedef long viennashe::detail::device_base< MeshT >::material_id_type |
Definition at line 74 of file device.hpp.
typedef MeshT viennashe::detail::device_base< MeshT >::mesh_type |
Definition at line 65 of file device.hpp.
|
protected |
Definition at line 60 of file device.hpp.
typedef viennagrid::result_of::segmentation_segment_id_type<segmentation_type>::type viennashe::detail::device_base< MeshT >::segment_id_type |
Definition at line 73 of file device.hpp.
typedef viennagrid::result_of::segment_handle<segmentation_type>::type viennashe::detail::device_base< MeshT >::segment_type |
Definition at line 71 of file device.hpp.
|
protected |
Definition at line 57 of file device.hpp.
typedef std::vector<trap_level_type> viennashe::detail::device_base< MeshT >::trap_level_container_type |
Definition at line 77 of file device.hpp.
typedef trap_level viennashe::detail::device_base< MeshT >::trap_level_type |
Definition at line 76 of file device.hpp.
|
protected |
Definition at line 59 of file device.hpp.
typedef viennagrid::result_of::voronoi_cell_contribution<const_cell_handle_type>::type viennashe::detail::device_base< MeshT >::voronoi_contribution_container_type |
Definition at line 80 of file device.hpp.
|
inline |
Definition at line 90 of file device.hpp.
|
inline |
Adds a trap (density, energy) to the whole device.
Definition at line 608 of file device.hpp.
|
inline |
Adds a trap (density, energy) to a cell of the device.
Definition at line 594 of file device.hpp.
|
inline |
Adds a trap (density, energy) to a segment of the device.
Definition at line 601 of file device.hpp.
|
inlineprotected |
Definition at line 780 of file device.hpp.
|
inline |
Removes all traps from the device.
Definition at line 622 of file device.hpp.
|
inline |
Definition at line 358 of file device.hpp.
|
inline |
Definition at line 431 of file device.hpp.
|
inline |
Definition at line 137 of file device.hpp.
|
inline |
Definition at line 128 of file device.hpp.
|
inline |
Returns the contact potential at a given cell (this is the externally applied voltage not considering any built-in potential)
Definition at line 566 of file device.hpp.
|
inline |
Definition at line 437 of file device.hpp.
|
inline |
Returns the donator doping (in m^-3) in the specified cell.
Definition at line 320 of file device.hpp.
|
inline |
Definition at line 326 of file device.hpp.
|
inline |
Returns the donator doping (in m^-3) in the specified cell.
Definition at line 393 of file device.hpp.
|
inline |
Definition at line 399 of file device.hpp.
|
inline |
Gives the fixed charge set at a certain cell.
c | The cell |
Definition at line 648 of file device.hpp.
|
inline |
Returns the lattice temperature on a cell.
Definition at line 255 of file device.hpp.
|
inline |
Definition at line 265 of file device.hpp.
|
inline |
Returns the material id of the provided cell.
Definition at line 502 of file device.hpp.
|
inline |
Returns all the trap levels defined for the provided cell.
Definition at line 615 of file device.hpp.
|
inline |
Returns true if a contact potential has been set for the respective vertex.
Definition at line 577 of file device.hpp.
|
inline |
Definition at line 583 of file device.hpp.
|
inline |
Definition at line 121 of file device.hpp.
|
inline |
Definition at line 96 of file device.hpp.
|
inline |
Definition at line 508 of file device.hpp.
|
inline |
Definition at line 150 of file device.hpp.
|
inline |
Returns the underlying mesh.
Definition at line 145 of file device.hpp.
|
inline |
Definition at line 180 of file device.hpp.
|
inline |
Definition at line 173 of file device.hpp.
|
inline |
Definition at line 167 of file device.hpp.
|
inline |
Definition at line 161 of file device.hpp.
|
inline |
Definition at line 156 of file device.hpp.
|
inline |
Sets the contact potential at a cell.
Definition at line 542 of file device.hpp.
|
inline |
Sets a contact potential for a whole segment.
Definition at line 550 of file device.hpp.
|
inline |
Sets the donator doping (in m^-3) in the whole device.
Definition at line 313 of file device.hpp.
|
inline |
Sets the donator doping (in m^-3) in the specified cell.
Definition at line 292 of file device.hpp.
|
inline |
Sets the donator doping (in m^-3) in the specified segment.
Definition at line 306 of file device.hpp.
|
inline |
Sets the donator doping (in m^-3) in the specified segment.
Definition at line 299 of file device.hpp.
|
inlineprotected |
Definition at line 690 of file device.hpp.
|
inlineprotected |
Definition at line 715 of file device.hpp.
|
inline |
Sets the acceptor doping (in m^-3) in the whole device.
Definition at line 386 of file device.hpp.
|
inline |
Sets the acceptor doping (in m^-3) in the specified cell.
Definition at line 365 of file device.hpp.
|
inline |
Sets the donator doping (in m^-3) in the specified segment.
Definition at line 379 of file device.hpp.
|
inline |
Sets the acceptor doping (in m^-3) in the specified segment.
Definition at line 372 of file device.hpp.
|
inlineprotected |
Definition at line 702 of file device.hpp.
|
inlineprotected |
Definition at line 736 of file device.hpp.
|
inline |
Sets a fixed charge at a cell.
charge | The charge on the given cell. Use SI-unit: Coulomb |
c | The cell on which to put a fixed charge |
Definition at line 637 of file device.hpp.
|
inlineprotected |
Definition at line 659 of file device.hpp.
|
inlineprotected |
Definition at line 666 of file device.hpp.
|
inline |
Sets the homogeneous temperature of the device.
Definition at line 234 of file device.hpp.
|
inline |
Sets the lattice temperature at a cell.
Definition at line 241 of file device.hpp.
|
inline |
Sets the lattice temperature on a segment.
Definition at line 248 of file device.hpp.
|
inline |
Sets a uniform material ID on the whole device.
Definition at line 487 of file device.hpp.
|
inline |
Sets the material ID on a cell.
Definition at line 448 of file device.hpp.
|
inline |
Sets the material ID on a segment.
Definition at line 471 of file device.hpp.
|
inline |
Sets the material ID on a segment.
Definition at line 464 of file device.hpp.
|
inline |
Sets a uniform material type using the structs defined in viennashe::materials on the whole device.
Definition at line 495 of file device.hpp.
|
inline |
Sets the material type using the structs defined in viennashe::materials on a cell.
Definition at line 456 of file device.hpp.
|
inline |
Sets the material type using the structs defined in viennashe::materials on a segment.
Definition at line 479 of file device.hpp.
|
inlineprotected |
Definition at line 761 of file device.hpp.
|
protected |
Definition at line 804 of file device.hpp.
|
protected |
Definition at line 803 of file device.hpp.
|
protected |
Definition at line 798 of file device.hpp.
|
protected |
Definition at line 799 of file device.hpp.
|
protected |
Definition at line 810 of file device.hpp.
|
protected |
Definition at line 806 of file device.hpp.
|
protected |
Definition at line 801 of file device.hpp.
|
protected |
Definition at line 808 of file device.hpp.
|
protected |
Definition at line 794 of file device.hpp.
|
protected |
Definition at line 795 of file device.hpp.