Public Member Functions | Private Member Functions | Private Attributes | List of all members
oomph::RankThreeTensor< T > Class Template Reference

A Rank 3 Tensor class. More...

#include <matrices.h>

Public Member Functions

 RankThreeTensor ()
 Empty constructor. More...
 
 RankThreeTensor (const RankThreeTensor &source_tensor)
 Copy constructor: Deep copy. More...
 
RankThreeTensoroperator= (const RankThreeTensor &source_tensor)
 Copy assignement. More...
 
 RankThreeTensor (const unsigned long &n)
 One parameter constructor produces a cubic nxnxn tensor. More...
 
 RankThreeTensor (const unsigned long &n_index1, const unsigned long &n_index2, const unsigned long &n_index3)
 Three parameter constructor, general non-square tensor. More...
 
 RankThreeTensor (const unsigned long &n_index1, const unsigned long &n_index2, const unsigned long &n_index3, const T &initial_val)
 Three parameter constructor, general non-square tensor. More...
 
virtual ~RankThreeTensor ()
 Destructor: delete the pointers. More...
 
void resize (const unsigned long &n)
 Resize to a square nxnxn tensor. More...
 
void resize (const unsigned long &n_index1, const unsigned long &n_index2, const unsigned long &n_index3)
 Resize to a general tensor. More...
 
void resize (const unsigned long &n_index1, const unsigned long &n_index2, const unsigned long &n_index3, const T &initial_value)
 Resize to a general tensor. More...
 
void initialise (const T &val)
 Initialise all values in the tensor to val. More...
 
unsigned long nindex1 () const
 Return the range of index 1 of the tensor. More...
 
unsigned long nindex2 () const
 Return the range of index 2 of the tensor. More...
 
unsigned long nindex3 () const
 Return the range of index 3 of the tensor. More...
 
T & operator() (const unsigned long &i, const unsigned long &j, const unsigned long &k)
 Overload the round brackets to give access as a(i,j,k) More...
 
operator() (const unsigned long &i, const unsigned long &j, const unsigned long &k) const
 Overload a const version for read-only access as a(i,j,k) More...
 

Private Member Functions

void range_check (const unsigned long &i, const unsigned long &j, const unsigned long &k) const
 Range check to catch when an index is out of bounds, if so, it issues a warning message and dies by throwing an OomphLibError. More...
 

Private Attributes

T * Tensordata
 Private internal representation as pointer to data. More...
 
unsigned N
 1st Tensor dimension More...
 
unsigned M
 2nd Tensor dimension More...
 
unsigned P
 3rd Tensor dimension More...
 

Detailed Description

template<class T>
class oomph::RankThreeTensor< T >

A Rank 3 Tensor class.

Definition at line 1337 of file matrices.h.

Constructor & Destructor Documentation

template<class T>
oomph::RankThreeTensor< T >::RankThreeTensor ( )
inline

Empty constructor.

Definition at line 1396 of file matrices.h.

template<class T>
oomph::RankThreeTensor< T >::RankThreeTensor ( const RankThreeTensor< T > &  source_tensor)
inline
template<class T>
oomph::RankThreeTensor< T >::RankThreeTensor ( const unsigned long &  n)
inline
template<class T>
oomph::RankThreeTensor< T >::RankThreeTensor ( const unsigned long &  n_index1,
const unsigned long &  n_index2,
const unsigned long &  n_index3 
)
inline
template<class T>
oomph::RankThreeTensor< T >::RankThreeTensor ( const unsigned long &  n_index1,
const unsigned long &  n_index2,
const unsigned long &  n_index3,
const T &  initial_val 
)
inline
template<class T>
virtual oomph::RankThreeTensor< T >::~RankThreeTensor ( )
inlinevirtual

Destructor: delete the pointers.

Definition at line 1491 of file matrices.h.

References oomph::RankThreeTensor< T >::Tensordata.

Member Function Documentation

