ViennaSHE 1.3.0
Free open-source semiconductor device simulator using spherical harmonics expansions techniques.
quantity_register.hpp File Reference

Common routines for the registry of simulator dependent quantities. More...

Go to the source code of this file.

Namespaces

namespace  libviennashe
 The internal C++ namespace of the library.
 
namespace  libviennashe::detail
 

Functions

template<typename DeviceType , typename PotentialQuantityType , typename CarrierQuantityType , typename MobilityModel >
void libviennashe::detail::register_DD_current_density (quan_register_internal &reg, DeviceType const &device, PotentialQuantityType const &potential, CarrierQuantityType const &carrier, viennashe::carrier_type_id ctype, MobilityModel const &mobility_model, std::string name)
 Registers a current density from a DD simulator. More...
 
template<typename DeviceType , typename SHEQuanT , typename ConfigT >
void libviennashe::detail::register_SHE_current_density (quan_register_internal &reg, DeviceType const &device, SHEQuanT const &shequan, ConfigT const &conf, std::string name)
 Registers a current density from a SHE simulator. More...
 
template<typename DeviceType , typename SHEQuanT , typename ConfigT >
void libviennashe::detail::register_average_velocity (quan_register_internal &reg, DeviceType const &device, SHEQuanT const &shequan, ConfigT const &conf, std::string name)
 Registers the average carrier velocity for a SHE simulator. More...
 
template<typename DeviceType , typename SHEQuanT , typename ConfigT >
void libviennashe::detail::register_average_energy (quan_register_internal &reg, DeviceType const &device, SHEQuanT const &shequan, ConfigT const &conf, std::string name)
 Registers the average kinetic energy for a SHE simulator. More...
 
template<typename DeviceType , typename SHEQuanT >
void libviennashe::detail::register_average_expansion_order (quan_register_internal &reg, DeviceType const &device, SHEQuanT const &shequan, std::string name)
 Registers the average expansion order (SHE simulator) More...
 
template<typename DeviceType , typename PotentialAccessor >
void libviennashe::detail::register_electric_field (quan_register_internal &reg, DeviceType const &device, PotentialAccessor const &potential, std::string quantity_name)
 Registers the electric field (vector) for any simulator. More...
 
template<typename DeviceType , typename PotentialAccessor >
void libviennashe::detail::register_electric_flux (quan_register_internal &reg, DeviceType const &device, PotentialAccessor const &potential, std::string quantity_name)
 Registers the electric flux density (vector) for any simulator. More...
 
template<typename SimulatorT >
void libviennashe::register_quans (SimulatorT const &sim, quan_register_internal &reg)
 Main quantity regsiter function. Add your simulator quantities here. More...
 
template<typename SHEQuanT , typename DFWrapperT , typename CellType >
void libviennashe::she_fill_edf_at_cell (SHEQuanT const &quan, DFWrapperT const &edfacc, CellType const &cell, double **ekin, double **edf, viennashe_index_type *len)
 Fills the given C-arrays with the EDF at a vertex. More...
 
template<typename DOSAccessorT , typename VertexType >
void libviennashe::she_fill_dos_at_cell (viennashe_index_type num, double deltaeps, DOSAccessorT const &dosacc, VertexType const &vt, double **ekin, double **dos, viennashe_index_type *len)
 Fills the given C-arrays ekin and dos with the DOS at a vertex. More...
 
template<typename SimulatorT >
void libviennashe::she_fill_edf (SimulatorT const &sim, viennashe::carrier_type_id ctype, double **ekin, double **edf, viennashe_index_type *len)
 Fills the given C-arrays with the complete EDF. More...
 
template<typename SimulatorT >
void libviennashe::she_fill_dos (SimulatorT const &sim, viennashe::carrier_type_id ctype, double **ekin, double **dos, viennashe_index_type *len)
 Fills the given C-arrays ekin and dos with the DOS for every vertex. More...
 
template<typename SimulatorT >
void libviennashe::she_fill_group_velocity (SimulatorT const &sim, viennashe::carrier_type_id ctype, double **ekin, double **vg, viennashe_index_type *len)
 Fills the given C-arrays ekin and vg with the group velocity for every vertex. More...
 

Detailed Description

Common routines for the registry of simulator dependent quantities.

Definition in file quantity_register.hpp.