ViennaSHE 1.3.0
Free open-source semiconductor device simulator using spherical harmonics expansions techniques.
viennashe::detail::device_base< MeshT > Class Template Reference

Defines the physical properties of a device, e.g. doping. More...

#include <device.hpp>

Inheritance diagram for viennashe::detail::device_base< MeshT >:
viennashe::device< MeshT, edges_and_cells_different >

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_typetrap_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_typesegmentation ()
 
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_typecell_material_
 
std::vector< trap_level_container_typecell_traps_
 
std::vector< double > cell_fixed_charges_
 

Detailed Description

template<typename MeshT>
class viennashe::detail::device_base< MeshT >

Defines the physical properties of a device, e.g. doping.

Definition at line 54 of file device.hpp.

Member Typedef Documentation

◆ cell_type

template<typename MeshT >
typedef viennagrid::result_of::cell<MeshT>::type viennashe::detail::device_base< MeshT >::cell_type

Definition at line 67 of file device.hpp.

◆ CellRefinementContainerType

template<typename MeshT >
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.

◆ const_cell_handle_type

template<typename MeshT >
typedef viennagrid::result_of::const_cell_handle<MeshT>::type viennashe::detail::device_base< MeshT >::const_cell_handle_type
protected

Definition at line 62 of file device.hpp.

◆ facet_type

template<typename MeshT >
typedef viennagrid::result_of::facet<MeshT>::type viennashe::detail::device_base< MeshT >::facet_type

Definition at line 66 of file device.hpp.

◆ id_type

template<typename MeshT >
typedef std::size_t viennashe::detail::device_base< MeshT >::id_type

Definition at line 75 of file device.hpp.

◆ material_id_type

template<typename MeshT >
typedef long viennashe::detail::device_base< MeshT >::material_id_type

Definition at line 74 of file device.hpp.

◆ mesh_type

template<typename MeshT >
typedef MeshT viennashe::detail::device_base< MeshT >::mesh_type

Definition at line 65 of file device.hpp.

◆ point_type

template<typename MeshT >
typedef viennagrid::result_of::point<MeshT>::type viennashe::detail::device_base< MeshT >::point_type
protected

Definition at line 60 of file device.hpp.

◆ segment_id_type

template<typename MeshT >
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.

◆ segment_type

template<typename MeshT >
typedef viennagrid::result_of::segment_handle<segmentation_type>::type viennashe::detail::device_base< MeshT >::segment_type

Definition at line 71 of file device.hpp.

◆ segmentation_type

template<typename MeshT >
typedef viennagrid::result_of::segmentation<MeshT>::type viennashe::detail::device_base< MeshT >::segmentation_type
protected

Definition at line 57 of file device.hpp.

◆ trap_level_container_type

template<typename MeshT >
typedef std::vector<trap_level_type> viennashe::detail::device_base< MeshT >::trap_level_container_type

Definition at line 77 of file device.hpp.

◆ trap_level_type

template<typename MeshT >
typedef trap_level viennashe::detail::device_base< MeshT >::trap_level_type

Definition at line 76 of file device.hpp.

◆ vertex_type

template<typename MeshT >
typedef viennagrid::result_of::vertex<MeshT>::type viennashe::detail::device_base< MeshT >::vertex_type
protected

Definition at line 59 of file device.hpp.

◆ voronoi_contribution_container_type

template<typename MeshT >
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.

Constructor & Destructor Documentation

◆ device_base()

template<typename MeshT >
viennashe::detail::device_base< MeshT >::device_base ( )
inline

Definition at line 90 of file device.hpp.

Member Function Documentation

◆ add_trap_level() [1/3]

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::add_trap_level ( trap_level_type  trap)
inline

Adds a trap (density, energy) to the whole device.

Definition at line 608 of file device.hpp.

◆ add_trap_level() [2/3]

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::add_trap_level ( trap_level_type  trap,
cell_type const &  cell 
)
inline

Adds a trap (density, energy) to a cell of the device.

Definition at line 594 of file device.hpp.

◆ add_trap_level() [3/3]

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::add_trap_level ( trap_level_type  trap,
segment_type const &  seg 
)
inline

Adds a trap (density, energy) to a segment of the device.

Definition at line 601 of file device.hpp.

◆ add_trap_level_on_complex()

template<typename MeshT >
template<typename MeshOrSegmentT >
void viennashe::detail::device_base< MeshT >::add_trap_level_on_complex ( trap_level_type  trap,
MeshOrSegmentT const &  meshseg 
)
inlineprotected

Definition at line 780 of file device.hpp.

◆ clear_traps()

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::clear_traps ( )
inline

Removes all traps from the device.

Definition at line 622 of file device.hpp.

