ViennaSHE 1.3.0
Free open-source semiconductor device simulator using spherical harmonics expansions techniques.
libviennashe::quantity::quantity_wrapper Class Referenceabstract

The main quantity wrapper interface More...

#include <quantity_wrappers.hpp>

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

Public Member Functions

 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...
 

Protected Member Functions

void set_name (std::string const &n)
 Name setter for implementing classes. More...
 

Detailed Description

The main quantity wrapper interface

Definition at line 44 of file quantity_wrappers.hpp.

Constructor & Destructor Documentation

◆ quantity_wrapper() [1/3]

libviennashe::quantity::quantity_wrapper::quantity_wrapper ( std::string  name)
inline

Definition at line 47 of file quantity_wrappers.hpp.

◆ quantity_wrapper() [2/3]

libviennashe::quantity::quantity_wrapper::quantity_wrapper ( )
inline

Default CTOR. Creates an empty wrapper.

Definition at line 50 of file quantity_wrappers.hpp.

◆ quantity_wrapper() [3/3]

libviennashe::quantity::quantity_wrapper::quantity_wrapper ( quantity_wrapper const &  v)
inline

Definition at line 52 of file quantity_wrappers.hpp.

◆ ~quantity_wrapper()

virtual libviennashe::quantity::quantity_wrapper::~quantity_wrapper ( )
inlinevirtual

Definition at line 53 of file quantity_wrappers.hpp.

Member Function Documentation

◆ copy()

virtual quantity_wrapper * libviennashe::quantity::quantity_wrapper::copy ( ) const
pure virtual

◆ fill()

virtual void libviennashe::quantity::quantity_wrapper::fill ( double **  values,
viennashe_index_type len 
) const
pure virtual

Interface. Fills values with all quantity values, where the length of values[i] is to be found in len[i].

Parameters
valuesThe quantity values
lenThe length of each quantity value (1 = scalar)

Implemented in libviennashe::quantity::accessor_based_quantity_wrapper< DeviceT, AccessorT, ElementTagT >, and libviennashe::quantity::accessor_based_array_quantity_wrapper< DeviceT, AccessorT, ElementTagT >.

◆ fill_single()

virtual void libviennashe::quantity::quantity_wrapper::fill_single ( std::size_t  idx,
std::vector< double > &  values 
) const
pure virtual

Interface. Fills values with a single value (scalar or vector) at the given element index.

Parameters
idxThe index of the element
valuesA std::vector<double> holding the values

Implemented in libviennashe::quantity::accessor_based_quantity_wrapper< DeviceT, AccessorT, ElementTagT >, and libviennashe::quantity::accessor_based_array_quantity_wrapper< DeviceT, AccessorT, ElementTagT >.

◆ name()

std::string libviennashe::quantity::quantity_wrapper::name ( ) const
inline

Returns the unique name of the quantity.

Definition at line 76 of file quantity_wrappers.hpp.

◆ operator=()

void libviennashe::quantity::quantity_wrapper::operator= ( quantity_wrapper const &  o)
inline

Definition at line 55 of file quantity_wrappers.hpp.

◆ set_name()

void libviennashe::quantity::quantity_wrapper::set_name ( std::string const &  n)
inlineprotected

Name setter for implementing classes.

Definition at line 80 of file quantity_wrappers.hpp.


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