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

Implements quantity_wrapper. Wraps vector valued 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_array_quantity_wrapper< DeviceT, AccessorT, ElementTagT >:
libviennashe::quantity::quantity_wrapper

Public Types

typedef accessor_based_array_quantity_wrapper< DeviceT, AccessorT, ElementTagT > self_type
 

Public Member Functions

 accessor_based_array_quantity_wrapper (AccessorT const &acc, DeviceT const &dev, std::string name)
 CTOR. More...
 
 accessor_based_array_quantity_wrapper (accessor_based_array_quantity_wrapper const &o)
 
void operator= (accessor_based_array_quantity_wrapper const &o)
 
std::vector< double > get (std::size_t id) const
 Simple forward to the accessor. More...
 
virtual void fill_single (std::size_t idx, std::vector< double > &values) const
 Implements fill_single. More...
 
virtual void fill (double **values, viennashe_index_type *len) const
 Implements fill. More...
 
virtual quantity_wrappercopy () const
 Implements copy. 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_array_quantity_wrapper< DeviceT, AccessorT, ElementTagT >

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

Definition at line 160 of file quantity_wrappers.hpp.

Member Typedef Documentation

◆ self_type

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

Definition at line 164 of file quantity_wrappers.hpp.

Constructor & Destructor Documentation

◆ accessor_based_array_quantity_wrapper() [1/2]

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

CTOR.

Parameters
accThe accessor. Must be deep copy-able!
devThe device. A reference to this object will be held
nameThe unique name of the vector valued quantity

Definition at line 172 of file quantity_wrappers.hpp.

◆ accessor_based_array_quantity_wrapper() [2/2]

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

Definition at line 178 of file quantity_wrappers.hpp.

Member Function Documentation

◆ copy()

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

Implements copy.

Implements libviennashe::quantity::quantity_wrapper.

Definition at line 220 of file quantity_wrappers.hpp.

◆ fill()

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

Implements fill.

Implements libviennashe::quantity::quantity_wrapper.

Definition at line 202 of file quantity_wrappers.hpp.

◆ fill_single()

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

Implements fill_single.

Implements libviennashe::quantity::quantity_wrapper.

Definition at line 199 of file quantity_wrappers.hpp.

◆ get()

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

Simple forward to the accessor.

Parameters
idThe elment id of the element on which the vector is stored on
Returns
A vector as std::vector<double>

Definition at line 193 of file quantity_wrappers.hpp.

◆ operator=()

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

Definition at line 182 of file quantity_wrappers.hpp.


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