◆ doping_n()

template<typename MeshT >
std::vector< double > const & viennashe::detail::device_base< MeshT >::doping_n ( ) const
inline

Definition at line 358 of file device.hpp.

◆ doping_p()

template<typename MeshT >
std::vector< double > const & viennashe::detail::device_base< MeshT >::doping_p ( ) const
inline

Definition at line 431 of file device.hpp.

◆ generate_mesh() [1/2]

template<typename MeshT >
template<typename MeshGeneratorType >
void viennashe::detail::device_base< MeshT >::generate_mesh ( MeshGeneratorType const &  gen)
inline

Definition at line 137 of file device.hpp.

◆ generate_mesh() [2/2]

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::generate_mesh ( viennashe::util::device_generation_config const &  generator_params)
inline

Definition at line 128 of file device.hpp.

◆ get_contact_potential()

template<typename MeshT >
double viennashe::detail::device_base< MeshT >::get_contact_potential ( cell_type const &  c) const
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.

◆ get_doping()

template<typename MeshT >
double viennashe::detail::device_base< MeshT >::get_doping ( cell_type const &  c,
carrier_type_id  ctype 
) const
inline

Definition at line 437 of file device.hpp.

◆ get_doping_n() [1/2]

template<typename MeshT >
double viennashe::detail::device_base< MeshT >::get_doping_n ( cell_type const &  c) const
inline

Returns the donator doping (in m^-3) in the specified cell.

Definition at line 320 of file device.hpp.

◆ get_doping_n() [2/2]

template<typename MeshT >
double viennashe::detail::device_base< MeshT >::get_doping_n ( facet_type const &  facet) const
inline

Definition at line 326 of file device.hpp.

◆ get_doping_p() [1/2]

template<typename MeshT >
double viennashe::detail::device_base< MeshT >::get_doping_p ( cell_type const &  c) const
inline

Returns the donator doping (in m^-3) in the specified cell.

Definition at line 393 of file device.hpp.

◆ get_doping_p() [2/2]

template<typename MeshT >
double viennashe::detail::device_base< MeshT >::get_doping_p ( facet_type const &  facet) const
inline

Definition at line 399 of file device.hpp.

◆ get_fixed_charge()

template<typename MeshT >
double viennashe::detail::device_base< MeshT >::get_fixed_charge ( cell_type const &  c) const
inline

Gives the fixed charge set at a certain cell.

Parameters
cThe cell
Returns
The charge in Coulomb

Definition at line 648 of file device.hpp.

◆ get_lattice_temperature() [1/2]

template<typename MeshT >
double viennashe::detail::device_base< MeshT >::get_lattice_temperature ( cell_type const &  c) const
inline

Returns the lattice temperature on a cell.

Definition at line 255 of file device.hpp.

◆ get_lattice_temperature() [2/2]

template<typename MeshT >
double viennashe::detail::device_base< MeshT >::get_lattice_temperature ( facet_type const &  facet) const
inline

Definition at line 265 of file device.hpp.

◆ get_material()

template<typename MeshT >
long viennashe::detail::device_base< MeshT >::get_material ( cell_type const &  elem) const
inline

Returns the material id of the provided cell.

Definition at line 502 of file device.hpp.

◆ get_trap_levels()

template<typename MeshT >
trap_level_container_type const & viennashe::detail::device_base< MeshT >::get_trap_levels ( cell_type const &  cell) const
inline

Returns all the trap levels defined for the provided cell.

Definition at line 615 of file device.hpp.

◆ has_contact_potential() [1/2]

template<typename MeshT >
bool viennashe::detail::device_base< MeshT >::has_contact_potential ( cell_type const &  c) const
inline

Returns true if a contact potential has been set for the respective vertex.

Definition at line 577 of file device.hpp.

◆ has_contact_potential() [2/2]

template<typename MeshT >
bool viennashe::detail::device_base< MeshT >::has_contact_potential ( facet_type const &  ) const
inline

Definition at line 583 of file device.hpp.

◆ load_device()

template<typename MeshT >
template<typename DeviceLoaderType >
void viennashe::detail::device_base< MeshT >::load_device ( DeviceLoaderType &  loader)
inline

Definition at line 121 of file device.hpp.

◆ load_mesh()

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::load_mesh ( std::string  filename)
inline

Definition at line 96 of file device.hpp.

◆ material()

template<typename MeshT >
std::vector< material_id_type > const & viennashe::detail::device_base< MeshT >::material ( ) const
inline

Definition at line 508 of file device.hpp.

◆ mesh() [1/2]

template<typename MeshT >
MeshT & viennashe::detail::device_base< MeshT >::mesh ( )
inline

Definition at line 150 of file device.hpp.

◆ mesh() [2/2]

