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

Trapped charge scattering process. More...

#include <trapped_charge_scattering.hpp>

Inheritance diagram for viennashe::she::trapped_charge_scattering< DeviceType, TimeStepQuantitiesT >:
viennashe::she::scattering_base< DeviceType >

Public Types

typedef base_type::scatter_processes_type scatter_processes_type
 
typedef scatter_processes_type value_type
 
- Public Types inherited from viennashe::she::scattering_base< DeviceType >
typedef std::vector< scatter_process_descriptorscatter_processes_type
 
typedef scatter_processes_type value_type
 

Public Member Functions

 trapped_charge_scattering (DeviceType const &device, viennashe::config const &conf, TimeStepQuantitiesT const &quantities)
 
scatter_processes_type operator() (CellType const &elem, double kinetic_energy, viennashe::carrier_type_id ctype) const
 
scatter_processes_type operator() (FacetType const &elem, double kinetic_energy, viennashe::carrier_type_id ctype) const
 
scatter_process_id id () const
 
- Public Member Functions inherited from viennashe::she::scattering_base< DeviceType >
 scattering_base (DeviceType const &device, viennashe::config const &conf)
 
virtual ~scattering_base ()
 
virtual scatter_processes_type operator() (FacetType const &elem, double kinetic_energy, viennashe::carrier_type_id ctype) const =0
 
virtual scatter_processes_type operator() (CellType const &elem, double kinetic_energy, viennashe::carrier_type_id ctype) const =0
 
virtual scatter_process_id id () const =0
 

Protected Member Functions

template<typename ElementType >
scatter_processes_type get (ElementType const &elem, double kinetic_energy, viennashe::carrier_type_id ctype) const
 Returns all possible final scattering states for a carrier with initial kinetic energy 'kin_energy' for an edge with vertices v1 and v2. More...
 
template<typename ElementType >
double getScatteringRate (ElementType const &elem, double kinetic_energy, viennashe::carrier_type_id ctype) const
 
double get_charged_trap_density (CellType const &cell, viennashe::carrier_type_id) const
 
double get_charged_trap_density (FacetType const &facet, viennashe::carrier_type_id ctype) const
 
double get_scattering_rate (double NI, double kinetic_energy, double T, viennashe::carrier_type_id ctype) const
 

Additional Inherited Members

- Protected Types inherited from viennashe::she::scattering_base< DeviceType >
typedef DeviceType::mesh_type MeshType
 
typedef viennagrid::result_of::point< MeshType >::type PointType
 
typedef viennagrid::result_of::vertex< MeshType >::type VertexType
 
typedef viennagrid::result_of::facet< MeshType >::type FacetType
 
typedef viennagrid::result_of::cell< MeshType >::type CellType
 
- Protected Attributes inherited from viennashe::she::scattering_base< DeviceType >
DeviceType const & device_
 
viennashe::config const & conf_
 

Detailed Description

template<typename DeviceType, typename TimeStepQuantitiesT>
class viennashe::she::trapped_charge_scattering< DeviceType, TimeStepQuantitiesT >

Trapped charge scattering process.

Definition at line 52 of file trapped_charge_scattering.hpp.

Member Typedef Documentation

◆ scatter_processes_type

template<typename DeviceType , typename TimeStepQuantitiesT >
typedef base_type::scatter_processes_type viennashe::she::trapped_charge_scattering< DeviceType, TimeStepQuantitiesT >::scatter_processes_type

Definition at line 59 of file trapped_charge_scattering.hpp.

◆ value_type

template<typename DeviceType , typename TimeStepQuantitiesT >
typedef scatter_processes_type viennashe::she::trapped_charge_scattering< DeviceType, TimeStepQuantitiesT >::value_type

Definition at line 60 of file trapped_charge_scattering.hpp.

Constructor & Destructor Documentation

◆ trapped_charge_scattering()

template<typename DeviceType , typename TimeStepQuantitiesT >
viennashe::she::trapped_charge_scattering< DeviceType, TimeStepQuantitiesT >::trapped_charge_scattering ( DeviceType const &  device,
viennashe::config const &  conf,
TimeStepQuantitiesT const &  quantities 
)
inlineexplicit

Definition at line 62 of file trapped_charge_scattering.hpp.

Member Function Documentation

◆ get()

template<typename DeviceType , typename TimeStepQuantitiesT >
template<typename ElementType >
scatter_processes_type viennashe::she::trapped_charge_scattering< DeviceType, TimeStepQuantitiesT >::get ( ElementType const &  elem,
double  kinetic_energy,
viennashe::carrier_type_id  ctype 
) const
inlineprotected

Returns all possible final scattering states for a carrier with initial kinetic energy 'kin_energy' for an edge with vertices v1 and v2.

Parameters
elemThe element for which to obtain the scattering process
kinetic_energyKinetic energy of the particle before scattering
ctypeCarrier type, either electrons or holes
Returns
A vector describing all possible states. For ionized_impurity_scattering we use the approximation 'incoming energy equal final energy'.

Definition at line 95 of file trapped_charge_scattering.hpp.

◆ get_charged_trap_density() [1/2]

template<typename DeviceType , typename TimeStepQuantitiesT >
double viennashe::she::trapped_charge_scattering< DeviceType, TimeStepQuantitiesT >::get_charged_trap_density ( CellType const &  cell,
viennashe::carrier_type_id   
) const
inlineprotected

Definition at line 128 of file trapped_charge_scattering.hpp.

◆ get_charged_trap_density() [2/2]

template<typename DeviceType , typename TimeStepQuantitiesT >
double viennashe::she::trapped_charge_scattering< DeviceType, TimeStepQuantitiesT >::get_charged_trap_density ( FacetType const &  facet,
viennashe::carrier_type_id  ctype 
) const
inlineprotected

Definition at line 157 of file trapped_charge_scattering.hpp.

◆ get_scattering_rate()

template<typename DeviceType , typename TimeStepQuantitiesT >
double viennashe::she::trapped_charge_scattering< DeviceType, TimeStepQuantitiesT >::get_scattering_rate ( double  NI,
double  kinetic_energy,
double  T,
viennashe::carrier_type_id  ctype 
) const
inlineprotected

Definition at line 175 of file trapped_charge_scattering.hpp.

◆ getScatteringRate()

template<typename DeviceType , typename TimeStepQuantitiesT >
template<typename ElementType >
double viennashe::she::trapped_charge_scattering< DeviceType, TimeStepQuantitiesT >::getScatteringRate ( ElementType const &  elem,
double  kinetic_energy,
viennashe::carrier_type_id  ctype 
) const
inlineprotected

Definition at line 111 of file trapped_charge_scattering.hpp.

◆ id()

template<typename DeviceType , typename TimeStepQuantitiesT >
scatter_process_id viennashe::she::trapped_charge_scattering< DeviceType, TimeStepQuantitiesT >::id ( ) const
inlinevirtual

◆ operator()() [1/2]

template<typename DeviceType , typename TimeStepQuantitiesT >
scatter_processes_type viennashe::she::trapped_charge_scattering< DeviceType, TimeStepQuantitiesT >::operator() ( CellType const &  elem,
double  kinetic_energy,
viennashe::carrier_type_id  ctype 
) const
inlinevirtual

◆ operator()() [2/2]

template<typename DeviceType , typename TimeStepQuantitiesT >
scatter_processes_type viennashe::she::trapped_charge_scattering< DeviceType, TimeStepQuantitiesT >::operator() ( FacetType const &  elem,
double  kinetic_energy,
viennashe::carrier_type_id  ctype 
) const
inlinevirtual

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