ViennaSHE 1.3.0
Free open-source semiconductor device simulator using spherical harmonics expansions techniques.
config.h File Reference

Go to the source code of this file.

Typedefs

typedef struct viennashe_config_impl viennashe_config_impl
 
typedef viennashe_config_implviennashe_config
 

Enumerations

enum  viennashe_linear_solver_id { viennashe_linear_solver_dense , viennashe_linear_solver_serial , viennashe_linear_solver_parallel , viennashe_linear_solver_gpu_parallel }
 Enum of available linear solvers. More...
 
enum  viennashe_nonlinear_solver_id { viennashe_nonlinear_solver_gummel , viennashe_nonlinear_solver_newton }
 Enum of available non-linear solvers. More...
 

Functions

VIENNASHE_EXPORT viennasheErrorCode viennashe_create_config (viennashe_config *conf)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_free_config (viennashe_config conf)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_config_standard_dd (viennashe_config conf)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_config_she_bipolar (viennashe_config conf, libviennashe_bool with_traps)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_config_she_unipolar_n (viennashe_config conf)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_config_she_unipolar_p (viennashe_config conf)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_config_enable_density_gradient (viennashe_config conf)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_config_disable_density_gradient (viennashe_config conf)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_set_linear_solver_config (viennashe_config conf, viennashe_linear_solver_id sol_id, long max_iters)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_set_nonlinear_solver_config (viennashe_config conf, viennashe_nonlinear_solver_id sol_id, long max_iters, double damping)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_config_with_traps (viennashe_config conf, libviennashe_bool enabled)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_set_optical_phonon_scattering (viennashe_config conf, libviennashe_bool enabled)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_set_acoustic_phonon_scattering (viennashe_config conf, libviennashe_bool enabled)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_set_ionized_impurity_scattering (viennashe_config conf, libviennashe_bool enabled)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_set_impact_ionization_scattering (viennashe_config conf, libviennashe_bool enabled)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_set_electron_electron_scattering (viennashe_config conf, libviennashe_bool enabled)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_get_optical_phonon_scattering (viennashe_config conf, libviennashe_bool *enabled)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_get_acoustic_phonon_scattering (viennashe_config conf, libviennashe_bool *enabled)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_get_ionized_impurity_scattering (viennashe_config conf, libviennashe_bool *enabled)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_get_impact_ionization_scattering (viennashe_config conf, libviennashe_bool *enabled)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_get_electron_electron_scattering (viennashe_config conf, libviennashe_bool *enabled)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_config_is_with_traps (viennashe_config conf, libviennashe_bool *enabled)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_config_has_density_gradient (viennashe_config conf, libviennashe_bool *enabled)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_get_linear_solver_config (viennashe_config conf, viennashe_linear_solver_id *sol_id, long *max_iters)
 
VIENNASHE_EXPORT viennasheErrorCode viennashe_get_nonlinear_solver_config (viennashe_config conf, viennashe_nonlinear_solver_id *sol_id, long *max_iters, double *damping)
 

Typedef Documentation

◆ viennashe_config

Definition at line 31 of file config.h.

◆ viennashe_config_impl

Definition at line 30 of file config.h.

Enumeration Type Documentation

◆ viennashe_linear_solver_id

Enum of available linear solvers.

The simulator configuration

Enumerator
viennashe_linear_solver_dense 
viennashe_linear_solver_serial 
viennashe_linear_solver_parallel 
viennashe_linear_solver_gpu_parallel 

Definition at line 34 of file config.h.

◆ viennashe_nonlinear_solver_id

Enum of available non-linear solvers.

Enumerator
viennashe_nonlinear_solver_gummel 
viennashe_nonlinear_solver_newton 

Definition at line 38 of file config.h.

Function Documentation

◆ viennashe_config_disable_density_gradient()

VIENNASHE_EXPORT viennasheErrorCode viennashe_config_disable_density_gradient ( viennashe_config  conf)

◆ viennashe_config_enable_density_gradient()

VIENNASHE_EXPORT viennasheErrorCode viennashe_config_enable_density_gradient ( viennashe_config  conf)

◆ viennashe_config_has_density_gradient()

VIENNASHE_EXPORT viennasheErrorCode viennashe_config_has_density_gradient ( viennashe_config  conf,
libviennashe_bool enabled 
)

◆ viennashe_config_is_with_traps()

VIENNASHE_EXPORT viennasheErrorCode viennashe_config_is_with_traps ( viennashe_config  conf,
libviennashe_bool enabled 
)

◆ viennashe_config_she_bipolar()