template<typename MeshT >
MeshT const & viennashe::detail::device_base< MeshT >::mesh ( ) const
inline

Returns the underlying mesh.

Definition at line 145 of file device.hpp.

◆ refine()

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::refine ( int  factor)
inline

Definition at line 180 of file device.hpp.

◆ scale()

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::scale ( double  factor)
inline

Definition at line 173 of file device.hpp.

◆ segment()

template<typename MeshT >
segment_type const & viennashe::detail::device_base< MeshT >::segment ( segment_id_type  id) const
inline

Definition at line 167 of file device.hpp.

◆ segmentation() [1/2]

template<typename MeshT >
segmentation_type & viennashe::detail::device_base< MeshT >::segmentation ( )
inline

Definition at line 161 of file device.hpp.

◆ segmentation() [2/2]

template<typename MeshT >
segmentation_type const & viennashe::detail::device_base< MeshT >::segmentation ( ) const
inline

Definition at line 156 of file device.hpp.

◆ set_contact_potential() [1/2]

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::set_contact_potential ( double  pot,
cell_type const &  c 
)
inline

Sets the contact potential at a cell.

Definition at line 542 of file device.hpp.

◆ set_contact_potential() [2/2]

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::set_contact_potential ( double  pot,
segment_type const &  seg 
)
inline

Sets a contact potential for a whole segment.

Definition at line 550 of file device.hpp.

◆ set_doping_n() [1/4]

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::set_doping_n ( double  value)
inline

Sets the donator doping (in m^-3) in the whole device.

Definition at line 313 of file device.hpp.

◆ set_doping_n() [2/4]

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::set_doping_n ( double  value,
cell_type const &  c 
)
inline

Sets the donator doping (in m^-3) in the specified cell.

Definition at line 292 of file device.hpp.

◆ set_doping_n() [3/4]

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::set_doping_n ( double  value,
segment_id_type const &  seg_id 
)
inline

Sets the donator doping (in m^-3) in the specified segment.

Definition at line 306 of file device.hpp.

◆ set_doping_n() [4/4]

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::set_doping_n ( double  value,
segment_type const &  d 
)
inline

Sets the donator doping (in m^-3) in the specified segment.

Definition at line 299 of file device.hpp.

◆ set_doping_n_impl() [1/2]

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::set_doping_n_impl ( double  value,
cell_type const &  c 
)
inlineprotected

Definition at line 690 of file device.hpp.

◆ set_doping_n_impl() [2/2]

template<typename MeshT >
template<typename MeshOrSegmentT >
void viennashe::detail::device_base< MeshT >::set_doping_n_impl ( double  value,
MeshOrSegmentT const &  meshseg 
)
inlineprotected

Definition at line 715 of file device.hpp.

◆ set_doping_p() [1/4]

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::set_doping_p ( double  value)
inline

Sets the acceptor doping (in m^-3) in the whole device.

Definition at line 386 of file device.hpp.

◆ set_doping_p() [2/4]

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::set_doping_p ( double  value,
cell_type const &  c 
)
inline

Sets the acceptor doping (in m^-3) in the specified cell.

Definition at line 365 of file device.hpp.

◆ set_doping_p() [3/4]

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::set_doping_p ( double  value,
segment_id_type const &  seg_id 
)
inline

Sets the donator doping (in m^-3) in the specified segment.

Definition at line 379 of file device.hpp.

◆ set_doping_p() [4/4]

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::set_doping_p ( double  value,
segment_type const &  d 
)
inline

Sets the acceptor doping (in m^-3) in the specified segment.

Definition at line 372 of file device.hpp.

◆ set_doping_p_impl() [1/2]

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::set_doping_p_impl ( double  value,
cell_type const &  c 
)
inlineprotected

Definition at line 702 of file device.hpp.

◆ set_doping_p_impl() [2/2]

template<typename MeshT >
template<typename MeshOrSegmentT >
void viennashe::detail::device_base< MeshT >::set_doping_p_impl ( double  value,
MeshOrSegmentT const &  meshseg 
)
inlineprotected

Definition at line 736 of file device.hpp.

◆ set_fixed_charge()

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::set_fixed_charge ( cell_type const &  c,
double  charge 
)
inline

Sets a fixed charge at a cell.

Parameters
chargeThe charge on the given cell. Use SI-unit: Coulomb
cThe cell on which to put a fixed charge

Definition at line 637 of file device.hpp.

◆ set_lattice_temp_impl() [1/2]

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::set_lattice_temp_impl ( double  value,
cell_type const &  c 
)
inlineprotected

Definition at line 659 of file device.hpp.

◆ set_lattice_temp_impl() [2/2]

