ViennaSHE 1.3.0
Free open-source semiconductor device simulator using spherical harmonics expansions techniques.
viennashe::config Class Reference

The main SHE configuration class. To be adjusted by the user for his/her needs. More...

#include <config.hpp>

Inheritance diagram for viennashe::config:
viennashe::dispersion_relation_ids

Public Types

typedef viennashe::solvers::linear_solver_config linear_solver_config_type
 
typedef viennashe::solvers::nonlinear_solver_config nonlinear_solver_config_type
 
typedef viennashe::physics::dispersion_proxy dispersion_relation_type
 
- Public Types inherited from viennashe::dispersion_relation_ids
enum  { parabolic_dispersion , modena_dispersion , ext_vecchi_dispersion }
 

Public Member Functions

 config ()
 
 config (config const &other)
 
void operator= (config const &other)
 
bool with_electrons () const
 Returns true if electrons are considered in the simulation. More...
 
void with_electrons (bool b)
 Activates are deactivates electrons in the simulation. More...
 
equation_id get_electron_equation () const
 
void set_electron_equation (equation_id equ_id)
 
bool with_holes () const
 Returns true if holes are considered in the simulation. More...
 
void with_holes (bool b)
 Activates are deactivates holes in the simulation. More...
 
equation_id get_hole_equation () const
 
void set_hole_equation (equation_id equ_id)
 
bool with_traps () const
 Returns true if traps are considered in the simulation. More...
 
void with_traps (bool b)
 Activates or deactivates traps in the simulation. More...
 
bool with_trap_selfconsistency () const
 Returns true if traps are considered self-consistently in the simulation. More...
 
void with_trap_selfconsistency (bool b)
 Activates or deactivates trap self-consistency in the simulation. More...
 
viennashe::physics::dispersion_proxy dispersion_relation_electrons () const
 Returns the dispersion relation for electrons. More...
 
viennashe::physics::dispersion_proxy dispersion_relation_holes () const
 Returns the dispersion relation for holes. More...
 
viennashe::physics::dispersion_proxy dispersion_relation (viennashe::carrier_type_id ctype) const
 Returns the dispersion relation for electrons. More...
 
void dispersion_relation_electrons (long dispersion_id)
 Sets a new dispersion relation for electrons. More...
 
void dispersion_relation (long dispersion_id, viennashe::carrier_type_id ctype)
 Sets a new dispersion relation for electrons. More...
 
void dispersion_relation (const std::string name)
 Sets a new dispersion relation for electrons and holes. More...
 
void dispersion_relation_electrons (const std::string name)
 Sets a new dispersion relation for electrons. More...
 
void dispersion_relation_holes (long dispersion_id)
 Sets a new dispersion relation for holes. More...
 
void dispersion_relation_holes (const std::string name)
 Sets a new dispersion relation for holes. More...
 
she_discretization_type_id she_discretization_type () const
 
void she_discretization_type (she_discretization_type_id discretization_id)
 
she_scaling_type_id she_scaling_type () const
 
void she_scaling_type (she_scaling_type_id scaling_id)
 
long max_expansion_order () const
 Returns the current maximum expansion order. More...
 
void max_expansion_order (long new_L)
 Sets a new maximum expansion order. For uniform expansions, new_L will be used all over the device. For adaptive SHE, adaption is stopped at new_L. More...
 
bool adaptive_expansions () const
 Returns the flag for the use of adaptive expansions. More...
 
void adaptive_expansions (bool b)
 Sets the use of adaptive expansions. More...
 
double min_kinetic_energy_range (viennashe::carrier_type_id ctype) const
 Returns the minimum kinetic energy range for the selected carrier. More...
 
void min_kinetic_energy_range (double e_new, viennashe::carrier_type_id ctype)
 Sets the minimum kinetic energy range for the selected carrier. More...
 
void min_kinetic_energy_range (double e_new)
 Sets the minimum kinetic energy range in the conduction band for electrons and in the valence band for electrons. More...
 
double max_kinetic_energy_range (viennashe::carrier_type_id ctype) const
 Returns the minimum kinetic energy range for the selected carrier. More...
 
void max_kinetic_energy_range (double e_new, viennashe::carrier_type_id ctype)
 Sets the minimum kinetic energy range for the selected carrier. More...
 
void max_kinetic_energy_range (double e_new)
 Sets the minimum kinetic energy range in the conduction band for electrons and in the valence band for electrons. More...
 
double energy_spacing () const
 Returns the uniform energy spacing of discrete energies. More...
 
void energy_spacing (double new_spacing)
 Sets a new discrete energy spacing. More...
 
