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

Implements a symmetric tensor that has the same number of components in every direction. More...

#include <WTensorSym.h>

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

Public Member Functions

 WTensorSym ()
 Default constructor of the symmetric tensor.
 WTensorSym (const WValue< Data_T > &data)
 Constructs and initializes the symmetrical Tensor with a WValue.

Detailed Description

template<std::size_t order, std::size_t dim, typename Data_T = double>
class WTensorSym< order, dim, Data_T >

Implements a symmetric tensor that has the same number of components in every direction.

A symmetric tensor has the same value for every permutation of the indices.

For example, t(i,j) = t(j,i) for a tensor of order 2, and t(i,j,k) = t(j,i,k) = t(i,k,j) = t(j,k,i) = t(k,i,j) = t(k,j,i) for a tensor of order 3.

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 dimension may never be 0.
Notes:
The type Data_T may not throw exceptions on construction, destruction or during any assignment operator.

Access to specific elements of the tensor can be achieved in 2 ways:

Notes:
The datatype of the array or std::vector can be any type castable to std::size_t.
Notes:
There is no bounds checking for the array version of operator [].
Notes:
Operator () is not supported for orders larger than 6.

This class optimizes memory usage. For example, for a symmetric tensor of order 2 and dimension 3, only 6 values (instead of 9) need to be stored. However, there is additional memory overhead per class (i.e. per allocation of the template parameters), which is of constant size and thus does not depend on the number of instances.

Usage and operators are the same as with WTensor. Note that changes to an element t(i,j,k,...) also change every element whose indices are a permutation of i,j,k... .

See Also
WTensor

Definition at line 70 of file WTensorSym.h.

Constructor & Destructor Documentation

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

Default constructor of the symmetric tensor.

Definition at line 92 of file WTensorSym.h.

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

Constructs and initializes the symmetrical Tensor with a WValue.

Notes:
The same ordering as for the data member is required.
Parameters
dataThe components in same ordering as for the data member m_data is required, (
See Also
m_data).

Definition at line 98 of file WTensorSym.h.


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