![]() |
|
A Rank 5 Tensor class. More...
#include <matrices.h>
Public Member Functions | |
RankFiveTensor () | |
Empty constructor. More... | |
RankFiveTensor (const RankFiveTensor &source_tensor) | |
Copy constructor: Deep copy. More... | |
RankFiveTensor & | operator= (const RankFiveTensor &source_tensor) |
Copy assignement. More... | |
RankFiveTensor (const unsigned long &n) | |
One parameter constructor produces a nxnxnxnxn tensor. More... | |
RankFiveTensor (const unsigned long &n_index1, const unsigned long &n_index2, const unsigned long &n_index3, const unsigned long &n_index4, const unsigned long &n_index5) | |
Four parameter constructor, general non-square tensor. More... | |
RankFiveTensor (const unsigned long &n_index1, const unsigned long &n_index2, const unsigned long &n_index3, const unsigned long &n_index4, const unsigned long &n_index5, const T &initial_val) | |
Four parameter constructor, general non-square tensor. More... | |
virtual | ~RankFiveTensor () |
Destructor: delete the pointers. More... | |
void | resize (const unsigned long &n) |
Resize to a square nxnxnxn tensor. More... | |
void | resize (const unsigned long &n_index1, const unsigned long &n_index2, const unsigned long &n_index3, const unsigned long &n_index4, const unsigned long &n_index5) |
Resize to a general tensor. More... | |
void | resize (const unsigned long &n_index1, const unsigned long &n_index2, const unsigned long &n_index3, const unsigned long &n_index4, const unsigned long &n_index5, 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... | |
unsigned long | nindex4 () const |
Return the range of index 4 of the tensor. More... | |
unsigned long | nindex5 () const |
Return the range of index 5 of the tensor. More... | |
T & | operator() (const unsigned long &i, const unsigned long &j, const unsigned long &k, const unsigned long &l, const unsigned long &m) |
Overload the round brackets to give access as a(i,j,k,l,m) More... | |
T | operator() (const unsigned long &i, const unsigned long &j, const unsigned long &k, const unsigned long &l, const unsigned long &m) const |
Overload a const version for read-only access as a(i,j,k,l,m) More... | |
T & | raw_direct_access (const unsigned long &i) |
const T & | raw_direct_access (const unsigned long &i) const |
unsigned | offset (const unsigned long &i, const unsigned long &j, const unsigned long &k) const |
Private Member Functions | |
void | range_check (const unsigned long &i, const unsigned long &j, const unsigned long &k, const unsigned long &l, const unsigned long &m) const |
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... | |
unsigned | Q |
4th Tensor dimension More... | |
unsigned | R |
5th Tensor dimension More... | |
A Rank 5 Tensor class.
/////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////
|
inline |
Empty constructor.
|
inline |
Copy constructor: Deep copy.
References i, j, k, m, oomph::RankFiveTensor< T >::M, oomph::RankFiveTensor< T >::N, oomph::RankFiveTensor< T >::nindex1(), oomph::RankFiveTensor< T >::nindex2(), oomph::RankFiveTensor< T >::nindex3(), oomph::RankFiveTensor< T >::nindex4(), oomph::RankFiveTensor< T >::nindex5(), oomph::RankFiveTensor< T >::P, oomph::RankFiveTensor< T >::Q, oomph::RankFiveTensor< T >::R, and oomph::RankFiveTensor< T >::Tensordata.
|
inline |
One parameter constructor produces a nxnxnxnxn tensor.
References oomph::RankFiveTensor< T >::initialise(), n, oomph::RankFiveTensor< T >::N, oomph::RankFiveTensor< T >::P, oomph::RankFiveTensor< T >::Q, oomph::RankFiveTensor< T >::R, and oomph::RankFiveTensor< T >::Tensordata.
|
inline |
Four parameter constructor, general non-square tensor.
References oomph::RankFiveTensor< T >::initialise(), oomph::RankFiveTensor< T >::N, oomph::RankFiveTensor< T >::P, oomph::RankFiveTensor< T >::Q, oomph::RankFiveTensor< T >::R, and oomph::RankFiveTensor< T >::Tensordata.
|
inline |
Four parameter constructor, general non-square tensor.
References oomph::RankFiveTensor< T >::initialise(), oomph::RankFiveTensor< T >::N, oomph::RankFiveTensor< T >::P, oomph::RankFiveTensor< T >::Q, oomph::RankFiveTensor< T >::R, and oomph::RankFiveTensor< T >::Tensordata.
|
inlinevirtual |
Destructor: delete the pointers.
References oomph::RankFiveTensor< T >::Tensordata.
|
inline |
Initialise all values in the tensor to val.
References i, oomph::RankFiveTensor< T >::N, oomph::RankFiveTensor< T >::P, oomph::RankFiveTensor< T >::Q, oomph::RankFiveTensor< T >::R, oomph::RankFiveTensor< T >::Tensordata, and calibrate::val.
Referenced by oomph::RankFiveTensor< T >::RankFiveTensor(), and oomph::RankFiveTensor< T >::resize().
|
inline |
Return the range of index 1 of the tensor.
References oomph::RankFiveTensor< T >::N.
Referenced by oomph::RankFiveTensor< T >::operator=(), and oomph::RankFiveTensor< T >::RankFiveTensor().
|
inline |
Return the range of index 2 of the tensor.
References oomph::RankFiveTensor< T >::M.
Referenced by oomph::RankFiveTensor< T >::operator=(), and oomph::RankFiveTensor< T >::RankFiveTensor().
|
inline |
Return the range of index 3 of the tensor.
References oomph::RankFiveTensor< T >::P.
Referenced by oomph::RankFiveTensor< T >::operator=(), and oomph::RankFiveTensor< T >::RankFiveTensor().
|
inline |
Return the range of index 4 of the tensor.
References oomph::RankFiveTensor< T >::Q.
Referenced by oomph::RankFiveTensor< T >::operator=(), and oomph::RankFiveTensor< T >::RankFiveTensor().
|
inline |
Return the range of index 5 of the tensor.
References oomph::RankFiveTensor< T >::R.
Referenced by oomph::RankFiveTensor< T >::operator=(), and oomph::RankFiveTensor< T >::RankFiveTensor().
|
inline |
Caculate the offset in flat-packed Cy-style, column-major format, required for a given i,j,k. WARNING: Only for experienced users. Only use this if raw speed is of the essence, as in the solid mechanics problems.
References i, j, k, oomph::RankFiveTensor< T >::P, oomph::RankFiveTensor< T >::Q, and oomph::RankFiveTensor< T >::R.
Referenced by oomph::RefineableQDPVDElement< DIM, NNODE_1D >::fill_in_generic_contribution_to_residuals_pvd(), oomph::RefineablePVDEquations< DIM >::fill_in_generic_contribution_to_residuals_pvd(), oomph::PVDEquations< DIM >::fill_in_generic_contribution_to_residuals_pvd(), oomph::ScaleCoupledElement< ELEMENT >::fill_in_generic_contribution_to_residuals_pvd(), oomph::VolumeCoupledElement< ELEMENT >::fill_in_generic_contribution_to_residuals_pvd(), oomph::RefineablePVDEquationsWithPressure< DIM >::fill_in_generic_residual_contribution_pvd_with_pressure(), and oomph::PVDEquationsWithPressure< DIM >::fill_in_generic_residual_contribution_pvd_with_pressure().
|
inline |
Overload the round brackets to give access as a(i,j,k,l,m)
References i, j, k, m, oomph::RankFiveTensor< T >::P, oomph::RankFiveTensor< T >::Q, oomph::RankFiveTensor< T >::R, oomph::RankFiveTensor< T >::range_check(), and oomph::RankFiveTensor< T >::Tensordata.
|
inline |
Overload a const version for read-only access as a(i,j,k,l,m)
References i, j, k, m, oomph::RankFiveTensor< T >::P, oomph::RankFiveTensor< T >::Q, oomph::RankFiveTensor< T >::R, oomph::RankFiveTensor< T >::range_check(), and oomph::RankFiveTensor< T >::Tensordata.
|
inline |
Copy assignement.
References i, j, k, m, oomph::RankFiveTensor< T >::M, n, oomph::RankFiveTensor< T >::N, oomph::RankFiveTensor< T >::nindex1(), oomph::RankFiveTensor< T >::nindex2(), oomph::RankFiveTensor< T >::nindex3(), oomph::RankFiveTensor< T >::nindex4(), oomph::RankFiveTensor< T >::nindex5(), p, oomph::RankFiveTensor< T >::P, Eigen::numext::q, oomph::RankFiveTensor< T >::Q, UniformPSDSelfTest::r, oomph::RankFiveTensor< T >::R, and oomph::RankFiveTensor< T >::resize().
|
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
References i, j, k, m, oomph::RankFiveTensor< T >::N, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::RankFiveTensor< T >::P, oomph::RankFiveTensor< T >::Q, and oomph::RankFiveTensor< T >::R.
Referenced by oomph::RankFiveTensor< T >::operator()().
|
inline |
Direct access to internal storage of data in flat-packed C-style column-major format. WARNING: Only for experienced users. Only use this if raw speed is of the essence, as in the solid mechanics problems.
References i, and oomph::RankFiveTensor< T >::Tensordata.
Referenced by oomph::RefineableQDPVDElement< DIM, NNODE_1D >::fill_in_generic_contribution_to_residuals_pvd(), oomph::RefineablePVDEquations< DIM >::fill_in_generic_contribution_to_residuals_pvd(), oomph::PVDEquations< DIM >::fill_in_generic_contribution_to_residuals_pvd(), oomph::ScaleCoupledElement< ELEMENT >::fill_in_generic_contribution_to_residuals_pvd(), oomph::VolumeCoupledElement< ELEMENT >::fill_in_generic_contribution_to_residuals_pvd(), oomph::RefineablePVDEquationsWithPressure< DIM >::fill_in_generic_residual_contribution_pvd_with_pressure(), and oomph::PVDEquationsWithPressure< DIM >::fill_in_generic_residual_contribution_pvd_with_pressure().
|
inline |
Direct access to internal storage of data in flat-packed C-style column-major format. WARNING: Only for experienced users. Only use this if raw speed is of the essence, as in the solid mechanics problems.
References i, and oomph::RankFiveTensor< T >::Tensordata.
|
inline |
|
inline |
Resize to a general tensor.
References i, oomph::RankFiveTensor< T >::initialise(), j, k, m, oomph::RankFiveTensor< T >::M, min, oomph::RankFiveTensor< T >::N, oomph::RankFiveTensor< T >::P, oomph::RankFiveTensor< T >::Q, oomph::RankFiveTensor< T >::R, and oomph::RankFiveTensor< T >::Tensordata.
|
inline |
Resize to a general tensor.
References i, oomph::RankFiveTensor< T >::initialise(), j, k, m, oomph::RankFiveTensor< T >::M, min, oomph::RankFiveTensor< T >::N, oomph::RankFiveTensor< T >::P, oomph::RankFiveTensor< T >::Q, oomph::RankFiveTensor< T >::R, and oomph::RankFiveTensor< T >::Tensordata.
|
private |
2nd Tensor dimension
Referenced by oomph::RankFiveTensor< T >::nindex2(), oomph::RankFiveTensor< T >::operator=(), oomph::RankFiveTensor< T >::RankFiveTensor(), and oomph::RankFiveTensor< T >::resize().
|
private |
|
private |
3rd Tensor dimension
Referenced by oomph::RankFiveTensor< T >::initialise(), oomph::RankFiveTensor< T >::nindex3(), oomph::RankFiveTensor< T >::offset(), oomph::RankFiveTensor< T >::operator()(), oomph::RankFiveTensor< T >::operator=(), oomph::RankFiveTensor< T >::range_check(), oomph::RankFiveTensor< T >::RankFiveTensor(), and oomph::RankFiveTensor< T >::resize().
|
private |
4th Tensor dimension
Referenced by oomph::RankFiveTensor< T >::initialise(), oomph::RankFiveTensor< T >::nindex4(), oomph::RankFiveTensor< T >::offset(), oomph::RankFiveTensor< T >::operator()(), oomph::RankFiveTensor< T >::operator=(), oomph::RankFiveTensor< T >::range_check(), oomph::RankFiveTensor< T >::RankFiveTensor(), and oomph::RankFiveTensor< T >::resize().
|
private |
5th Tensor dimension
Referenced by oomph::RankFiveTensor< T >::initialise(), oomph::RankFiveTensor< T >::nindex5(), oomph::RankFiveTensor< T >::offset(), oomph::RankFiveTensor< T >::operator()(), oomph::RankFiveTensor< T >::operator=(), oomph::RankFiveTensor< T >::range_check(), oomph::RankFiveTensor< T >::RankFiveTensor(), and oomph::RankFiveTensor< T >::resize().
|
private |
Private internal representation as pointer to data.
Referenced by oomph::RankFiveTensor< T >::initialise(), oomph::RankFiveTensor< T >::operator()(), oomph::RankFiveTensor< T >::RankFiveTensor(), oomph::RankFiveTensor< T >::raw_direct_access(), oomph::RankFiveTensor< T >::resize(), and oomph::RankFiveTensor< T >::~RankFiveTensor().