ViennaSHE 1.3.0
Free open-source semiconductor device simulator using spherical harmonics expansions techniques.
viennashe::util::detail Namespace Reference

Namespace containing implementation details for functionality from viennashe::util. Typically not of interest for a library user. More...

Classes

struct  is_lesser
 
struct  unity_weight
 A functor assigning unity weight to the element provided. More...
 

Functions

template<typename WrappedConfigT >
viennagrid::result_of::point< viennagrid::element< viennagrid::line_tag, WrappedConfigT > >::type outer_cell_normal_at_facet (viennagrid::element< viennagrid::line_tag, WrappedConfigT > const &cell, viennagrid::element< viennagrid::vertex_tag, WrappedConfigT > const &facet)
 
template<typename CellTagT , typename WrappedConfigT >
viennagrid::result_of::point< viennagrid::element< CellTagT, WrappedConfigT > >::type outer_cell_normal_at_facet (viennagrid::element< CellTagT, WrappedConfigT > const &cell, viennagrid::element< viennagrid::line_tag, WrappedConfigT > const &facet)
 
template<typename CellTagT , typename FacetTagT , typename WrappedConfigT >
viennagrid::result_of::point< viennagrid::element< CellTagT, WrappedConfigT > >::type outer_cell_normal_at_facet_3d (viennagrid::element< CellTagT, WrappedConfigT > const &cell, viennagrid::element< FacetTagT, WrappedConfigT > const &facet)
 
template<typename CellTagT , typename WrappedConfigT >
viennagrid::result_of::point< viennagrid::element< CellTagT, WrappedConfigT > >::type outer_cell_normal_at_facet (viennagrid::element< CellTagT, WrappedConfigT > const &cell, viennagrid::element< viennagrid::triangle_tag, WrappedConfigT > const &facet)
 
template<typename CellTagT , typename WrappedConfigT >
viennagrid::result_of::point< viennagrid::element< CellTagT, WrappedConfigT > >::type outer_cell_normal_at_facet (viennagrid::element< CellTagT, WrappedConfigT > const &cell, viennagrid::element< viennagrid::quadrilateral_tag, WrappedConfigT > const &facet)
 
template<typename MeshT , typename SegmentationT >
void generate_device_impl (MeshT &mesh, SegmentationT &segmentation, device_generation_config const &conf, viennagrid::simplex_tag< 1 >)
 Implementation of a simple one-dimensional 'mesh' generation. Fills a ViennaGrid mesh. More...
 
template<typename MeshType >
void generate_device_impl (MeshType &mesh, device_generation_config const &conf, viennagrid::hypercube_tag< 1 >)
 Compatibility overload for simplex-lines (viennagrid::simplex_tag<1> and viennagrid::hypercube_tag<1> are the same) More...
 
template<typename MeshT , typename SegmentationT >
void generate_device_impl (MeshT &mesh, SegmentationT &segmentation, device_generation_config const &conf, viennagrid::quadrilateral_tag)
 Implementation of a simple two-dimensional 'mesh' generation for rectangular grids. Fills a ViennaGrid mesh. More...
 

Detailed Description

Namespace containing implementation details for functionality from viennashe::util. Typically not of interest for a library user.

Function Documentation

◆ generate_device_impl() [1/3]

template<typename MeshT , typename SegmentationT >
void viennashe::util::detail::generate_device_impl ( MeshT &  mesh,
SegmentationT &  segmentation,
device_generation_config const &  conf,
viennagrid::quadrilateral_tag   
)

Implementation of a simple two-dimensional 'mesh' generation for rectangular grids. Fills a ViennaGrid mesh.

Parameters
meshAn empty ViennaGrid mesh
segmentationA mesh segmentation for setting up the segments
confThe generation configuration object

Definition at line 296 of file generate_device.hpp.

◆ generate_device_impl() [2/3]

template<typename MeshT , typename SegmentationT >
void viennashe::util::detail::generate_device_impl ( MeshT &  mesh,
SegmentationT &  segmentation,
device_generation_config const &  conf,
viennagrid::simplex_tag< 1 >   
)

Implementation of a simple one-dimensional 'mesh' generation. Fills a ViennaGrid mesh.

Parameters
meshAn empty ViennaGrid mesh
segmentationA mesh segmentation for setting up the segments
confThe mesh generation configuration object

Definition at line 137 of file generate_device.hpp.

◆ generate_device_impl() [3/3]

template<typename MeshType >
void viennashe::util::detail::generate_device_impl ( MeshType &  mesh,
device_generation_config const &  conf,
viennagrid::hypercube_tag< 1 >   
)

Compatibility overload for simplex-lines (viennagrid::simplex_tag<1> and viennagrid::hypercube_tag<1> are the same)

Definition at line 276 of file generate_device.hpp.

◆ outer_cell_normal_at_facet() [1/4]

template<typename CellTagT , typename WrappedConfigT >
viennagrid::result_of::point< viennagrid::element< CellTagT, WrappedConfigT > >::type viennashe::util::detail::outer_cell_normal_at_facet ( viennagrid::element< CellTagT, WrappedConfigT > const &  cell,
viennagrid::element< viennagrid::line_tag, WrappedConfigT > const &  facet 
)

Definition at line 66 of file dual_box_flux.hpp.

◆ outer_cell_normal_at_facet() [2/4]

template<typename CellTagT , typename WrappedConfigT >
viennagrid::result_of::point< viennagrid::element< CellTagT, WrappedConfigT > >::type viennashe::util::detail::outer_cell_normal_at_facet ( viennagrid::element< CellTagT, WrappedConfigT > const &  cell,
viennagrid::element< viennagrid::quadrilateral_tag, WrappedConfigT > const &  facet 
)

Definition at line 120 of file dual_box_flux.hpp.

◆ outer_cell_normal_at_facet() [3/4]

template<typename CellTagT , typename WrappedConfigT >
viennagrid::result_of::point< viennagrid::element< CellTagT, WrappedConfigT > >::type viennashe::util::detail::outer_cell_normal_at_facet ( viennagrid::element< CellTagT, WrappedConfigT > const &  cell,
viennagrid::element< viennagrid::triangle_tag, WrappedConfigT > const &  facet 
)

Definition at line 111 of file dual_box_flux.hpp.

◆ outer_cell_normal_at_facet() [4/4]

template<typename WrappedConfigT >
viennagrid::result_of::point< viennagrid::element< viennagrid::line_tag, WrappedConfigT > >::type viennashe::util::detail::outer_cell_normal_at_facet ( viennagrid::element< viennagrid::line_tag, WrappedConfigT > const &  cell,
viennagrid::element< viennagrid::vertex_tag, WrappedConfigT > const &  facet 
)

Definition at line 50 of file dual_box_flux.hpp.

◆ outer_cell_normal_at_facet_3d()

template<typename CellTagT , typename FacetTagT , typename WrappedConfigT >
viennagrid::result_of::point< viennagrid::element< CellTagT, WrappedConfigT > >::type viennashe::util::detail::outer_cell_normal_at_facet_3d ( viennagrid::element< CellTagT, WrappedConfigT > const &  cell,
viennagrid::element< FacetTagT, WrappedConfigT > const &  facet 
)

Definition at line 88 of file dual_box_flux.hpp.