bool use_h_transformation () const
 Returns whether the H-transformation is used. More...
 
void use_h_transformation (bool b)
 Sets whether the H-transformation should be used for the energy discretization. More...
 
viennashe::she::scatter_configscattering ()
 Returns the configuration object for scattering. More...
 
viennashe::she::scatter_config const & scattering () const
 Returns the configuration object for scattering. More...
 
linear_solver_config_typelinear_solver ()
 Returns the configuration object for the linear solver. More...
 
linear_solver_config_type const & linear_solver () const
 Returns the configuration object for the linear solver. More...
 
nonlinear_solver_config_typenonlinear_solver ()
 Returns the configuration object for the nonlinear solver. More...
 
nonlinear_solver_config_type const & nonlinear_solver () const
 Returns the configuration object for the nonlinear solver. More...
 
bool with_hde () const
 
void with_hde (bool v)
 
bool quantum_correction () const
 
void quantum_correction (bool use_quantum_correction)
 
bool with_quantum_correction () const
 
void with_quantum_correction (bool b)
 
detail::density_gradient_config const & density_gradient (viennashe::carrier_type_id ctype) const
 
detail::density_gradient_configdensity_gradient (viennashe::carrier_type_id ctype)
 
double time_step_size () const
 
she_boundary_conditions_config const & she_boundary_conditions () const
 
she_boundary_conditions_configshe_boundary_conditions ()
 
bool setup_insulator_distances () const
 

Detailed Description

The main SHE configuration class. To be adjusted by the user for his/her needs.

Definition at line 122 of file config.hpp.

Member Typedef Documentation

◆ dispersion_relation_type

◆ linear_solver_config_type

◆ nonlinear_solver_config_type

Constructor & Destructor Documentation

◆ config() [1/2]

viennashe::config::config ( )
inline

Definition at line 131 of file config.hpp.

◆ config() [2/2]

viennashe::config::config ( config const &  other)
inline

Definition at line 161 of file config.hpp.

Member Function Documentation

◆ adaptive_expansions() [1/2]

bool viennashe::config::adaptive_expansions ( ) const
inline

Returns the flag for the use of adaptive expansions.

Definition at line 379 of file config.hpp.

◆ adaptive_expansions() [2/2]

void viennashe::config::adaptive_expansions ( bool  b)
inline

Sets the use of adaptive expansions.

Definition at line 381 of file config.hpp.

◆ density_gradient() [1/2]

detail::density_gradient_config & viennashe::config::density_gradient ( viennashe::carrier_type_id  ctype)
inline

Definition at line 527 of file config.hpp.

◆ density_gradient() [2/2]

detail::density_gradient_config const & viennashe::config::density_gradient ( viennashe::carrier_type_id  ctype) const
inline

Definition at line 519 of file config.hpp.

◆ dispersion_relation() [1/3]

void viennashe::config::dispersion_relation ( const std::string  name)
inline

Sets a new dispersion relation for electrons and holes.

Parameters
nameString identifier of the dispersion relation

Definition at line 313 of file config.hpp.

◆ dispersion_relation() [2/3]

void viennashe::config::dispersion_relation ( long  dispersion_id,
viennashe::carrier_type_id  ctype 
)
inline

Sets a new dispersion relation for electrons.

Parameters
dispersion_idIdentifier of the dispersion relation,
See also
dispersion_relation_ids
Parameters
ctypeIdentifier of the carrier type

Definition at line 301 of file config.hpp.

◆ dispersion_relation() [3/3]

viennashe::physics::dispersion_proxy viennashe::config::dispersion_relation ( viennashe::carrier_type_id  ctype) const
inline

Returns the dispersion relation for electrons.

Definition at line 266 of file config.hpp.

◆ dispersion_relation_electrons() [1/3]

viennashe::physics::dispersion_proxy viennashe::config::dispersion_relation_electrons ( ) const
inline

Returns the dispersion relation for electrons.

Definition at line 254 of file config.hpp.

◆ dispersion_relation_electrons() [2/3]

void viennashe::config::dispersion_relation_electrons ( const std::string  name)
inline

Sets a new dispersion relation for electrons.

Parameters
nameString identifier of the dispersion relation

Definition at line 323 of file config.hpp.

◆ dispersion_relation_electrons() [3/3]

void viennashe::config::dispersion_relation_electrons ( long  dispersion_id)
inline

Sets a new dispersion relation for electrons.

Parameters
dispersion_idIdentifier of the dispersion relation,
See also
dispersion_relation_ids

Definition at line 280 of file config.hpp.

◆ dispersion_relation_holes() [1/3]

viennashe::physics::dispersion_proxy viennashe::config::dispersion_relation_holes ( ) const
inline

