ViennaSHE 1.3.0
Free open-source semiconductor device simulator using spherical harmonics expansions techniques.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
forwards.h File Reference

Contains forward declarations and definition of small classes that must be defined at an early stage. More...

#include <stdexcept>
#include <ostream>
#include <cstddef>
#include <string>
#include <map>
#include "viennashe/version.hpp"
#include "viennagrid/forwards.hpp"

Go to the source code of this file.

Classes

struct  viennashe::detail::is_1d_mesh< MeshT, CellTag >
 Metafunction for the determination of whether a mesh is 1d. More...
 
struct  viennashe::detail::is_1d_mesh< MeshT, viennagrid::simplex_tag< 1 > >
 Metafunction for the determination of whether a mesh is 1d. Specialization for 1d. More...
 
struct  viennashe::detail::is_1d_mesh< MeshT, viennagrid::hypercube_tag< 1 > >
 Metafunction for the determination of whether a mesh is 1d. Specialization for 1d. More...
 
struct  viennashe::error_indicator< T >
 A helper class to raise compile time errors. More...
 
struct  viennashe::box_volume_key
 Internal key for storing the box volume associated with an edge or a vertex. More...
 
struct  viennashe::edge_interface_area_key
 Internal key for storing the interface area of a box associated with an edge. More...
 
class  viennashe::solvers::dense_linear_solver_tag
 Internal tag used for the specification of a dense linear solver (Gauss, single-threaded) More...
 
class  viennashe::solvers::serial_linear_solver_tag
 Internal tag used for the specification of a single-threaded linear solver. More...
 
class  viennashe::solvers::parallel_linear_solver_tag
 Internal tag used for the specification of a CPU-based multi-threaded linear solver. More...
 
class  viennashe::solvers::petsc_linear_solver_tag
 Internal tag used for the specification of a CPU-based PETSC solver. More...
 
class  viennashe::solvers::petsc_amgx_solver_tag
 
class  viennashe::solvers::gpu_parallel_linear_solver_tag
 Internal tag used for the specification of a GPU-accelerated linear solver. More...
 

Namespaces

namespace  viennashe
 The main ViennaSHE namespace. All functionality resides inside this namespace.
 
namespace  viennashe::detail
 Namespace for implementation details. Typically not of interest for the library user.
 
namespace  viennashe::math
 Namespace for all math specific code

 
namespace  viennashe::solvers
 Namespace containing a variety of different linear solvers.
 

Typedefs

typedef std::map< std::string, std::pair< std::size_t, std::size_t > > viennashe::map_info_type
 Information on the number of unknowns per quantity. More...
 
typedef std::vector< double > viennashe::energy_vector_type
 Type for storing the discrete energies. More...
 
typedef std::vector< long > viennashe::she_index_vector_type
 Type for storing the unknown indices at each point in the (x, H)-space. More...
 

Enumerations

enum  viennashe::equation_id {
  viennashe::EQUATION_INVALID = 0 , viennashe::EQUATION_POISSON_DD , viennashe::EQUATION_CONTINUITY , viennashe::EQUATION_SHE ,
  viennashe::EQUATION_DENSITY_GRADIENT , viennashe::EQUATION_POISSON_HEAT
}
 An enumeration of all equation types ViennaSHE supports. More...
 
enum  viennashe::boundary_type_id {
  viennashe::BOUNDARY_NONE = 0 , viennashe::BOUNDARY_DIRICHLET , viennashe::BOUNDARY_NEUMANN , viennashe::BOUNDARY_ROBIN ,
  viennashe::BOUNDARY_GENERATION_RECOMBINATION
}
 An enumeration of all boundary conditions ViennaSHE supports. More...
 
enum  viennashe::material_category_id {
  viennashe::MATERIAL_CONDUCTOR_ID , viennashe::MATERIAL_NO_CONDUCTOR_ID , viennashe::MATERIAL_SEMICONDUCTOR_ID , viennashe::MATERIAL_NO_SEMICONDUCTOR_ID ,
  viennashe::MATERIAL_INSULATOR_ID , viennashe::MATERIAL_NO_INSULATOR_ID
}
 
enum  viennashe::she_discretization_type_id { viennashe::SHE_DISCRETIZATION_EVEN_ODD_ORDER_DF , viennashe::SHE_DISCRETIZATION_EVEN_ODD_ORDER_GENERALIZED_DF }
 
enum  viennashe::she_scaling_type_id { viennashe::SHE_SCALING_KINETIC_ENERGY , viennashe::SHE_SCALING_TOTAL_ENERGY }
 
enum  viennashe::math::harmonics_iteration_type { viennashe::math::ALL_HARMONICS_ITERATION_ID = 0 , viennashe::math::EVEN_HARMONICS_ITERATION_ID , viennashe::math::ODD_HARMONICS_ITERATION_ID }
 An enumeration of spherical harmonics types (all, even, odd) ViennaSHE supports. More...
 
enum  viennashe::carrier_type_id { viennashe::INVALID_TYPE = 0 , viennashe::ELECTRON_TYPE_ID , viennashe::HOLE_TYPE_ID }
 Enumeration type for selecting the carrier type. More...
 
enum  viennashe::doping_type_id { viennashe::INVALID_DOPING_TYPE = 0 , viennashe::DONATOR_DOPING_TYPE_ID , viennashe::ACCEPTOR_DOPING_TYPE_ID }
 Enumeration type for selecting the doping type. More...
 

Detailed Description

Contains forward declarations and definition of small classes that must be defined at an early stage.

Definition in file forwards.h.