ViennaSHE 1.3.0
Free open-source semiconductor device simulator using spherical harmonics expansions techniques.
viennashe::util::spatial_quantity_wrapper< DeviceType, ElementTagT, ValueType > Class Template Reference

A functor-style wrapper for a spatial quantity (typically potential, electron density or hole density). Typically evaluated on each vertex only. More...

#include <misc.hpp>

Public Types

typedef viennagrid::result_of::element< MeshType, ElementTagT >::type element_type
 
typedef ValueType value_type
 

Public Member Functions

template<typename VectorType , typename IndexKeyType , typename BoundaryValueAccessor >
 spatial_quantity_wrapper (DeviceType const &device, VectorType const &quantity_values, IndexKeyType const &index_array, BoundaryValueAccessor const &bnd_accessor)
 Copy over all values from the accessors so that this object can be easily passed around. More...
 
value_type operator() (element_type const &t) const
 The functor interface. More...
 
std::vector< double > const & vector () const
 Returns the internal vector with the quantities. Allows to externally adjust the quantity. More...
 

Detailed Description

template<typename DeviceType, typename ElementTagT, typename ValueType = double>
class viennashe::util::spatial_quantity_wrapper< DeviceType, ElementTagT, ValueType >

A functor-style wrapper for a spatial quantity (typically potential, electron density or hole density). Typically evaluated on each vertex only.

Template Parameters
DeviceTypeType of the underlying device
dimTopological dimension of the elements on which the quantity is defined (0: vertices)
ValueTypeValue type of the quantity (usually double or bool)

Definition at line 272 of file misc.hpp.

Member Typedef Documentation

◆ element_type

template<typename DeviceType , typename ElementTagT , typename ValueType = double>
typedef viennagrid::result_of::element<MeshType,ElementTagT>::type viennashe::util::spatial_quantity_wrapper< DeviceType, ElementTagT, ValueType >::element_type

Definition at line 279 of file misc.hpp.

◆ value_type

template<typename DeviceType , typename ElementTagT , typename ValueType = double>
typedef ValueType viennashe::util::spatial_quantity_wrapper< DeviceType, ElementTagT, ValueType >::value_type

Definition at line 280 of file misc.hpp.

Constructor & Destructor Documentation

◆ spatial_quantity_wrapper()

template<typename DeviceType , typename ElementTagT , typename ValueType = double>
template<typename VectorType , typename IndexKeyType , typename BoundaryValueAccessor >
viennashe::util::spatial_quantity_wrapper< DeviceType, ElementTagT, ValueType >::spatial_quantity_wrapper ( DeviceType const &  device,
VectorType const &  quantity_values,
IndexKeyType const &  index_array,
BoundaryValueAccessor const &  bnd_accessor 
)
inline

Copy over all values from the accessors so that this object can be easily passed around.

Definition at line 284 of file misc.hpp.

Member Function Documentation

◆ operator()()

template<typename DeviceType , typename ElementTagT , typename ValueType = double>
value_type viennashe::util::spatial_quantity_wrapper< DeviceType, ElementTagT, ValueType >::operator() ( element_type const &  t) const
inline

The functor interface.

Definition at line 316 of file misc.hpp.

◆ vector()

template<typename DeviceType , typename ElementTagT , typename ValueType = double>
std::vector< double > const & viennashe::util::spatial_quantity_wrapper< DeviceType, ElementTagT, ValueType >::vector ( ) const
inline

Returns the internal vector with the quantities. Allows to externally adjust the quantity.

Definition at line 322 of file misc.hpp.


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