Returns the dispersion relation for holes.

Definition at line 260 of file config.hpp.

◆ dispersion_relation_holes() [2/3]

void viennashe::config::dispersion_relation_holes ( const std::string  name)
inline

Sets a new dispersion relation for holes.

Parameters
nameString identifier of the dispersion relation

Definition at line 354 of file config.hpp.

◆ dispersion_relation_holes() [3/3]

void viennashe::config::dispersion_relation_holes ( long  dispersion_id)
inline

Sets a new dispersion relation for holes.

Parameters
dispersion_idIdentifier of the dispersion relation,
See also
dispersion_relation_ids

Definition at line 333 of file config.hpp.

◆ energy_spacing() [1/2]

double viennashe::config::energy_spacing ( ) const
inline

Returns the uniform energy spacing of discrete energies.

Definition at line 460 of file config.hpp.

◆ energy_spacing() [2/2]

void viennashe::config::energy_spacing ( double  new_spacing)
inline

Sets a new discrete energy spacing.

Definition at line 462 of file config.hpp.

◆ get_electron_equation()

equation_id viennashe::config::get_electron_equation ( ) const
inline

Definition at line 230 of file config.hpp.

◆ get_hole_equation()

equation_id viennashe::config::get_hole_equation ( ) const
inline

Definition at line 238 of file config.hpp.

◆ linear_solver() [1/2]

linear_solver_config_type & viennashe::config::linear_solver ( )
inline

Returns the configuration object for the linear solver.

Definition at line 485 of file config.hpp.

◆ linear_solver() [2/2]

linear_solver_config_type const & viennashe::config::linear_solver ( ) const
inline

Returns the configuration object for the linear solver.

Definition at line 487 of file config.hpp.

◆ max_expansion_order() [1/2]

long viennashe::config::max_expansion_order ( ) const
inline

Returns the current maximum expansion order.

Definition at line 369 of file config.hpp.

◆ max_expansion_order() [2/2]

void viennashe::config::max_expansion_order ( long  new_L)
inline

Sets a new maximum expansion order. For uniform expansions, new_L will be used all over the device. For adaptive SHE, adaption is stopped at new_L.

Definition at line 372 of file config.hpp.

◆ max_kinetic_energy_range() [1/3]

void viennashe::config::max_kinetic_energy_range ( double  e_new)
inline

Sets the minimum kinetic energy range in the conduction band for electrons and in the valence band for electrons.

Definition at line 448 of file config.hpp.

◆ max_kinetic_energy_range() [2/3]

void viennashe::config::max_kinetic_energy_range ( double  e_new,
viennashe::carrier_type_id  ctype 
)
inline

Sets the minimum kinetic energy range for the selected carrier.

Definition at line 434 of file config.hpp.

◆ max_kinetic_energy_range() [3/3]

double viennashe::config::max_kinetic_energy_range ( viennashe::carrier_type_id  ctype) const
inline

Returns the minimum kinetic energy range for the selected carrier.

Definition at line 425 of file config.hpp.

◆ min_kinetic_energy_range() [1/3]

void viennashe::config::min_kinetic_energy_range ( double  e_new)
inline

Sets the minimum kinetic energy range in the conduction band for electrons and in the valence band for electrons.

Definition at line 411 of file config.hpp.

◆ min_kinetic_energy_range() [2/3]

void viennashe::config::min_kinetic_energy_range ( double  e_new,
viennashe::carrier_type_id  ctype 
)
inline

Sets the minimum kinetic energy range for the selected carrier.

Definition at line 397 of file config.hpp.

◆ min_kinetic_energy_range() [3/3]

double viennashe::config::min_kinetic_energy_range ( viennashe::carrier_type_id  ctype) const
inline

Returns the minimum kinetic energy range for the selected carrier.

Definition at line 388 of file config.hpp.

◆ nonlinear_solver() [1/2]

nonlinear_solver_config_type & viennashe::config::nonlinear_solver ( )
inline

Returns the configuration object for the nonlinear solver.

Definition at line 495 of file config.hpp.

◆ nonlinear_solver() [2/2]

nonlinear_solver_config_type const & viennashe::config::nonlinear_solver ( ) const
inline

Returns the configuration object for the nonlinear solver.

Definition at line 497 of file config.hpp.

◆ operator=()

void viennashe::config::operator= ( config const &  other)
inline

Definition at line 191 of file config.hpp.

◆ quantum_correction() [1/2]

bool viennashe::config::quantum_correction ( ) const
inline

Definition at line 509 of file config.hpp.

◆ quantum_correction() [2/2]

