OpenWalnut  1.2.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
WTensorBaseSym< order, dim, Data_T > Class Template Reference

Symmetric tensor base class. More...

#include <WTensorBase.h>

+ Inheritance diagram for WTensorBaseSym< order, dim, Data_T >:

Classes

class  PositionIndexer
 A class that maps symmetric tensor indices to vector positions. More...

Public Member Functions

 WTensorBaseSym ()
 Standard constructor.
 WTensorBaseSym (const WValue< Data_T > &data)
 Constructs the symmetrical tensor and initialize with the given data.
 WTensorBaseSym (WTensorBaseSym const &t)
 Copy constructor.
WTensorBaseSym const & operator= (WTensorBaseSym const &t)
 Copy operator.
std::size_t getDimension () const
 Get the dimension of this tensor.
std::size_t getOrder () const
 Get the order of this tensor.
template<typename Index_T >
Data_T & operator[] (std::vector< Index_T > const &indices)
 Get the element at a specific position.
template<typename Index_T >
Data_T const & operator[] (std::vector< Index_T > const &indices) const
 Get the element at a specific position.
template<typename Index_T >
Data_T & operator[] (Index_T indices[])
 Get the element at a specific position.
template<typename Index_T >
Data_T const & operator[] (Index_T indices[]) const
 Get the element at a specific position.
bool operator== (WTensorBaseSym const &other) const
 Compare this WTensorBaseSym to another one.
bool operator!= (WTensorBaseSym const &other) const
 Compare this WTensorBaseSym to another one.

Private Types

enum  { dataSize = WBinom< order + dim - 1, order >::value }
 Declare a compile-time constant as enum and not as static constant. More...

Private Member Functions

 BOOST_STATIC_ASSERT (dim!=0)
 For dim == 0, create an artificial compiler error.

Private Attributes

std::vector< Data_T > m_data
 Stores the elements of this tensor lexicographical ordered on their indices, where for each set of permutations the lexicographical lowest index is used.

Static Private Attributes

static PositionIndexer const m_indexer
 A static PositionIndexer that maps tensor indices to vector positions.

Friends

class ::WTensorBaseSymTest
class ::WTensorFuncTest

Detailed Description

template<std::size_t order, std::size_t dim, typename Data_T>
class WTensorBaseSym< order, dim, Data_T >

Symmetric tensor base class.

Template Parameters
orderThe order of the tensor.
dimThe dimension of the tensor, i.e. the number of components in each direction.
Data_TThe datatype of the components, double by default.
Notes:
The type Data_T may not throw exceptions on construction, destruction or during any assignment operator.
Notes:
The dimension may not be 0.
See Also
WTensorSym

Definition at line 641 of file WTensorBase.h.

Member Enumeration Documentation

template<std::size_t order, std::size_t dim, typename Data_T>
anonymous enum
private

Declare a compile-time constant as enum and not as static constant.

Enumerator:
dataSize 

The number of elements to store.

Definition at line 773 of file WTensorBase.h.

Constructor & Destructor Documentation

template<std::size_t order, std::size_t dim, typename Data_T >
WTensorBaseSym< order, dim, Data_T >::WTensorBaseSym ( )

Standard constructor.

All elements are set to Data_T().

Definition at line 882 of file WTensorBase.h.

template<std::size_t order, std::size_t dim, typename Data_T>
WTensorBaseSym< order, dim, Data_T >::WTensorBaseSym ( const WValue< Data_T > &  data)
explicit

Constructs the symmetrical tensor and initialize with the given data.

Parameters
dataThe components of the symmetrical tensor: Take care of the ordering of the components to match the ordering in
See Also
m_data.

Definition at line 888 of file WTensorBase.h.

References WTensorBaseSym< order, dim, Data_T >::dataSize, and WTensorBaseSym< order, dim, Data_T >::m_data.

template<std::size_t order, std::size_t dim, typename Data_T>
WTensorBaseSym< order, dim, Data_T >::WTensorBaseSym ( WTensorBaseSym< order, dim, Data_T > const &  t)

Copy constructor.

Parameters
tThe tensor to copy from.

Definition at line 895 of file WTensorBase.h.

Member Function Documentation

