ViennaSHE 1.3.0
Free open-source semiconductor device simulator using spherical harmonics expansions techniques.
viennashe::she::timestep_quantities< DeviceType > Class Template Reference

The main SHE simulator controller class. Acts as an accessor for all SHE quantities needed for the simulation. More...

#include <timestep_quantities.hpp>

Public Types

typedef DeviceType device_type
 
typedef unknown_she_quantity< CellType, FacetType > UnknownSHEQuantityType
 
typedef UnknownSHEQuantityType unknown_she_quantity_type
 
typedef const_she_quantity< CellType, FacetType > ResultSHEQuantityType
 
typedef std::deque< UnknownSHEQuantityTypeUnknownSHEQuantityListType
 
typedef viennashe::she::she_df_wrapper< DeviceType, UnknownSHEQuantityTypeshe_df_type
 
typedef viennashe::she::edf_wrapper< DeviceType, UnknownSHEQuantityTypeedf_type
 
typedef viennashe::she::generalized_edf_wrapper< DeviceType, UnknownSHEQuantityTypegeneralized_edf_type
 
typedef unknown_quantity< CellType > UnknownQuantityType
 
typedef UnknownQuantityType unknown_quantity_type
 
typedef const_quantity< CellType > ResultQuantityType
 
typedef ResultQuantityType potential_type
 
typedef ResultQuantityType electron_density_type
 
typedef ResultQuantityType hole_density_type
 

Public Member Functions

std::size_t num_trap_unknown_indices (CellType const &c) const
 Returns the number of inner unknown indices (aka. degree of freedom - dof) for traps associated with a cell. More...
 
long trap_unknown_index (CellType const &c, long inner_index) const
 Returns an unknown index for traps associated with a cell. More...
 
void setup_trap_unkown_indices (DeviceType const &device)
 
double trap_occupancy (CellType const &c, std::size_t inner_index) const
 
void trap_occupancy (CellType const &c, std::size_t inner_index, double new_occupancy)
 
UnknownSHEQuantityType const & she_quantity (std::string quantity_name) const
 Returns a const reference to a SHE quantity identified by its name. More...
 
UnknownSHEQuantityTypeshe_quantity (std::string quantity_name)
 Returns a reference to a SHE quantity identified by its name. More...
 
UnknownSHEQuantityType const & electron_distribution_function () const
 
UnknownSHEQuantityTypeelectron_distribution_function ()
 
UnknownSHEQuantityType const & hole_distribution_function () const
 
UnknownSHEQuantityTypehole_distribution_function ()
 
UnknownSHEQuantityType const & carrier_distribution_function (viennashe::carrier_type_id ctype) const
 
UnknownSHEQuantityTypecarrier_distribution_function (viennashe::carrier_type_id ctype)
 
UnknownSHEQuantityListTypeunknown_she_quantities ()
 
UnknownSHEQuantityListType const & unknown_she_quantities () const
 
ResultQuantityType quantity (std::string quantity_name) const
 Returns the quantity identified by its name. More...
 
ResultQuantityType potential () const
 
ResultQuantityType electron_density () const
 
ResultQuantityType hole_density () const
 
ResultQuantityType dg_pot_n () const
 
ResultQuantityType dg_pot_p () const
 
ResultQuantityType lattice_temperature () const
 
std::deque< UnknownQuantityType > & unknown_quantities ()
 
std::deque< UnknownQuantityType > const & unknown_quantities () const
 
UnknownQuantityTypeget_unknown_quantity (std::string quantity_name)
 Returns a reference to the unkown quantity identified by its name. More...
 
UnknownQuantityType const & get_unknown_quantity (std::string quantity_name) const
 Returns a const reference to the unkown quantity identified by its name. More...
 

Detailed Description

template<typename DeviceType>
class viennashe::she::timestep_quantities< DeviceType >

The main SHE simulator controller class. Acts as an accessor for all SHE quantities needed for the simulation.

