ViennaSHE 1.3.0
Free open-source semiconductor device simulator using spherical harmonics expansions techniques.
libviennashe Namespace Reference

The internal C++ namespace of the library. More...

Namespaces

namespace  detail
 
namespace  quantity
 Contains everything quantity related.
 

Classes

class  array_to_accessor
 Maps a C-array to an element based accessor. Uses element.id() as an index to the C-array. More...
 
struct  meshtype
 The mesh types supported by libviennashe. More...
 
struct  quan_register_internal
 C++ to C wrapper of the quantity registry. More...
 

Functions

template<typename SimulatorT >
void 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 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 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 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 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 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

The internal C++ namespace of the library.

Function Documentation

◆ register_quans()

template<typename SimulatorT >
void libviennashe::register_quans ( SimulatorT const &  sim,
quan_register_internal reg 
)

Main quantity regsiter function. Add your simulator quantities here.

Parameters
simThe simulator from which quantities can be obtained
regThe internal quantity registry

Definition at line 215 of file quantity_register.hpp.

◆ she_fill_dos()

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.

Parameters
simThe SHE simulator (run will NOT be called!)
ctypeThe carrier type for which the EDF shall be returned
ekinReturn value: single array. Will hold the energy values
dosReturn value: single array. Will hold the DOS values
lenReturn value. Will hold the length of ekin and dos

Definition at line 453 of file quantity_register.hpp.

◆ she_fill_dos_at_cell()

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.

Parameters
numThe number of energies for which to fill
deltaepsThe delta in kinetic energy
dosaccA C++ accessor to the DOS
vtThe vertex at which to extract the DOS
ekinReturn value: single array. Will hold the energy values
dosReturn value: single array. Will hold the DOS values
lenReturn value. Will hold the length of ekin and dos

Definition at line 392 of file quantity_register.hpp.

◆ she_fill_edf()

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.

Parameters
simThe SHE simulator (run will NOT be called!)
ctypeThe carrier type for which the EDF shall be returned
ekinReturn value: single array. Will hold the kinetic energies
edfReturn value: single array. Will hold the EDF values
lenReturn value: single value. Will hold the length of each array

Definition at line 413 of file quantity_register.hpp.

◆ she_fill_edf_at_cell()

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.

Parameters
quanThe SHE quantities
edfaccA energy distribution function wrapper for quan
cellThe cell for which to extract the EDF
ekinReturn value: single array. Will hold the kinetic energies
edfReturn value: single array. Will hold the EDF values
lenReturn value: single value. Will hold the length of each array

Definition at line 367 of file quantity_register.hpp.

◆ she_fill_group_velocity()

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.

Parameters
simThe SHE simulator (run will NOT be called!)
ctypeThe carrier type for which the EDF shall be returned
ekinReturn value: single array. Will hold the energy values
vgReturn value: single array. Will hold the group velocity values
lenReturn value. Will hold the length of ekin and dos

Definition at line 483 of file quantity_register.hpp.