OpenWalnut
1.4.0
|
Symmetric tensor base class. More...
#include <WTensorBase.h>
Classes | |
class | PositionIndexer |
A class that maps symmetric tensor indices to vector positions. More... | |
Public Types | |
enum | { dataSize = WBinom< order + dim - 1, order >::value } |
Declare a compile-time constant as enum and not as static constant. More... | |
Public Member Functions | |
WTensorBaseSym () | |
Standard constructor. | |
WTensorBaseSym (const WValue< Data_T > &data) | |
Constructs the symmetrical tensor and initialize with the given data. | |
WTensorBaseSym (const boost::array< Data_T, dataSize > &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. | |
void | setValues (WValue< Data_T > const &values) |
Set internal data from a WValue. | |
void | setValues (boost::array< Data_T, dataSize > const &values) |
Set internal data from a boost array. | |
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. | |
Protected Attributes | |
boost::array< Data_T, dataSize > | 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. | |
Private Member Functions | |
BOOST_STATIC_ASSERT (dim!=0) | |
For dim == 0, create an artificial compiler error. | |
Static Private Attributes | |
static PositionIndexer const | m_indexer |
A static PositionIndexer that maps tensor indices to vector positions. | |
Friends | |
class | ::WTensorBaseSymTest |
class | ::WTensorFuncTest |
Symmetric tensor base class.
order | The order of the tensor. |
dim | The dimension of the tensor, i.e. the number of components in each direction. |
Data_T | The datatype of the components, double by default. |
Definition at line 641 of file WTensorBase.h.
anonymous enum |
Declare a compile-time constant as enum and not as static constant.
Definition at line 658 of file WTensorBase.h.
WTensorBaseSym< order, dim, Data_T >::WTensorBaseSym | ( | ) |
Standard constructor.
All elements are set to Data_T().
Definition at line 912 of file WTensorBase.h.
References WTensorBaseSym< order, dim, Data_T >::m_data.
WTensorBaseSym< order, dim, Data_T >::WTensorBaseSym | ( | const WValue< Data_T > & | data | ) | [explicit] |
Constructs the symmetrical tensor and initialize with the given data.
data | The components of the symmetrical tensor: Take care of the ordering of the components to match the ordering in |
Definition at line 918 of file WTensorBase.h.
References WTensorBaseSym< order, dim, Data_T >::dataSize, WTensorBaseSym< order, dim, Data_T >::m_data, and WValue< T >::size().
WTensorBaseSym< order, dim, Data_T >::WTensorBaseSym | ( | const boost::array< Data_T, dataSize > & | data | ) | [explicit] |
Constructs the symmetrical tensor and initialize with the given data.
data | The components of the symmetrical tensor: Take care of the ordering of the components to match the ordering in |
Definition at line 925 of file WTensorBase.h.
References WTensorBaseSym< order, dim, Data_T >::dataSize, and WTensorBaseSym< order, dim, Data_T >::m_data.
WTensorBaseSym< order, dim, Data_T >::WTensorBaseSym | ( | WTensorBaseSym< order, dim, Data_T > const & | t | ) |
Copy constructor.
t | The tensor to copy from. |
Definition at line 931 of file WTensorBase.h.
WTensorBaseSym< order, dim, Data_T >::BOOST_STATIC_ASSERT | ( | dim! | = 0 | ) | [private] |
For dim == 0, create an artificial compiler error.
std::size_t WTensorBaseSym< order, dim, Data_T >::getDimension | ( | ) | const |
Get the dimension of this tensor.
Definition at line 944 of file WTensorBase.h.
std::size_t WTensorBaseSym< order, dim, Data_T >::getOrder | ( | ) | const |
Get the order of this tensor.
Definition at line 950 of file WTensorBase.h.
bool WTensorBaseSym< order, dim, Data_T >::operator!= | ( | WTensorBaseSym< order, dim, Data_T > const & | other | ) | const |
Compare this WTensorBaseSym to another one.
other | The WTensorBaseSym to compare to. |
Definition at line 1006 of file WTensorBase.h.
References WTensorBaseSym< order, dim, Data_T >::m_data.
WTensorBaseSym< order, dim, Data_T > const & WTensorBaseSym< order, dim, Data_T >::operator= | ( | WTensorBaseSym< order, dim, Data_T > const & | t | ) |
Copy operator.
t | The tensor to copy from. |
Definition at line 937 of file WTensorBase.h.
References WTensorBaseSym< order, dim, Data_T >::m_data.
bool WTensorBaseSym< order, dim, Data_T >::operator== | ( | WTensorBaseSym< order, dim, Data_T > const & | other | ) | const |
Compare this WTensorBaseSym to another one.
other | The WTensorBaseSym to compare to. |
Definition at line 1000 of file WTensorBase.h.
References WTensorBaseSym< order, dim, Data_T >::m_data.
Data_T & WTensorBaseSym< order, dim, Data_T >::operator[] | ( | std::vector< Index_T > const & | indices | ) |
Get the element at a specific position.
indices | A std::vector of indices that has a size of at least order. |
Definition at line 970 of file WTensorBase.h.
Data_T const & WTensorBaseSym< order, dim, Data_T >::operator[] | ( | std::vector< Index_T > const & | indices | ) | const |
Get the element at a specific position.
indices | A std::vector of indices that has a size of at least order. |
Definition at line 977 of file WTensorBase.h.
Data_T & WTensorBaseSym< order, dim, Data_T >::operator[] | ( | Index_T | indices[] | ) |
Get the element at a specific position.
indices | An array of indices that has a size of at least order. |
Definition at line 985 of file WTensorBase.h.
Data_T const & WTensorBaseSym< order, dim, Data_T >::operator[] | ( | Index_T | indices[] | ) | const |
Get the element at a specific position.
indices | An array of indices that has a size of at least order. |
Definition at line 992 of file WTensorBase.h.
void WTensorBaseSym< order, dim, Data_T >::setValues | ( | WValue< Data_T > const & | values | ) |
Set internal data from a WValue.
values | The input values. |
Definition at line 956 of file WTensorBase.h.
References WValue< T >::size().
void WTensorBaseSym< order, dim, Data_T >::setValues | ( | boost::array< Data_T, dataSize > const & | values | ) |
Set internal data from a boost array.
values | The input values. |
Definition at line 963 of file WTensorBase.h.
boost::array< Data_T, dataSize > WTensorBaseSym< order, dim, Data_T >::m_data [protected] |
Stores the elements of this tensor lexicographical ordered on their indices, where for each set of permutations the lexicographical lowest index is used.
Definition at line 802 of file WTensorBase.h.
Referenced by WTensorBaseSym< order, dim, Data_T >::operator!=(), WTensorBaseSym< 0, dim, Data_T >::operator!=(), WTensorBaseSym< order, dim, Data_T >::operator=(), WTensorBaseSym< 0, dim, Data_T >::operator=(), WTensorBaseSym< order, dim, Data_T >::operator==(), WTensorBaseSym< 0, dim, Data_T >::operator==(), WTensorBaseSym< 0, dim, Data_T >::operator[](), WTensorFuncTest::testAccessOperatorSymmetry(), WTensorBaseSymTest::testWTensorBaseSymAccessOperatorPermutations(), WTensorBaseSymTest::testWTensorBaseSymArrayAccess(), WTensorBaseSymTest::testWTensorBaseSymCopyConstructor(), WTensorBaseSymTest::testWTensorBaseSymCopyOperatorSelfCopy(), WTensorBaseSymTest::testWTensorBaseSymCopyOperatorSimple(), and WTensorBaseSym< order, dim, Data_T >::WTensorBaseSym().
WTensorBaseSym< order, dim, Data_T >::PositionIndexer const WTensorBaseSym< order, dim, Data_T >::m_indexer [static, private] |
A static PositionIndexer that maps tensor indices to vector positions.
Definition at line 847 of file WTensorBase.h.