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

Normal tensor base class. More...

#include <WTensorBase.h>

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

Public Member Functions

 WTensorBase ()
 Standard constructor.
 WTensorBase (WTensorBase const &t)
 Copy constructor.
 WTensorBase (WTensorBaseSym< order, dim, Data_T > const &t)
 Copy construct a WTensorBase from a WTensorBaseSym.
WTensorBase const & operator= (WTensorBase const &t)
 Copy operator.
WTensorBase const & operator= (WTensorBaseSym< order, dim, Data_T > 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== (WTensorBase const &other) const
 Compare this WTensorBase to another one.
bool operator!= (WTensorBase const &other) const
 Compare this WTensorBase to another one.

Private Types

enum  { dataSize = WPower< dim, 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.

Static Private Member Functions

template<typename Index_T >
static std::size_t getPos (Index_T pos[])
 Calculate the position of the element in the data vector.

Private Attributes

std::vector< Data_T > m_data
 Stores all elements.

Friends

class WTensorBase< order+1, dim, Data_T >
class ::WTensorBaseTest
class ::WTensorFuncTest

Detailed Description

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

Normal 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
WTensor

Definition at line 159 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 311 of file WTensorBase.h.

Constructor & Destructor Documentation

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

Standard constructor.

All elements are set to Data_T().

Definition at line 321 of file WTensorBase.h.

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

Copy constructor.

Parameters
tThe tensor to copy from.

Definition at line 327 of file WTensorBase.h.

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

Copy construct a WTensorBase from a WTensorBaseSym.

Parameters
tThe symmetric tensor to copy from.

Definition at line 333 of file WTensorBase.h.

Member Function Documentation

template<std::size_t order, std::size_t dim, typename Data_T>
WTensorBase< 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 WTensorBase< order, dim, Data_T >::getDimension ( ) const

Get the dimension of this tensor.

Returns
The dimension of this tensor.

Definition at line 361 of file WTensorBase.h.

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

Get the order of this tensor.

Returns
The order of this tensor.

Definition at line 367 of file WTensorBase.h.

template<std::size_t order, std::size_t dim, typename Data_T >
template<typename Index_T >
std::size_t WTensorBase< order, dim, Data_T >::getPos ( Index_T  pos[])
inlinestaticprivate

Calculate the position of the element in the data vector.

The function is build recursively at compile-time.

Parameters
posAn array of indices.
Returns
The position of the element.

Definition at line 374 of file WTensorBase.h.

Referenced by WTensorBase< order, dim, Data_T >::operator[]().

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

Compare this WTensorBase to another one.

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

Definition at line 420 of file WTensorBase.h.

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

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

Copy operator.

Parameters
tThe tensor to copy from.
Returns
*this.

Definition at line 340 of file WTensorBase.h.

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

Referenced by WTensor< order, dim, Data_T >::operator=().

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

Copy operator.

Parameters
tThe symmetric tensor to copy from.
Returns
*this.

Definition at line 347 of file WTensorBase.h.

References WTensorBase< order, dim, Data_T >::dataSize.

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

Compare this WTensorBase to another one.

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

Definition at line 414 of file WTensorBase.h.

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

template<std::size_t order, std::size_t dim, typename Data_T >
template<typename Index_T >
Data_T & WTensorBase< 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 381 of file WTensorBase.h.

Referenced by WTensorBase< order, dim, Data_T >::operator[]().

template<std::size_t order, std::size_t dim, typename Data_T >
template<typename Index_T >
Data_T const & WTensorBase< 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 388 of file WTensorBase.h.

References WTensorBase< order, dim, Data_T >::operator[]().

template<std::size_t order, std::size_t dim, typename Data_T >
template<typename Index_T >
Data_T & WTensorBase< 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:
The array must have a length of at least order.

Definition at line 396 of file WTensorBase.h.

template<std::size_t order, std::size_t dim, typename Data_T >
template<typename Index_T >
Data_T const & WTensorBase< 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:
The array must have a length of at least order.

Definition at line 403 of file WTensorBase.h.

References WTensorBase< order, dim, Data_T >::getPos(), and WTensorBase< order, dim, Data_T >::m_data.

Member Data Documentation

template<std::size_t order, std::size_t dim, typename Data_T>
std::vector< Data_T > WTensorBase< order, dim, Data_T >::m_data
private

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