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

Trapped charge scattering process. More...

#include <fixed_charge_scattering.hpp>

Inheritance diagram for viennashe::she::fixed_charge_scattering< DeviceType >:
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

 fixed_charge_scattering (DeviceType const &device, viennashe::config const &conf)
 
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
 
- 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 &vt, viennashe::carrier_type_id) const
 
double get_charged_trap_density (FacetType const &facet, viennashe::carrier_type_id ctype) const
 
double getScatteringRate (double NI, double kinetic_energy, double T, viennashe::carrier_type_id ctype) const
 
scatter_process_id id () 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>
class viennashe::she::fixed_charge_scattering< DeviceType >

Trapped charge scattering process.

Definition at line 48 of file fixed_charge_scattering.hpp.

Member Typedef Documentation

◆ scatter_processes_type

template<typename DeviceType >
typedef base_type::scatter_processes_type viennashe::she::fixed_charge_scattering< DeviceType >::scatter_processes_type

Definition at line 55 of file fixed_charge_scattering.hpp.

◆ value_type

template<typename DeviceType >
typedef scatter_processes_type viennashe::she::fixed_charge_scattering< DeviceType >::value_type

Definition at line 56 of file fixed_charge_scattering.hpp.

Constructor & Destructor Documentation

◆ fixed_charge_scattering()

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

Definition at line 58 of file fixed_charge_scattering.hpp.

Member Function Documentation

◆ get()

template<typename DeviceType >
template<typename ElementType >
scatter_processes_type viennashe::she::fixed_charge_scattering< DeviceType >::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
ctypeCharge type, either electron or hole
Returns
A vector describing all possible states. Ee use the approximation 'incoming energy equal final energy'.

Definition at line 88 of file fixed_charge_scattering.hpp.

◆ get_charged_trap_density() [1/2]

template<typename DeviceType >
double viennashe::she::fixed_charge_scattering< DeviceType >::get_charged_trap_density ( CellType const &  vt,
viennashe::carrier_type_id   
) const
inlineprotected

Definition at line 120 of file fixed_charge_scattering.hpp.

◆ get_charged_trap_density() [2/2]

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

Definition at line 128 of file fixed_charge_scattering.hpp.

◆ getScatteringRate() [1/2]

template<typename DeviceType >
double viennashe::she::fixed_charge_scattering< DeviceType >::getScatteringRate ( double  NI,
double  kinetic_energy,
double  T,
viennashe::carrier_type_id  ctype 
) const
inlineprotected

Definition at line 146 of file fixed_charge_scattering.hpp.

◆ getScatteringRate() [2/2]

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

Definition at line 104 of file fixed_charge_scattering.hpp.

◆ id()

template<typename DeviceType >
scatter_process_id viennashe::she::fixed_charge_scattering< DeviceType >::id ( ) const
inlineprotectedvirtual

◆ operator()() [1/2]

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

◆ operator()() [2/2]

template<typename DeviceType >
scatter_processes_type viennashe::she::fixed_charge_scattering< DeviceType >::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: