ViennaSHE 1.3.0
Free open-source semiconductor device simulator using spherical harmonics expansions techniques.
libviennashe::quantity::accessor_based_quantity_wrapper< DeviceT, AccessorT, ElementTagT > Class Template Reference

Implements quantity_wrapper. Wraps scalar quantities, which are accessible via a device based accessor in ViennaSHE (cf. accessor.hpp) More...

#include <quantity_wrappers.hpp>

Inheritance diagram for libviennashe::quantity::accessor_based_quantity_wrapper< DeviceT, AccessorT, ElementTagT >:
libviennashe::quantity::quantity_wrapper

Public Types

typedef accessor_based_quantity_wrapper< DeviceT, AccessorT, ElementTagT > self_type
 

Public Member Functions

 accessor_based_quantity_wrapper (AccessorT const &acc, DeviceT const &dev, std::string name)
 CTOR. More...
 
 accessor_based_quantity_wrapper (accessor_based_quantity_wrapper const &o)
 
void operator= (accessor_based_quantity_wrapper const &o)
 
double get (std::size_t id) const
 Simple forward to the accessor. More...
 
virtual void fill (double **values, viennashe_index_type *len) const
 Implementation of fill. More...
 
virtual void fill_single (std::size_t idx, std::vector< double > &values) const
 Implemenation of fill_single. Uses get() More...
 
virtual quantity_wrappercopy () const
 A simple copy factory for storage. More...
 
- Public Member Functions inherited from libviennashe::quantity::quantity_wrapper
 quantity_wrapper (std::string name)
 
 quantity_wrapper ()
 Default CTOR. Creates an empty wrapper. More...
 
 quantity_wrapper (quantity_wrapper const &v)
 
virtual ~quantity_wrapper ()
 
void operator= (quantity_wrapper const &o)
 
virtual void fill (double **values, viennashe_index_type *len) const =0
 Interface. Fills values with all quantity values, where the length of values[i] is to be found in len[i]. More...
 
virtual void fill_single (std::size_t idx, std::vector< double > &values) const =0
 Interface. Fills values with a single value (scalar or vector) at the given element index. More...
 
virtual quantity_wrappercopy () const =0
 A simple copy factory for storage. More...
 
std::string name () const
 Returns the unique name of the quantity. More...
 

Additional Inherited Members

- Protected Member Functions inherited from libviennashe::quantity::quantity_wrapper
void set_name (std::string const &n)
 Name setter for implementing classes. More...
 

Detailed Description

template<typename DeviceT, typename AccessorT, typename ElementTagT>
class libviennashe::quantity::accessor_based_quantity_wrapper< DeviceT, AccessorT, ElementTagT >

Implements quantity_wrapper. Wraps scalar quantities, which are accessible via a device based accessor in ViennaSHE (cf. accessor.hpp)

Definition at line 89 of file quantity_wrappers.hpp.

Member Typedef Documentation

◆ self_type

template<typename DeviceT , typename AccessorT , typename ElementTagT >
typedef accessor_based_quantity_wrapper<DeviceT, AccessorT, ElementTagT> libviennashe::quantity::accessor_based_quantity_wrapper< DeviceT, AccessorT, ElementTagT >::self_type

Definition at line 93 of file quantity_wrappers.hpp.

Constructor & Destructor Documentation

◆ accessor_based_quantity_wrapper() [1/2]

template<typename DeviceT , typename AccessorT , typename ElementTagT >
libviennashe::quantity::accessor_based_quantity_wrapper< DeviceT, AccessorT, ElementTagT >::accessor_based_quantity_wrapper ( AccessorT const &  acc,
DeviceT const &  dev,
std::string  name 
)
inline

CTOR.

Parameters
accThe accessor. Must be deep copy-able!
devThe device. A const reference to the device will be stored by this class
nameThe unique name of the quantity

Definition at line 101 of file quantity_wrappers.hpp.

◆ accessor_based_quantity_wrapper() [2/2]

template<typename DeviceT , typename AccessorT , typename ElementTagT >
libviennashe::quantity::accessor_based_quantity_wrapper< DeviceT, AccessorT, ElementTagT >::accessor_based_quantity_wrapper ( accessor_based_quantity_wrapper< DeviceT, AccessorT, ElementTagT > const &  o)
inline

Definition at line 107 of file quantity_wrappers.hpp.

Member Function Documentation

◆ copy()

template<typename DeviceT , typename AccessorT , typename ElementTagT >
virtual quantity_wrapper * libviennashe::quantity::accessor_based_quantity_wrapper< DeviceT, AccessorT, ElementTagT >::copy ( ) const
inlinevirtual

A simple copy factory for storage.

Implements libviennashe::quantity::quantity_wrapper.

Definition at line 149 of file quantity_wrappers.hpp.

◆ fill()

template<typename DeviceT , typename AccessorT , typename ElementTagT >
virtual void libviennashe::quantity::accessor_based_quantity_wrapper< DeviceT, AccessorT, ElementTagT >::fill ( double **  values,
viennashe_index_type len 
) const
inlinevirtual

Implementation of fill.

Implements libviennashe::quantity::quantity_wrapper.

Definition at line 128 of file quantity_wrappers.hpp.

◆ fill_single()

template<typename DeviceT , typename AccessorT , typename ElementTagT >
virtual void libviennashe::quantity::accessor_based_quantity_wrapper< DeviceT, AccessorT, ElementTagT >::fill_single ( std::size_t  idx,
std::vector< double > &  values 
) const
inlinevirtual

Implemenation of fill_single. Uses get()

Implements libviennashe::quantity::quantity_wrapper.

Definition at line 143 of file quantity_wrappers.hpp.

◆ get()

template<typename DeviceT , typename AccessorT , typename ElementTagT >
double libviennashe::quantity::accessor_based_quantity_wrapper< DeviceT, AccessorT, ElementTagT >::get ( std::size_t  id) const
inline

Simple forward to the accessor.

Parameters
idThe id of the element on which the data is stored

Definition at line 120 of file quantity_wrappers.hpp.

◆ operator=()

template<typename DeviceT , typename AccessorT , typename ElementTagT >
void libviennashe::quantity::accessor_based_quantity_wrapper< DeviceT, AccessorT, ElementTagT >::operator= ( accessor_based_quantity_wrapper< DeviceT, AccessorT, ElementTagT > const &  o)
inline

Definition at line 111 of file quantity_wrappers.hpp.


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