Classes | |
class | carrier_density_wrapper_by_reference |
An accessor for the carrier density in the device by reference More... | |
class | current_on_facet_by_ref_calculator |
class | energy_integrator_for_box |
class | value_holder_functor |
A simple functor to hold a single value. Operator() should not take any arguments. More... | |
Functions | |
template<typename PotentialAccessorType , typename ConfigType , typename TagType > | |
std::vector< long > | get_potential_indices (PotentialAccessorType const &potential_index, viennagrid::element< TagType, ConfigType > const &elem) |
template<typename PotentialAccessorType , typename ConfigType > | |
std::vector< long > | get_potential_indices (PotentialAccessorType const &potential_index, viennagrid::element< viennagrid::vertex_tag, ConfigType > const &elem) |
template<typename T > | |
bool | is_odd_assembly (T const &, T const &) |
template<typename T , typename U > | |
bool | is_odd_assembly (T const &, U const &) |
template<typename MeshT , typename CellT > | |
double | cell_connection_length (MeshT const &, CellT const &, CellT const &) |
Static dispatcher for computing the connection between two cells adjacent to a facet. Argument is not a facet, so return an arbitrary value. More... | |
template<typename MeshT , typename FacetT , typename CellT > | |
double | cell_connection_length (MeshT const &mesh, FacetT const &facet, CellT const &) |
Static dispatcher for computing the connection between two cells adjacent to a facet. More... | |
template<typename DeviceType > | |
bool | has_contact_potential (DeviceType const &device, typename viennagrid::result_of::cell< typename DeviceType::mesh_type >::type const &c) |
template<typename DeviceType , typename ElementType > | |
bool | has_contact_potential (DeviceType const &, ElementType const &) |
template<typename ElementType , typename QuantityPotential , typename QuantityPotentialOld > | |
double | potential_difference_to_old_timestep (ElementType const &elem, QuantityPotential const &new_potential, QuantityPotentialOld const &old_potential) |
Obtain the potential difference from an edge. More... | |
template<typename ConfigType , typename QuantityPotential , typename QuantityPotentialOld > | |
double | potential_difference_to_old_timestep (viennagrid::element< viennagrid::vertex_tag, ConfigType > const &elem, QuantityPotential const &new_potential, QuantityPotentialOld const &old_potential) |
Obtain the potential difference from a vertex. More... | |
template<typename DeviceType , typename TimeStepQuantitiesT , typename SHEQuantity , typename MatrixType , typename VectorType , typename CouplingMatrixType > | |
void | assemble_traps_coupling_on_cell (DeviceType const &device, TimeStepQuantitiesT const &quantities, SHEQuantity const &quan, viennashe::config const &conf, typename DeviceType::cell_type const &el, std::size_t index_H, MatrixType &matrix, VectorType &rhs, CouplingMatrixType const &diagonal_coupling_matrix, CouplingMatrixType const &coupling_matrix_00) |
Assembles the coupling of the distribution function with the trap occupancy for a cell (even-order f_lm) More... | |
template<typename DeviceType , typename TimeStepQuantitiesT , typename SHEQuantity , typename MatrixType , typename VectorType , typename CouplingMatrixType > | |
void | assemble_traps_coupling_on_facet (DeviceType const &device, TimeStepQuantitiesT const &quantities, SHEQuantity const &quan, viennashe::config const &conf, typename DeviceType::facet_type const &el, std::size_t index_H, MatrixType &matrix, VectorType &rhs, CouplingMatrixType const &diagonal_coupling_matrix, CouplingMatrixType const &coupling_matrix_00) |
Assembles the coupling of the distribution function with the trap occupancy for either a facet (odd-order f_lm) More... | |
template<typename UnknownSHEType , typename ElementType > | |
std::size_t | find_best_H (UnknownSHEType const &she_quantity, ElementType const &el, double kin_energy, std::size_t index_H_guess) |
Returns the best total energy in order to match the supplied kinetic energy. More... | |
template<typename FullMatrixType , typename VectorType > | |
void | combine_lines (FullMatrixType &system_matrix, VectorType &rhs, std::size_t line1, std::size_t line_to_add, std::size_t column_to_zero) |
template<typename DeviceType , typename VertexT , typename EdgeT > | |
void | distribute_expansion_orders_impl (DeviceType const &device, viennashe::she::unknown_she_quantity< VertexT, EdgeT > &quan, viennashe::config const &conf) |
Assigns the various expansion orders to the device. This is the implementation. More... | |
template<typename ElementType , typename VertexT , typename EdgeT > | |
void | transfer_to_new_H_space_on_element (ElementType const &el, std::size_t index_H, she::unknown_she_quantity< VertexT, EdgeT > const &old_quan, she::unknown_she_quantity< VertexT, EdgeT > &new_quan) |
template<typename ElementType , typename VertexT , typename EdgeT > | |
void | normalize_on_new_H_space (ElementType const &el, she::unknown_she_quantity< VertexT, EdgeT > &quan, double scaling_factor) |
void viennashe::she::detail::assemble_traps_coupling_on_cell | ( | DeviceType const & | device, |
TimeStepQuantitiesT const & | quantities, | ||
SHEQuantity const & | quan, | ||
viennashe::config const & | conf, | ||
typename DeviceType::cell_type const & | el, | ||
std::size_t | index_H, | ||
MatrixType & | matrix, | ||
VectorType & | rhs, | ||
CouplingMatrixType const & | diagonal_coupling_matrix, | ||
CouplingMatrixType const & | coupling_matrix_00 | ||
) |
Assembles the coupling of the distribution function with the trap occupancy for a cell (even-order f_lm)
Definition at line 69 of file assemble_traps.hpp.
void viennashe::she::detail::assemble_traps_coupling_on_facet | ( | DeviceType const & | device, |
TimeStepQuantitiesT const & | quantities, | ||
SHEQuantity const & | quan, | ||
viennashe::config const & | conf, | ||
typename DeviceType::facet_type const & | el, | ||
std::size_t | index_H, | ||
MatrixType & | matrix, | ||
VectorType & | rhs, | ||
CouplingMatrixType const & | diagonal_coupling_matrix, | ||
CouplingMatrixType const & | coupling_matrix_00 | ||
) |
Assembles the coupling of the distribution function with the trap occupancy for either a facet (odd-order f_lm)
Definition at line 166 of file assemble_traps.hpp.
double viennashe::she::detail::cell_connection_length | ( | MeshT const & | , |
CellT const & | , | ||
CellT const & | |||
) |
Static dispatcher for computing the connection between two cells adjacent to a facet. Argument is not a facet, so return an arbitrary value.
CellT | Arbitrary cell, only used for the static dispatch. |
Definition at line 98 of file assemble_common.hpp.
double viennashe::she::detail::cell_connection_length | ( | MeshT const & | mesh, |
FacetT const & | facet, | ||
CellT const & | |||
) |
Static dispatcher for computing the connection between two cells adjacent to a facet.
CellT | Arbitrary cell, only used for the static dispatch. |
Definition at line 109 of file assemble_common.hpp.
void viennashe::she::detail::combine_lines | ( | FullMatrixType & | system_matrix, |
VectorType & | rhs, | ||
std::size_t | line1, | ||
std::size_t | line_to_add, | ||
std::size_t | column_to_zero | ||
) |
Definition at line 40 of file eliminate.hpp.
void viennashe::she::detail::distribute_expansion_orders_impl | ( | DeviceType const & | device, |
viennashe::she::unknown_she_quantity< VertexT, EdgeT > & | quan, | ||
viennashe::config const & | conf | ||
) |
Assigns the various expansion orders to the device. This is the implementation.
device | The device (includes a ViennaGrid mesh) on which simulation is carried out |
quan | The unkown SHE quantities on edges and vertices |
conf | The simulator configuration |
Definition at line 262 of file expansion_order.hpp.
std::size_t viennashe::she::detail::find_best_H | ( | UnknownSHEType const & | she_quantity, |
ElementType const & | el, | ||
double | kin_energy, | ||
std::size_t | index_H_guess | ||
) |
Returns the best total energy in order to match the supplied kinetic energy.
Definition at line 46 of file df_wrappers.hpp.
std::vector< long > viennashe::she::detail::get_potential_indices | ( | PotentialAccessorType const & | potential_index, |
viennagrid::element< TagType, ConfigType > const & | elem | ||
) |
Definition at line 57 of file assemble_common.hpp.
std::vector< long > viennashe::she::detail::get_potential_indices | ( | PotentialAccessorType const & | potential_index, |
viennagrid::element< viennagrid::vertex_tag, ConfigType > const & | elem | ||
) |
Definition at line 71 of file assemble_common.hpp.
bool viennashe::she::detail::has_contact_potential | ( | DeviceType const & | , |
ElementType const & | |||
) |
Definition at line 136 of file assemble_common.hpp.
bool viennashe::she::detail::has_contact_potential | ( | DeviceType const & | device, |
typename viennagrid::result_of::cell< typename DeviceType::mesh_type >::type const & | c | ||
) |
Definition at line 130 of file assemble_common.hpp.
bool viennashe::she::detail::is_odd_assembly | ( | T const & | , |
T const & | |||
) |
Definition at line 82 of file assemble_common.hpp.
bool viennashe::she::detail::is_odd_assembly | ( | T const & | , |
U const & | |||
) |
Definition at line 88 of file assemble_common.hpp.
void viennashe::she::detail::normalize_on_new_H_space | ( | ElementType const & | el, |
she::unknown_she_quantity< VertexT, EdgeT > & | quan, | ||
double | scaling_factor | ||
) |
Definition at line 95 of file transfer_to_new_h_space.hpp.
double viennashe::she::detail::potential_difference_to_old_timestep | ( | ElementType const & | elem, |
QuantityPotential const & | new_potential, | ||
QuantityPotentialOld const & | old_potential | ||
) |
Obtain the potential difference from an edge.
Definition at line 33 of file assemble_timederivative.hpp.
double viennashe::she::detail::potential_difference_to_old_timestep | ( | viennagrid::element< viennagrid::vertex_tag, ConfigType > const & | elem, |
QuantityPotential const & | new_potential, | ||
QuantityPotentialOld const & | old_potential | ||
) |
Obtain the potential difference from a vertex.
Definition at line 43 of file assemble_timederivative.hpp.
void viennashe::she::detail::transfer_to_new_H_space_on_element | ( | ElementType const & | el, |
std::size_t | index_H, | ||
she::unknown_she_quantity< VertexT, EdgeT > const & | old_quan, | ||
she::unknown_she_quantity< VertexT, EdgeT > & | new_quan | ||
) |
Definition at line 60 of file transfer_to_new_h_space.hpp.