Definition at line 43 of file timestep_quantities.hpp.

Member Typedef Documentation

◆ device_type

template<typename DeviceType >
typedef DeviceType viennashe::she::timestep_quantities< DeviceType >::device_type

Definition at line 62 of file timestep_quantities.hpp.

◆ edf_type

template<typename DeviceType >
typedef viennashe::she::edf_wrapper<DeviceType, UnknownSHEQuantityType> viennashe::she::timestep_quantities< DeviceType >::edf_type

Definition at line 70 of file timestep_quantities.hpp.

◆ electron_density_type

template<typename DeviceType >
typedef ResultQuantityType viennashe::she::timestep_quantities< DeviceType >::electron_density_type

Definition at line 78 of file timestep_quantities.hpp.

◆ generalized_edf_type

template<typename DeviceType >
typedef viennashe::she::generalized_edf_wrapper<DeviceType, UnknownSHEQuantityType> viennashe::she::timestep_quantities< DeviceType >::generalized_edf_type

Definition at line 71 of file timestep_quantities.hpp.

◆ hole_density_type

template<typename DeviceType >
typedef ResultQuantityType viennashe::she::timestep_quantities< DeviceType >::hole_density_type

Definition at line 79 of file timestep_quantities.hpp.

◆ potential_type

template<typename DeviceType >
typedef ResultQuantityType viennashe::she::timestep_quantities< DeviceType >::potential_type

Definition at line 77 of file timestep_quantities.hpp.

◆ ResultQuantityType

template<typename DeviceType >
typedef const_quantity<CellType> viennashe::she::timestep_quantities< DeviceType >::ResultQuantityType

Definition at line 75 of file timestep_quantities.hpp.

◆ ResultSHEQuantityType

template<typename DeviceType >
typedef const_she_quantity<CellType, FacetType> viennashe::she::timestep_quantities< DeviceType >::ResultSHEQuantityType

Definition at line 66 of file timestep_quantities.hpp.

◆ she_df_type

template<typename DeviceType >
typedef viennashe::she::she_df_wrapper<DeviceType, UnknownSHEQuantityType> viennashe::she::timestep_quantities< DeviceType >::she_df_type

Definition at line 69 of file timestep_quantities.hpp.

◆ unknown_quantity_type

template<typename DeviceType >
typedef UnknownQuantityType viennashe::she::timestep_quantities< DeviceType >::unknown_quantity_type

Definition at line 74 of file timestep_quantities.hpp.

◆ unknown_she_quantity_type

template<typename DeviceType >
typedef UnknownSHEQuantityType viennashe::she::timestep_quantities< DeviceType >::unknown_she_quantity_type

Definition at line 65 of file timestep_quantities.hpp.

◆ UnknownQuantityType

template<typename DeviceType >
typedef unknown_quantity<CellType> viennashe::she::timestep_quantities< DeviceType >::UnknownQuantityType

Definition at line 73 of file timestep_quantities.hpp.

◆ UnknownSHEQuantityListType

template<typename DeviceType >
typedef std::deque<UnknownSHEQuantityType> viennashe::she::timestep_quantities< DeviceType >::UnknownSHEQuantityListType

Definition at line 67 of file timestep_quantities.hpp.

◆ UnknownSHEQuantityType

template<typename DeviceType >
typedef unknown_she_quantity<CellType, FacetType> viennashe::she::timestep_quantities< DeviceType >::UnknownSHEQuantityType

Definition at line 64 of file timestep_quantities.hpp.

Member Function Documentation

◆ carrier_distribution_function() [1/2]

template<typename DeviceType >
UnknownSHEQuantityType & viennashe::she::timestep_quantities< DeviceType >::carrier_distribution_function ( viennashe::carrier_type_id  ctype)
inline

Definition at line 212 of file timestep_quantities.hpp.

◆ carrier_distribution_function() [2/2]