VIENNASHE_EXPORT viennasheErrorCode viennashe_config_she_bipolar ( viennashe_config  conf,
libviennashe_bool  with_traps 
)
Examples
resistor1d-c.c.

◆ viennashe_config_she_unipolar_n()

VIENNASHE_EXPORT viennasheErrorCode viennashe_config_she_unipolar_n ( viennashe_config  conf)

◆ viennashe_config_she_unipolar_p()

VIENNASHE_EXPORT viennasheErrorCode viennashe_config_she_unipolar_p ( viennashe_config  conf)

◆ viennashe_config_standard_dd()

VIENNASHE_EXPORT viennasheErrorCode viennashe_config_standard_dd ( viennashe_config  conf)
Examples
resistor1d-c.c.

◆ viennashe_config_with_traps()

VIENNASHE_EXPORT viennasheErrorCode viennashe_config_with_traps ( viennashe_config  conf,
libviennashe_bool  enabled 
)

◆ viennashe_create_config()

VIENNASHE_EXPORT viennasheErrorCode viennashe_create_config ( viennashe_config conf)
Examples
resistor1d-c.c.

◆ viennashe_free_config()

VIENNASHE_EXPORT viennasheErrorCode viennashe_free_config ( viennashe_config  conf)
Examples
resistor1d-c.c.

◆ viennashe_get_acoustic_phonon_scattering()

VIENNASHE_EXPORT viennasheErrorCode viennashe_get_acoustic_phonon_scattering ( viennashe_config  conf,
libviennashe_bool enabled 
)

◆ viennashe_get_electron_electron_scattering()

VIENNASHE_EXPORT viennasheErrorCode viennashe_get_electron_electron_scattering ( viennashe_config  conf,
libviennashe_bool enabled 
)

◆ viennashe_get_impact_ionization_scattering()

VIENNASHE_EXPORT viennasheErrorCode viennashe_get_impact_ionization_scattering ( viennashe_config  conf,
libviennashe_bool enabled 
)

◆ viennashe_get_ionized_impurity_scattering()

VIENNASHE_EXPORT viennasheErrorCode viennashe_get_ionized_impurity_scattering ( viennashe_config  conf,
libviennashe_bool enabled 
)

◆ viennashe_get_linear_solver_config()

VIENNASHE_EXPORT viennasheErrorCode viennashe_get_linear_solver_config ( viennashe_config  conf,
viennashe_linear_solver_id sol_id,
long *  max_iters 
)

◆ viennashe_get_nonlinear_solver_config()

VIENNASHE_EXPORT viennasheErrorCode viennashe_get_nonlinear_solver_config ( viennashe_config  conf,
viennashe_nonlinear_solver_id sol_id,
long *  max_iters,
double *  damping 
)

◆ viennashe_get_optical_phonon_scattering()

VIENNASHE_EXPORT viennasheErrorCode viennashe_get_optical_phonon_scattering ( viennashe_config  conf,
libviennashe_bool enabled 
)

◆ viennashe_set_acoustic_phonon_scattering()

VIENNASHE_EXPORT viennasheErrorCode viennashe_set_acoustic_phonon_scattering ( viennashe_config  conf,
libviennashe_bool  enabled 
)

◆ viennashe_set_electron_electron_scattering()

VIENNASHE_EXPORT viennasheErrorCode viennashe_set_electron_electron_scattering ( viennashe_config  conf,
libviennashe_bool  enabled 
)

◆ viennashe_set_impact_ionization_scattering()

VIENNASHE_EXPORT viennasheErrorCode viennashe_set_impact_ionization_scattering ( viennashe_config  conf,
libviennashe_bool  enabled 
)

◆ viennashe_set_ionized_impurity_scattering()

VIENNASHE_EXPORT viennasheErrorCode viennashe_set_ionized_impurity_scattering ( viennashe_config  conf,
libviennashe_bool  enabled 
)

◆ viennashe_set_linear_solver_config()

VIENNASHE_EXPORT viennasheErrorCode viennashe_set_linear_solver_config ( viennashe_config  conf,
viennashe_linear_solver_id  sol_id,
long  max_iters 
)

◆ viennashe_set_nonlinear_solver_config()

VIENNASHE_EXPORT viennasheErrorCode viennashe_set_nonlinear_solver_config ( viennashe_config  conf,
viennashe_nonlinear_solver_id  sol_id,
long  max_iters,
double  damping 
)
Examples
resistor1d-c.c.

◆ viennashe_set_optical_phonon_scattering()

VIENNASHE_EXPORT viennasheErrorCode viennashe_set_optical_phonon_scattering ( viennashe_config  conf,
libviennashe_bool  enabled 
)