template<class T>
void oomph::RankThreeTensor< T >::initialise ( const T &  val)
inline
template<class T>
unsigned long oomph::RankThreeTensor< T >::nindex1 ( ) const
inline

Return the range of index 1 of the tensor.

Definition at line 1585 of file matrices.h.

References oomph::RankThreeTensor< T >::N.

Referenced by oomph::RankThreeTensor< T >::operator=(), and oomph::RankThreeTensor< T >::RankThreeTensor().

template<class T>
unsigned long oomph::RankThreeTensor< T >::nindex2 ( ) const
inline

Return the range of index 2 of the tensor.

Definition at line 1588 of file matrices.h.

References oomph::RankThreeTensor< T >::M.

Referenced by oomph::RankThreeTensor< T >::operator=(), and oomph::RankThreeTensor< T >::RankThreeTensor().

template<class T>
unsigned long oomph::RankThreeTensor< T >::nindex3 ( ) const
inline

Return the range of index 3 of the tensor.

Definition at line 1591 of file matrices.h.

References oomph::RankThreeTensor< T >::P.

Referenced by oomph::RankThreeTensor< T >::operator=(), and oomph::RankThreeTensor< T >::RankThreeTensor().

template<class T>
T& oomph::RankThreeTensor< T >::operator() ( const unsigned long &  i,
const unsigned long &  j,
const unsigned long &  k 
)
inline

Overload the round brackets to give access as a(i,j,k)

Definition at line 1594 of file matrices.h.

References oomph::RankThreeTensor< T >::M, oomph::RankThreeTensor< T >::P, oomph::RankThreeTensor< T >::range_check(), and oomph::RankThreeTensor< T >::Tensordata.

template<class T>
T oomph::RankThreeTensor< T >::operator() ( const unsigned long &  i,
const unsigned long &  j,
const unsigned long &  k 
) const
inline

Overload a const version for read-only access as a(i,j,k)

Definition at line 1604 of file matrices.h.

References oomph::RankThreeTensor< T >::M, oomph::RankThreeTensor< T >::P, oomph::RankThreeTensor< T >::range_check(), and oomph::RankThreeTensor< T >::Tensordata.

template<class T>
RankThreeTensor& oomph::RankThreeTensor< T >::operator= ( const RankThreeTensor< T > &  source_tensor)
inline
template<class T>
void oomph::RankThreeTensor< T >::range_check ( const unsigned long &  i,
const unsigned long &  j,
const unsigned long &  k 
) const
inlineprivate

Range check to catch when an index is out of bounds, if so, it issues a warning message and dies by throwing an OomphLibError.

Definition at line 1356 of file matrices.h.

References oomph::RankThreeTensor< T >::M, oomph::RankThreeTensor< T >::N, and oomph::RankThreeTensor< T >::P.

Referenced by oomph::RankThreeTensor< T >::operator()().

template<class T>
void oomph::RankThreeTensor< T >::resize ( const unsigned long &  n)
inline

Resize to a square nxnxn tensor.

Definition at line 1494 of file matrices.h.

References oomph::RankThreeTensor< T >::resize().

Referenced by oomph::RankThreeTensor< T >::operator=(), and oomph::RankThreeTensor< T >::resize().

template<class T>
void oomph::RankThreeTensor< T >::resize ( const unsigned long &  n_index1,
const unsigned long &  n_index2,
const unsigned long &  n_index3 
)
inline
template<class T>
void oomph::RankThreeTensor< T >::resize ( const unsigned long &  n_index1,
const unsigned long &  n_index2,
const unsigned long &  n_index3,
const T &  initial_value 
)
inline

Member Data Documentation

template<class T>
unsigned oomph::RankThreeTensor< T >::M
private
template<class T>
unsigned oomph::RankThreeTensor< T >::N
private
template<class T>
unsigned oomph::RankThreeTensor< T >::P
private
template<class T>
T* oomph::RankThreeTensor< T >::Tensordata
private

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