template<typename DeviceType >
UnknownSHEQuantityType const & viennashe::she::timestep_quantities< DeviceType >::carrier_distribution_function ( viennashe::carrier_type_id  ctype) const
inline

Definition at line 206 of file timestep_quantities.hpp.

◆ dg_pot_n()

template<typename DeviceType >
ResultQuantityType viennashe::she::timestep_quantities< DeviceType >::dg_pot_n ( ) const
inline

Definition at line 244 of file timestep_quantities.hpp.

◆ dg_pot_p()

template<typename DeviceType >
ResultQuantityType viennashe::she::timestep_quantities< DeviceType >::dg_pot_p ( ) const
inline

Definition at line 245 of file timestep_quantities.hpp.

◆ electron_density()

template<typename DeviceType >
ResultQuantityType viennashe::she::timestep_quantities< DeviceType >::electron_density ( ) const
inline

Definition at line 242 of file timestep_quantities.hpp.

◆ electron_distribution_function() [1/2]

template<typename DeviceType >
UnknownSHEQuantityType & viennashe::she::timestep_quantities< DeviceType >::electron_distribution_function ( )
inline

Definition at line 201 of file timestep_quantities.hpp.

◆ electron_distribution_function() [2/2]

template<typename DeviceType >
UnknownSHEQuantityType const & viennashe::she::timestep_quantities< DeviceType >::electron_distribution_function ( ) const
inline

Definition at line 200 of file timestep_quantities.hpp.

◆ get_unknown_quantity() [1/2]

template<typename DeviceType >
UnknownQuantityType & viennashe::she::timestep_quantities< DeviceType >::get_unknown_quantity ( std::string  quantity_name)
inline

Returns a reference to the unkown quantity identified by its name.

Parameters
quantity_nameA std::string uniquely identifying the quantity
Exceptions
quantity_not_found_exceptionThis method may throw a quantity_not_found_exception in case the requested quantity could not be found

Definition at line 256 of file timestep_quantities.hpp.

◆ get_unknown_quantity() [2/2]

template<typename DeviceType >
UnknownQuantityType const & viennashe::she::timestep_quantities< DeviceType >::get_unknown_quantity ( std::string  quantity_name) const
inline

Returns a const reference to the unkown quantity identified by its name.

Parameters
quantity_nameA std::string uniquely identifying the quantity
Exceptions
quantity_not_found_exceptionThis method may throw a quantity_not_found_exception in case the requested quantity could not be found

Definition at line 275 of file timestep_quantities.hpp.

◆ hole_density()

template<typename DeviceType >
ResultQuantityType viennashe::she::timestep_quantities< DeviceType >::hole_density ( ) const
inline

Definition at line 243 of file timestep_quantities.hpp.

◆ hole_distribution_function() [1/2]

template<typename DeviceType >
UnknownSHEQuantityType & viennashe::she::timestep_quantities< DeviceType >::hole_distribution_function ( )
inline

Definition at line 204 of file timestep_quantities.hpp.

◆ hole_distribution_function() [2/2]

template<typename DeviceType >
UnknownSHEQuantityType const & viennashe::she::timestep_quantities< DeviceType >::hole_distribution_function ( ) const
inline

Definition at line 203 of file timestep_quantities.hpp.

◆ lattice_temperature()

template<typename DeviceType >
ResultQuantityType viennashe::she::timestep_quantities< DeviceType >::lattice_temperature ( ) const
inline

Definition at line 246 of file timestep_quantities.hpp.

◆ num_trap_unknown_indices()

template<typename DeviceType >
std::size_t viennashe::she::timestep_quantities< DeviceType >::num_trap_unknown_indices ( CellType const &  c) const
inline

Returns the number of inner unknown indices (aka. degree of freedom - dof) for traps associated with a cell.

Parameters
cThe respective cell

Definition at line 92 of file timestep_quantities.hpp.

◆ potential()

