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

Contains a very simple mesh generator (ortho-grids) for one and two spatial dimensions. More...

#include <iostream>
#include <sstream>
#include <string>
#include <stdexcept>
#include <vector>
#include "viennagrid/mesh/mesh.hpp"
#include "viennagrid/mesh/element_creation.hpp"
#include "viennagrid/topology/line.hpp"
#include "viennagrid/topology/quadrilateral.hpp"
#include "viennashe/log/log.hpp"
#include "viennashe/util/log_keys.h"

Go to the source code of this file.

Classes

class  viennashe::util::device_generation_config
 Configuration class for the simple mesh generator. More...
 
class  viennashe::util::device_generation_config::segment_description
 
struct  viennashe::util::device_from_array_generator< IndexT >
 A device generator to generate a device from C-Arrays (DOES NOT TAKE OWNERSHIP) More...
 
struct  viennashe::util::device_from_flat_array_generator< IndexT >
 A device generator to generate a device from flat C-Arrays (DOES NOT TAKE OWNERSHIP) More...
 

Namespaces

namespace  viennashe
 The main ViennaSHE namespace. All functionality resides inside this namespace.
 
namespace  viennashe::util
 A collection of utilities used within ViennaSHE.
 
namespace  viennashe::util::detail
 Namespace containing implementation details for functionality from viennashe::util. Typically not of interest for a library user.
 

Functions

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. More...
 
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) More...
 
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. More...
 
template<typename MeshT , typename SegmentationT >
void viennashe::util::generate_device (MeshT &mesh, SegmentationT &seg, device_generation_config const &conf)
 Public interface for mesh generation of simple one- or two-dimensional meshes. Device must be rectangular for the two-dimensional case. More...
 

Detailed Description

Contains a very simple mesh generator (ortho-grids) for one and two spatial dimensions.

Definition in file generate_device.hpp.