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

Optical phonon scattering process. More...

#include <optical_phonon_scattering.hpp>

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

 optical_phonon_scattering (DeviceType const &device, viennashe::config const &conf, double energy_grid_spacing=0)
 Constructs the optical phonon scattering object. Takes the phonon energy as parameter. More...
 
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
 
double energy () const
 Inelastic energy that is either gained or lost at scattering. More...
 
void energy (double energy)
 Modifies/Sets the inelastic scattering energy lost or gained. More...
 
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
 

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::optical_phonon_scattering< DeviceType >

Optical phonon scattering process.

This class provides the parameters for inelastic optical phonon scattering. Parameters are a mess at the moment.

Definition at line 45 of file optical_phonon_scattering.hpp.

Member Typedef Documentation

◆ scatter_processes_type

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

Definition at line 52 of file optical_phonon_scattering.hpp.

◆ value_type

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

Definition at line 53 of file optical_phonon_scattering.hpp.

Constructor & Destructor Documentation

◆ optical_phonon_scattering()

template<typename DeviceType >
viennashe::she::optical_phonon_scattering< DeviceType >::optical_phonon_scattering ( DeviceType const &  device,
viennashe::config const &  conf,
double  energy_grid_spacing = 0 
)
inline

Constructs the optical phonon scattering object. Takes the phonon energy as parameter.

Parameters
deviceThe device
confThe simulator configuration
energy_grid_spacingSpacing of the energy grid in order to map phonon energy suitably

Definition at line 62 of file optical_phonon_scattering.hpp.

Member Function Documentation

◆ energy() [1/2]

template<typename DeviceType >
double viennashe::she::optical_phonon_scattering< DeviceType >::energy ( ) const
inline

Inelastic energy that is either gained or lost at scattering.

Definition at line 101 of file optical_phonon_scattering.hpp.

◆ energy() [2/2]

template<typename DeviceType >
void viennashe::she::optical_phonon_scattering< DeviceType >::energy ( double  energy)
inline

Modifies/Sets the inelastic scattering energy lost or gained.

Energy is such that initial and final energies lie on grid nodes.

Definition at line 107 of file optical_phonon_scattering.hpp.

◆ id()

template<typename DeviceType >
scatter_process_id viennashe::she::optical_phonon_scattering< DeviceType >::id ( ) const
inlinevirtual

◆ operator()() [1/2]

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