1#ifndef VIENNASHE_SHE_SCATTERING_ACOUSTIC_PHONON_HPP
2#define VIENNASHE_SHE_SCATTERING_ACOUSTIC_PHONON_HPP
41 template <
typename DeviceType>
56 double kinetic_energy,
59 return get(elem, kinetic_energy, ctype);
63 double kinetic_energy,
66 return get(elem, kinetic_energy, ctype);
82 template <
typename ElementType>
84 double kinetic_energy,
90 result[0].initial_energy(kinetic_energy);
91 result[0].final_energy(kinetic_energy);
92 result[0].rate( getScatteringRate(
base_type::device_.get_lattice_temperature(elem), ctype) );
93 result[0].generation_rate(0);
107 const double scattering_rate = 2.0 * pi * kB * T * E1 * E1 / (hbar * ul * ul * rho);
110 log::debug<log_acoustic_phonon_scattering>() <<
"acoustical phonon: " << scattering_rate << std::endl;
116 acoustic_phonon_scattering_parameters params_;
The main SHE configuration class. To be adjusted by the user for his/her needs.
Defines the physical properties of a device, e.g. doping. This is the implementation for 2d and highe...
double get_fit_factor(viennashe::carrier_type_id ctype) const
double get_mass_density(viennashe::carrier_type_id) const
double get_longitudinal_sound_velocity(viennashe::carrier_type_id) const
double get_deformation_potential(viennashe::carrier_type_id ctype) const
Acoustic phonon scattering process.
scatter_processes_type operator()(CellType const &elem, double kinetic_energy, viennashe::carrier_type_id ctype) const
acoustic_phonon_scattering(DeviceType const &device, viennashe::config const &conf)
scatter_process_id id() const
base_type::scatter_processes_type scatter_processes_type
scatter_processes_type operator()(FacetType const &elem, double kinetic_energy, viennashe::carrier_type_id ctype) const
scatter_processes_type value_type
std::vector< scatter_process_descriptor > scatter_processes_type
viennagrid::result_of::cell< MeshType >::type CellType
viennagrid::result_of::facet< MeshType >::type FacetType
DeviceType const & device_
A logging facility providing fine-grained control over logging in ViennaSHE.
A very simple material database. Needs to be replaced by something more versatile soon.
Provides a number of fundamental math constants.
@ ACOUSTIC_PHONON_SCATTERING
The main ViennaSHE namespace. All functionality resides inside this namespace.
carrier_type_id
Enumeration type for selecting the carrier type.
Provides a number of fundamental constants. All constants in SI units.
Returns a few helper routines for computing physical quantities. To be replaced in the future.
static const double pi
Pi.
static const double kB
Boltzmann constant.
static const double hbar
Modified Planck constant.
Defines the log keys used within the viennashe::she namespace.
Common classes for scattering operators.