template<typename MeshT >
template<typename MeshOrSegmentT >
void viennashe::detail::device_base< MeshT >::set_lattice_temp_impl ( double  value,
MeshOrSegmentT const &  meshseg 
)
inlineprotected

Definition at line 666 of file device.hpp.

◆ set_lattice_temperature() [1/3]

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::set_lattice_temperature ( double  new_value)
inline

Sets the homogeneous temperature of the device.

Definition at line 234 of file device.hpp.

◆ set_lattice_temperature() [2/3]

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::set_lattice_temperature ( double  new_value,
cell_type const &  c 
)
inline

Sets the lattice temperature at a cell.

Definition at line 241 of file device.hpp.

◆ set_lattice_temperature() [3/3]

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::set_lattice_temperature ( double  new_value,
segment_type const &  s 
)
inline

Sets the lattice temperature on a segment.

Definition at line 248 of file device.hpp.

◆ set_material() [1/7]

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::set_material ( long  material_id)
inline

Sets a uniform material ID on the whole device.

Definition at line 487 of file device.hpp.

◆ set_material() [2/7]

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::set_material ( long  material_id,
cell_type const &  elem 
)
inline

Sets the material ID on a cell.

Definition at line 448 of file device.hpp.

◆ set_material() [3/7]

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::set_material ( long  material_id,
segment_id_type  id 
)
inline

Sets the material ID on a segment.

Definition at line 471 of file device.hpp.

◆ set_material() [4/7]

template<typename MeshT >
void viennashe::detail::device_base< MeshT >::set_material ( long  material_id,
segment_type const &  seg 
)
inline

Sets the material ID on a segment.

Definition at line 464 of file device.hpp.

◆ set_material() [5/7]

template<typename MeshT >
template<typename MaterialType >
void viennashe::detail::device_base< MeshT >::set_material ( MaterialType  )
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.

◆ set_material() [6/7]

template<typename MeshT >
template<typename MaterialType >
void viennashe::detail::device_base< MeshT >::set_material ( MaterialType  ,
cell_type const &  elem 
)
inline

Sets the material type using the structs defined in viennashe::materials on a cell.

Definition at line 456 of file device.hpp.

◆ set_material() [7/7]

template<typename MeshT >
template<typename MaterialType >
void viennashe::detail::device_base< MeshT >::set_material ( MaterialType  ,
segment_type const &  seg 
)
inline

Sets the material type using the structs defined in viennashe::materials on a segment.

Definition at line 479 of file device.hpp.

◆ set_material_on_complex()

template<typename MeshT >
template<typename MeshOrSegmentT >
void viennashe::detail::device_base< MeshT >::set_material_on_complex ( long  material_id,
MeshOrSegmentT const &  meshseg 
)
inlineprotected

Definition at line 761 of file device.hpp.

Member Data Documentation

◆ cell_contact_potential_

template<typename MeshT >
std::vector<double> viennashe::detail::device_base< MeshT >::cell_contact_potential_
protected

Definition at line 804 of file device.hpp.

◆ cell_contact_potential_mask_

template<typename MeshT >
std::vector<bool> viennashe::detail::device_base< MeshT >::cell_contact_potential_mask_
protected

Definition at line 803 of file device.hpp.

◆ cell_doping_n_

template<typename MeshT >
std::vector<double> viennashe::detail::device_base< MeshT >::cell_doping_n_
protected

Definition at line 798 of file device.hpp.

◆ cell_doping_p_

template<typename MeshT >
std::vector<double> viennashe::detail::device_base< MeshT >::cell_doping_p_
protected

Definition at line 799 of file device.hpp.

◆ cell_fixed_charges_

template<typename MeshT >
std::vector<double> viennashe::detail::device_base< MeshT >::cell_fixed_charges_
protected

Definition at line 810 of file device.hpp.

◆ cell_material_

template<typename MeshT >
std::vector<material_id_type> viennashe::detail::device_base< MeshT >::cell_material_
protected

Definition at line 806 of file device.hpp.

◆ cell_temperature_

template<typename MeshT >
std::vector<double> viennashe::detail::device_base< MeshT >::cell_temperature_
protected

Definition at line 801 of file device.hpp.

◆ cell_traps_

template<typename MeshT >
std::vector<trap_level_container_type> viennashe::detail::device_base< MeshT >::cell_traps_
protected

Definition at line 808 of file device.hpp.

◆ mesh_

template<typename MeshT >
MeshT viennashe::detail::device_base< MeshT >::mesh_
protected

Definition at line 794 of file device.hpp.

◆ seg_

template<typename MeshT >
segmentation_type viennashe::detail::device_base< MeshT >::seg_
protected

Definition at line 795 of file device.hpp.


The documentation for this class was generated from the following file: