Class for self-consistent SHE simulations. More...
#include <simulator.hpp>
Public Types | |
typedef DeviceType | device_type |
typedef viennashe::she::timestep_quantities< DeviceType > | SHETimeStepQuantitiesT |
typedef SHETimeStepQuantitiesT::she_df_type | she_df_type |
typedef SHETimeStepQuantitiesT::edf_type | edf_type |
typedef SHETimeStepQuantitiesT::generalized_edf_type | generalized_edf_type |
typedef SHETimeStepQuantitiesT::UnknownSHEQuantityType | she_quantity_type |
typedef unknown_quantity< CellType > | UnknownQuantityType |
typedef UnknownQuantityType | unknown_quantity_type |
typedef const_quantity< CellType > | ResultQuantityType |
typedef ResultQuantityType | potential_type |
typedef ResultQuantityType | electron_density_type |
typedef ResultQuantityType | hole_density_type |
Public Member Functions | |
simulator (DeviceType &device, viennashe::config const &conf=viennashe::config()) | |
Constructs the self-consistent simulator object. More... | |
template<typename QuantityAccessorT > | |
void | set_initial_guess (std::string quan_name, QuantityAccessorT const &quan_acc) |
Transfers the inital guess for the given quantity. More... | |
void | run () |
Launches the solver. Uses the built-in potential as initial guess for the potential and the doping concentration as the initial guess for carriers. More... | |
SHETimeStepQuantitiesT const & | quantities () const |
Returns the controller object. Const version. More... | |
SHETimeStepQuantitiesT & | quantities () |
Returns the controller object. Non-const version. More... | |
she_df_type | she_df (carrier_type_id ctype) const |
Returns a wrapper for the distribution function for electrons and holes (whatever is computed by the simulator), which can be evaluated in the vertices and edges of the mesh. More... | |
edf_type | edf (carrier_type_id ctype) const |
Returns a wrapper for the evaluation of the energy distribution function (i.e. the isotropic part of f) More... | |
generalized_edf_type | generalized_edf (carrier_type_id ctype) const |
Returns a wrapper for the evaluation of the generalized energy distribution function (f * Z, with density of states Z) More... | |
potential_type | potential () const |
Returns a wrapper for the potential, which can be evaluated in every vertex of the mesh. More... | |
electron_density_type | electron_density () const |
Returns a wrapper for the electron density, which can be evaluated in every vertex of the mesh. More... | |
hole_density_type | hole_density () const |
Returns a wrapper for the hole density, which can be evaluated in every vertex of the mesh More... | |
SHETimeStepQuantitiesT const & | quantity_history (std::size_t index) const |
Returns a wrapper for the trap occupancy, which can be evaluated in every vertex of the mesh. More... | |
std::size_t | quantity_history_size () const |
void | advance_in_time () |
Cycles the quantities. Moves (copy) the current quantities to the history and empties the current quantities. Does not increment time. More... | |
ResultQuantityType | dg_pot_n () const |
ResultQuantityType | dg_pot_p () const |
viennashe::config const & | config () const |
Returns the config object used by the simulator controller. More... | |
viennashe::config & | config () |
DeviceType const & | device () const |
DeviceType & | device () |
Class for self-consistent SHE simulations.
DeviceType | Type of the device the simulator is operating on |
Definition at line 674 of file simulator.hpp.
typedef DeviceType viennashe::simulator< DeviceType >::device_type |
Definition at line 693 of file simulator.hpp.
typedef SHETimeStepQuantitiesT::edf_type viennashe::simulator< DeviceType >::edf_type |
Definition at line 698 of file simulator.hpp.
typedef ResultQuantityType viennashe::simulator< DeviceType >::electron_density_type |
Definition at line 709 of file simulator.hpp.
typedef SHETimeStepQuantitiesT::generalized_edf_type viennashe::simulator< DeviceType >::generalized_edf_type |
Definition at line 699 of file simulator.hpp.
typedef ResultQuantityType viennashe::simulator< DeviceType >::hole_density_type |
Definition at line 710 of file simulator.hpp.
typedef ResultQuantityType viennashe::simulator< DeviceType >::potential_type |
Definition at line 708 of file simulator.hpp.
typedef const_quantity<CellType> viennashe::simulator< DeviceType >::ResultQuantityType |
Definition at line 706 of file simulator.hpp.
typedef SHETimeStepQuantitiesT::she_df_type viennashe::simulator< DeviceType >::she_df_type |
Definition at line 697 of file simulator.hpp.
typedef SHETimeStepQuantitiesT::UnknownSHEQuantityType viennashe::simulator< DeviceType >::she_quantity_type |
Definition at line 701 of file simulator.hpp.
typedef viennashe::she::timestep_quantities<DeviceType> viennashe::simulator< DeviceType >::SHETimeStepQuantitiesT |
Definition at line 695 of file simulator.hpp.
typedef UnknownQuantityType viennashe::simulator< DeviceType >::unknown_quantity_type |
Definition at line 704 of file simulator.hpp.
typedef unknown_quantity<CellType> viennashe::simulator< DeviceType >::UnknownQuantityType |
Definition at line 703 of file simulator.hpp.
|
inline |
Constructs the self-consistent simulator object.
device | The device |
conf | A SHE configuation object |
Definition at line 718 of file simulator.hpp.
|
inline |
Cycles the quantities. Moves (copy) the current quantities to the history and empties the current quantities. Does not increment time.
Definition at line 1199 of file simulator.hpp.
|
inline |
Definition at line 1211 of file simulator.hpp.
|
inline |
Returns the config object used by the simulator controller.
Definition at line 1210 of file simulator.hpp.
|
inline |
Definition at line 1214 of file simulator.hpp.
|
inline |
Definition at line 1213 of file simulator.hpp.
|
inline |
Definition at line 1206 of file simulator.hpp.
|
inline |
Definition at line 1207 of file simulator.hpp.
|
inline |
Returns a wrapper for the evaluation of the energy distribution function (i.e. the isotropic part of f)
Definition at line 1152 of file simulator.hpp.
|
inline |
Returns a wrapper for the electron density, which can be evaluated in every vertex of the mesh.
Definition at line 1173 of file simulator.hpp.
|
inline |
Returns a wrapper for the evaluation of the generalized energy distribution function (f * Z, with density of states Z)
Definition at line 1158 of file simulator.hpp.
|
inline |
Returns a wrapper for the hole density, which can be evaluated in every vertex of the mesh
Definition at line 1179 of file simulator.hpp.
|
inline |
Returns a wrapper for the potential, which can be evaluated in every vertex of the mesh.
A simulation must have been carried out already, otherwise a quantity_not_yet_available_exception is thrown.
Definition at line 1167 of file simulator.hpp.
|
inline |
Returns the controller object. Non-const version.
Definition at line 1142 of file simulator.hpp.
|
inline |
Returns the controller object. Const version.
Definition at line 1139 of file simulator.hpp.
|
inline |
Returns a wrapper for the trap occupancy, which can be evaluated in every vertex of the mesh.
Returns the state of the simulator at an earlier timestep.
index | Distance from first time step. 0: first timestep, 1: next timestep, etc. |
Definition at line 1194 of file simulator.hpp.
|
inline |
Definition at line 1196 of file simulator.hpp.
|
inline |
Launches the solver. Uses the built-in potential as initial guess for the potential and the doping concentration as the initial guess for carriers.
Definition at line 877 of file simulator.hpp.
|
inline |
Transfers the inital guess for the given quantity.
quan_name | The name of the quantity |
quan_acc | An accessor, which is given a ViennaGrid vertex and returns a value |
Definition at line 866 of file simulator.hpp.
|
inline |
Returns a wrapper for the distribution function for electrons and holes (whatever is computed by the simulator), which can be evaluated in the vertices and edges of the mesh.
Definition at line 1146 of file simulator.hpp.