void viennashe::config::quantum_correction ( bool  use_quantum_correction)
inline

Definition at line 510 of file config.hpp.

◆ scattering() [1/2]

viennashe::she::scatter_config & viennashe::config::scattering ( )
inline

Returns the configuration object for scattering.

Definition at line 475 of file config.hpp.

◆ scattering() [2/2]

viennashe::she::scatter_config const & viennashe::config::scattering ( ) const
inline

Returns the configuration object for scattering.

Definition at line 477 of file config.hpp.

◆ set_electron_equation()

void viennashe::config::set_electron_equation ( equation_id  equ_id)
inline

Definition at line 231 of file config.hpp.

◆ set_hole_equation()

void viennashe::config::set_hole_equation ( equation_id  equ_id)
inline

Definition at line 239 of file config.hpp.

◆ setup_insulator_distances()

bool viennashe::config::setup_insulator_distances ( ) const
inline

Definition at line 546 of file config.hpp.

◆ she_boundary_conditions() [1/2]

she_boundary_conditions_config & viennashe::config::she_boundary_conditions ( )
inline

Definition at line 541 of file config.hpp.

◆ she_boundary_conditions() [2/2]

she_boundary_conditions_config const & viennashe::config::she_boundary_conditions ( ) const
inline

Definition at line 540 of file config.hpp.

◆ she_discretization_type() [1/2]

she_discretization_type_id viennashe::config::she_discretization_type ( ) const
inline

Definition at line 360 of file config.hpp.

◆ she_discretization_type() [2/2]

void viennashe::config::she_discretization_type ( she_discretization_type_id  discretization_id)
inline

Definition at line 361 of file config.hpp.

◆ she_scaling_type() [1/2]

she_scaling_type_id viennashe::config::she_scaling_type ( ) const
inline

Definition at line 363 of file config.hpp.

◆ she_scaling_type() [2/2]

void viennashe::config::she_scaling_type ( she_scaling_type_id  scaling_id)
inline

Definition at line 364 of file config.hpp.

◆ time_step_size()

double viennashe::config::time_step_size ( ) const
inline

Definition at line 536 of file config.hpp.

◆ use_h_transformation() [1/2]

bool viennashe::config::use_h_transformation ( ) const
inline

Returns whether the H-transformation is used.

Definition at line 465 of file config.hpp.

◆ use_h_transformation() [2/2]

void viennashe::config::use_h_transformation ( bool  b)
inline

Sets whether the H-transformation should be used for the energy discretization.

Definition at line 467 of file config.hpp.

◆ with_electrons() [1/2]

bool viennashe::config::with_electrons ( ) const
inline

Returns true if electrons are considered in the simulation.

Definition at line 226 of file config.hpp.

◆ with_electrons() [2/2]

void viennashe::config::with_electrons ( bool  b)
inline

Activates are deactivates electrons in the simulation.

Definition at line 228 of file config.hpp.

◆ with_hde() [1/2]

bool viennashe::config::with_hde ( ) const
inline

Definition at line 502 of file config.hpp.

◆ with_hde() [2/2]

void viennashe::config::with_hde ( bool  v)
inline

Definition at line 503 of file config.hpp.

◆ with_holes() [1/2]

bool viennashe::config::with_holes ( ) const
inline

Returns true if holes are considered in the simulation.

Definition at line 234 of file config.hpp.

◆ with_holes() [2/2]

void viennashe::config::with_holes ( bool  b)
inline

Activates are deactivates holes in the simulation.

Definition at line 236 of file config.hpp.

◆ with_quantum_correction() [1/2]

bool viennashe::config::with_quantum_correction ( ) const
inline

Definition at line 512 of file config.hpp.

◆ with_quantum_correction() [2/2]

void viennashe::config::with_quantum_correction ( bool  b)
inline

Definition at line 513 of file config.hpp.

◆ with_trap_selfconsistency() [1/2]

bool viennashe::config::with_trap_selfconsistency ( ) const
inline

Returns true if traps are considered self-consistently in the simulation.

Definition at line 247 of file config.hpp.

◆ with_trap_selfconsistency() [2/2]

void viennashe::config::with_trap_selfconsistency ( bool  b)
inline

Activates or deactivates trap self-consistency in the simulation.

Definition at line 249 of file config.hpp.

◆ with_traps() [1/2]

bool viennashe::config::with_traps ( ) const
inline

Returns true if traps are considered in the simulation.

Definition at line 243 of file config.hpp.

◆ with_traps() [2/2]

void viennashe::config::with_traps ( bool  b)
inline

Activates or deactivates traps in the simulation.

Definition at line 245 of file config.hpp.


The documentation for this class was generated from the following file: