#include <FourthOrderTensor.hpp>
Public Member Functions | |
FourthOrderTensor () | |
void | SetAsProduct (FourthOrderTensor< DIM > &rTensor, const c_matrix< double, DIM, DIM > &rMatrix, unsigned component) |
double & | operator() (unsigned M, unsigned N, unsigned P, unsigned Q) |
void | Zero () |
Private Attributes | |
std::vector< double > | mData |
unsigned | mDimSqd |
unsigned | mDimCubed |
unsigned | mDimToFour |
A class of fourth order tensors (i.e. tensors with four indices), over arbitrary dimension.
Definition at line 49 of file FourthOrderTensor.hpp.
FourthOrderTensor< DIM >::FourthOrderTensor | ( | ) | [inline] |
Constructor.
Definition at line 37 of file FourthOrderTensor.cpp.
References FourthOrderTensor< DIM >::mData, FourthOrderTensor< DIM >::mDimCubed, FourthOrderTensor< DIM >::mDimSqd, and FourthOrderTensor< DIM >::mDimToFour.
double & FourthOrderTensor< DIM >::operator() | ( | unsigned | M, | |
unsigned | N, | |||
unsigned | P, | |||
unsigned | Q | |||
) | [inline] |
Access the MNPQ-component of the tensor.
M | first index | |
N | second index | |
P | third index | |
Q | fourth index |
Definition at line 151 of file FourthOrderTensor.cpp.
References FourthOrderTensor< DIM >::mData, FourthOrderTensor< DIM >::mDimCubed, and FourthOrderTensor< DIM >::mDimSqd.
void FourthOrderTensor< DIM >::SetAsProduct | ( | FourthOrderTensor< DIM > & | rTensor, | |
const c_matrix< double, DIM, DIM > & | rMatrix, | |||
unsigned | component | |||
) | [inline] |
Set to be the inner product of another fourth order tensor and a matrix
rTensor | A fourth order tensor | |
rMatrix | A matrix | |
component | The component in the fourth order tensor with which to sum (indexed from ZERO) |
ie. if component=0, X_{RM} T_{MNPQ} is returned ie. if component=2, X_{RQ} T_{MNPQ} is returned
Definition at line 52 of file FourthOrderTensor.cpp.
References FourthOrderTensor< DIM >::mData, FourthOrderTensor< DIM >::mDimCubed, FourthOrderTensor< DIM >::mDimSqd, and FourthOrderTensor< DIM >::Zero().
Referenced by NonlinearElasticityAssembler< DIM >::AssembleOnElement(), AbstractCardiacMechanicsAssembler< DIM >::AssembleOnElement(), SchmidCostaExponentialLaw2d::ComputeStressAndStressDerivative(), and PoleZeroMaterialLaw< DIM >::ComputeStressAndStressDerivative().
void FourthOrderTensor< DIM >::Zero | ( | ) | [inline] |
Set all components of the tensor to zero.
Definition at line 163 of file FourthOrderTensor.cpp.
References FourthOrderTensor< DIM >::mData, and FourthOrderTensor< DIM >::mDimToFour.
Referenced by SchmidCostaExponentialLaw2d::ComputeStressAndStressDerivative(), and FourthOrderTensor< DIM >::SetAsProduct().
std::vector<double> FourthOrderTensor< DIM >::mData [private] |
The components of the tensor.
Definition at line 53 of file FourthOrderTensor.hpp.
Referenced by FourthOrderTensor< DIM >::FourthOrderTensor(), FourthOrderTensor< DIM >::operator()(), FourthOrderTensor< DIM >::SetAsProduct(), and FourthOrderTensor< DIM >::Zero().
unsigned FourthOrderTensor< DIM >::mDimCubed [private] |
The cubed dimension, DIM^3.
Definition at line 55 of file FourthOrderTensor.hpp.
Referenced by FourthOrderTensor< DIM >::FourthOrderTensor(), FourthOrderTensor< DIM >::operator()(), and FourthOrderTensor< DIM >::SetAsProduct().
unsigned FourthOrderTensor< DIM >::mDimSqd [private] |
The squared dimension, DIM^2.
Definition at line 54 of file FourthOrderTensor.hpp.
Referenced by FourthOrderTensor< DIM >::FourthOrderTensor(), FourthOrderTensor< DIM >::operator()(), and FourthOrderTensor< DIM >::SetAsProduct().
unsigned FourthOrderTensor< DIM >::mDimToFour [private] |
The fourth power of the dimension, DIM^4.
Definition at line 56 of file FourthOrderTensor.hpp.
Referenced by FourthOrderTensor< DIM >::FourthOrderTensor(), and FourthOrderTensor< DIM >::Zero().