template<typename DeviceType >
ResultQuantityType viennashe::she::timestep_quantities< DeviceType >::potential ( ) const
inline

Definition at line 241 of file timestep_quantities.hpp.

◆ quantity()

template<typename DeviceType >
ResultQuantityType viennashe::she::timestep_quantities< DeviceType >::quantity ( std::string  quantity_name) const
inline

Returns the quantity identified by its name.

Parameters
quantity_nameA std::string uniquely identifying the quantity
Exceptions
quantity_not_found_exceptionThis method may throw a quantity_not_found_exception in case the requested quantity could not be found

Definition at line 227 of file timestep_quantities.hpp.

◆ setup_trap_unkown_indices()

template<typename DeviceType >
void viennashe::she::timestep_quantities< DeviceType >::setup_trap_unkown_indices ( DeviceType const &  device)
inline

Definition at line 107 of file timestep_quantities.hpp.

◆ she_quantity() [1/2]

template<typename DeviceType >
UnknownSHEQuantityType & viennashe::she::timestep_quantities< DeviceType >::she_quantity ( std::string  quantity_name)
inline

Returns a reference to a SHE quantity identified by its name.

Parameters
quantity_nameA std::string uniquely identifying the quantity
Exceptions
quantity_not_found_exceptionThis method may throw a quantity_not_found_exception in case the requested quantity could not be found

Definition at line 186 of file timestep_quantities.hpp.

◆ she_quantity() [2/2]

template<typename DeviceType >
UnknownSHEQuantityType const & viennashe::she::timestep_quantities< DeviceType >::she_quantity ( std::string  quantity_name) const
inline

Returns a const reference to a SHE quantity identified by its name.

Parameters
quantity_nameA std::string uniquely identifying the quantity
Exceptions
quantity_not_found_exceptionThis method may throw a quantity_not_found_exception in case the requested quantity could not be found

Definition at line 167 of file timestep_quantities.hpp.

◆ trap_occupancy() [1/2]

template<typename DeviceType >
double viennashe::she::timestep_quantities< DeviceType >::trap_occupancy ( CellType const &  c,
std::size_t  inner_index 
) const
inline

Definition at line 145 of file timestep_quantities.hpp.

◆ trap_occupancy() [2/2]

template<typename DeviceType >
void viennashe::she::timestep_quantities< DeviceType >::trap_occupancy ( CellType const &  c,
std::size_t  inner_index,
double  new_occupancy 
)
inline

Definition at line 150 of file timestep_quantities.hpp.

◆ trap_unknown_index()

template<typename DeviceType >
long viennashe::she::timestep_quantities< DeviceType >::trap_unknown_index ( CellType const &  c,
long  inner_index 
) const
inline

Returns an unknown index for traps associated with a cell.

Parameters
cThe respective cell
inner_indexThe inner index

Definition at line 102 of file timestep_quantities.hpp.

◆ unknown_quantities() [1/2]

template<typename DeviceType >
std::deque< UnknownQuantityType > & viennashe::she::timestep_quantities< DeviceType >::unknown_quantities ( )
inline

Definition at line 248 of file timestep_quantities.hpp.

◆ unknown_quantities() [2/2]

template<typename DeviceType >
std::deque< UnknownQuantityType > const & viennashe::she::timestep_quantities< DeviceType >::unknown_quantities ( ) const
inline

Definition at line 249 of file timestep_quantities.hpp.

◆ unknown_she_quantities() [1/2]

template<typename DeviceType >
UnknownSHEQuantityListType & viennashe::she::timestep_quantities< DeviceType >::unknown_she_quantities ( )
inline

Definition at line 217 of file timestep_quantities.hpp.

◆ unknown_she_quantities() [2/2]

template<typename DeviceType >
UnknownSHEQuantityListType const & viennashe::she::timestep_quantities< DeviceType >::unknown_she_quantities ( ) const
inline

Definition at line 218 of file timestep_quantities.hpp.


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