template<std::size_t order, std::size_t dim, typename Data_T>
WTensorBaseSym< order, dim, Data_T >::BOOST_STATIC_ASSERT ( dim!  = 0)
private

For dim == 0, create an artificial compiler error.

template<std::size_t order, std::size_t dim, typename Data_T >
std::size_t WTensorBaseSym< order, dim, Data_T >::getDimension ( ) const

Get the dimension of this tensor.

Returns
The dimension of this tensor.

Definition at line 908 of file WTensorBase.h.

template<std::size_t order, std::size_t dim, typename Data_T >
std::size_t WTensorBaseSym< order, dim, Data_T >::getOrder ( ) const

Get the order of this tensor.

Returns
The order of this tensor.

Definition at line 914 of file WTensorBase.h.

template<std::size_t order, std::size_t dim, typename Data_T >
bool WTensorBaseSym< order, dim, Data_T >::operator!= ( WTensorBaseSym< order, dim, Data_T > const &  other) const

Compare this WTensorBaseSym to another one.

Parameters
otherThe WTensorBaseSym to compare to.
Returns
True, iff this tensors' elements are not equal to another tensors' elements.

Definition at line 957 of file WTensorBase.h.

References WTensorBaseSym< order, dim, Data_T >::m_data.

template<std::size_t order, std::size_t dim, typename Data_T >
WTensorBaseSym< order, dim, Data_T > const & WTensorBaseSym< order, dim, Data_T >::operator= ( WTensorBaseSym< order, dim, Data_T > const &  t)

Copy operator.

Parameters
tThe tensor to copy from.
Returns
*this.

Definition at line 901 of file WTensorBase.h.

References WTensorBaseSym< order, dim, Data_T >::m_data.

template<std::size_t order, std::size_t dim, typename Data_T >
bool WTensorBaseSym< order, dim, Data_T >::operator== ( WTensorBaseSym< order, dim, Data_T > const &  other) const

Compare this WTensorBaseSym to another one.

Parameters
otherThe WTensorBaseSym to compare to.
Returns
True, iff this tensors' elements are equal to another tensors' elements.

Definition at line 951 of file WTensorBase.h.

References WTensorBaseSym< order, dim, Data_T >::m_data.

template<std::size_t order, std::size_t dim, typename Data_T >
template<typename Index_T >
Data_T & WTensorBaseSym< order, dim, Data_T >::operator[] ( std::vector< Index_T > const &  indices)

Get the element at a specific position.

Parameters
indicesA std::vector of indices that has a size of at least order.
Returns
A reference to the element.

Definition at line 921 of file WTensorBase.h.

template<std::size_t order, std::size_t dim, typename Data_T >
template<typename Index_T >
Data_T const & WTensorBaseSym< order, dim, Data_T >::operator[] ( std::vector< Index_T > const &  indices) const

Get the element at a specific position.

Parameters
indicesA std::vector of indices that has a size of at least order.
Returns
A reference to the element.

Definition at line 928 of file WTensorBase.h.

template<std::size_t order, std::size_t dim, typename Data_T >
template<typename Index_T >
Data_T & WTensorBaseSym< order, dim, Data_T >::operator[] ( Index_T  indices[])

Get the element at a specific position.

Parameters
indicesAn array of indices that has a size of at least order.
Returns
A reference to the element.
Notes:
No bounds checking is performed.

Definition at line 936 of file WTensorBase.h.

template<std::size_t order, std::size_t dim, typename Data_T >
template<typename Index_T >
Data_T const & WTensorBaseSym< order, dim, Data_T >::operator[] ( Index_T  indices[]) const

Get the element at a specific position.

Parameters
indicesAn array of indices that has a size of at least order.
Returns
A reference to the element.
Notes:
No bounds checking is performed.

Definition at line 943 of file WTensorBase.h.

Member Data Documentation

template<std::size_t order, std::size_t dim, typename Data_T>
std::vector< Data_T > WTensorBaseSym< order, dim, Data_T >::m_data
private
template<std::size_t order, std::size_t dim, typename Data_T>
WTensorBaseSym< order, dim, Data_T >::PositionIndexer const WTensorBaseSym< order, dim, Data_T >::m_indexer
staticprivate

A static PositionIndexer that maps tensor indices to vector positions.

Definition at line 823 of file WTensorBase.h.


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