FactorizedRankTwoTensorTempl is designed to perform the spectral decomposition of an underlying symmetric second order tensor and reuse its bases for future operations if possible. More...
#include <FactorizedRankTwoTensor.h>
Public Types | |
typedef T::value_type | value_type |
For generic programming. More... | |
Public Member Functions | |
FactorizedRankTwoTensorTempl ()=delete | |
No default constructor. More... | |
FactorizedRankTwoTensorTempl (const FactorizedRankTwoTensorTempl< T > &A)=default | |
Copy constructor. More... | |
FactorizedRankTwoTensorTempl (const T &A) | |
Constructor if the factorization isn't known a priori. More... | |
FactorizedRankTwoTensorTempl (const std::vector< typename T::value_type > &eigvals, const RankTwoTensorTempl< typename T::value_type > &eigvecs) | |
void | print (std::ostream &stm=Moose::out) const |
FactorizedRankTwoTensorTempl< T > | rotated (const RankTwoTensorTempl< typename T::value_type > &R) const |
FactorizedRankTwoTensorTempl< T > | transpose () const |
Returns the transpose of _A. More... | |
FactorizedRankTwoTensorTempl< T > & | operator*= (const typename T::value_type &a) |
performs _A *= a in place, also updates eigen values More... | |
template<typename T2 > | |
FactorizedRankTwoTensorTempl< T > | operator* (const T2 &a) const |
returns _A * a, also updates eigen values More... | |
FactorizedRankTwoTensorTempl< T > & | operator/= (const typename T::value_type &a) |
performs _A /= a in place, also updates eigen values More... | |
template<typename T2 > | |
FactorizedRankTwoTensorTempl< T > | operator/ (const T2 &a) const |
returns _A / a, also updates eigen values More... | |
bool | operator== (const T &A) const |
Defines logical equality with another second order tensor. More... | |
bool | operator== (const FactorizedRankTwoTensorTempl< T > &A) const |
Defines logical equality with another FactorizedRankTwoTensorTempl<T> More... | |
FactorizedRankTwoTensorTempl< T > | inverse () const |
inverse of _A More... | |
void | addIa (const typename T::value_type &a) |
add identity times a to _A More... | |
T::value_type | trace () const |
trace of _A More... | |
T::value_type | det () const |
determinant of _A More... | |
template<typename T2 = T> | |
T2 | get () const |
template<typename T2 = T> | |
T2 | get () |
const std::vector< typename T::value_type > & | eigvals () const |
std::vector< typename T::value_type > | eigvals () |
const RankTwoTensorTempl< typename T::value_type > & | eigvecs () const |
RankTwoTensorTempl< typename T::value_type > | eigvecs () |
FactorizedRankTwoTensorTempl< T > & | operator= (const FactorizedRankTwoTensorTempl< T > &A) |
FactorizedRankTwoTensorTempl< T > & | operator= (const T &A) |
Private Member Functions | |
RankTwoTensorTempl< typename T::value_type > | assemble () const |
Private Attributes | |
std::vector< typename T::value_type > | _eigvals |
RankTwoTensorTempl< typename T::value_type > | _eigvecs |
FactorizedRankTwoTensorTempl is designed to perform the spectral decomposition of an underlying symmetric second order tensor and reuse its bases for future operations if possible.
FactorizedRankTwoTensorTempl templates on the underlying second order tensor. IMPORTANT: the underlying second order tensor must be symmetric. A check is only performed in debug mode.
Only operations that reuses the known factorization are provided. Otherwise, you will need to first retrieve the underlying RankTwoTensorTempl to perform the operation.
TODO? Although I am calling it factorization, it only really refers to eigenvalue decompositon at this point. I am not sure if in the future we need to add other types of similarity transformation.
Definition at line 17 of file FactorizedRankTwoTensor.h.
typedef T::value_type FactorizedRankTwoTensorTempl< T >::value_type |
For generic programming.
Definition at line 39 of file FactorizedRankTwoTensor.h.
|
delete |
No default constructor.
|
default |
Copy constructor.
|
inline |
Constructor if the factorization isn't known a priori.
Definition at line 48 of file FactorizedRankTwoTensor.h.
|
inline |
Definition at line 59 of file FactorizedRankTwoTensor.h.
void FactorizedRankTwoTensorTempl< T >::addIa | ( | const typename T::value_type & | a | ) |
add identity times a to _A
Definition at line 97 of file FactorizedRankTwoTensor.C.
|
inlineprivate |
Definition at line 130 of file FactorizedRankTwoTensor.h.
Referenced by FactorizedRankTwoTensorTempl< T >::get().
T::value_type FactorizedRankTwoTensorTempl< T >::det | ( | ) | const |
determinant of _A
Definition at line 112 of file FactorizedRankTwoTensor.C.
|
inline |
Definition at line 76 of file FactorizedRankTwoTensor.h.
|
inline |
Definition at line 77 of file FactorizedRankTwoTensor.h.
|
inline |
Definition at line 78 of file FactorizedRankTwoTensor.h.
|
inline |
Definition at line 79 of file FactorizedRankTwoTensor.h.
|
inline |
Definition at line 67 of file FactorizedRankTwoTensor.h.
Referenced by FactorizedRankTwoTensorTempl< T >::operator==().
Definition at line 72 of file FactorizedRankTwoTensor.h.
FactorizedRankTwoTensorTempl< T > FactorizedRankTwoTensorTempl< T >::inverse | ( | ) | const |
inverse of _A
Definition at line 89 of file FactorizedRankTwoTensor.C.
FactorizedRankTwoTensorTempl< T > FactorizedRankTwoTensorTempl< T >::operator* | ( | const T2 & | a | ) | const |
returns _A * a, also updates eigen values
Definition at line 264 of file FactorizedRankTwoTensor.h.
FactorizedRankTwoTensorTempl< T > & FactorizedRankTwoTensorTempl< T >::operator*= | ( | const typename T::value_type & | a | ) |
performs _A *= a in place, also updates eigen values
Definition at line 54 of file FactorizedRankTwoTensor.C.
FactorizedRankTwoTensorTempl< T > FactorizedRankTwoTensorTempl< T >::operator/ | ( | const T2 & | a | ) | const |
returns _A / a, also updates eigen values
Definition at line 278 of file FactorizedRankTwoTensor.h.
FactorizedRankTwoTensorTempl< T > & FactorizedRankTwoTensorTempl< T >::operator/= | ( | const typename T::value_type & | a | ) |
performs _A /= a in place, also updates eigen values
Definition at line 63 of file FactorizedRankTwoTensor.C.
FactorizedRankTwoTensorTempl< T > & FactorizedRankTwoTensorTempl< T >::operator= | ( | const FactorizedRankTwoTensorTempl< T > & | A | ) |
Definition at line 37 of file FactorizedRankTwoTensor.C.
FactorizedRankTwoTensorTempl< T > & FactorizedRankTwoTensorTempl< T >::operator= | ( | const T & | A | ) |
Definition at line 46 of file FactorizedRankTwoTensor.C.
bool FactorizedRankTwoTensorTempl< T >::operator== | ( | const T & | A | ) | const |
Defines logical equality with another second order tensor.
Definition at line 72 of file FactorizedRankTwoTensor.C.
bool FactorizedRankTwoTensorTempl< T >::operator== | ( | const FactorizedRankTwoTensorTempl< T > & | A | ) | const |
Defines logical equality with another FactorizedRankTwoTensorTempl<T>
Definition at line 80 of file FactorizedRankTwoTensor.C.
void FactorizedRankTwoTensorTempl< T >::print | ( | std::ostream & | stm = Moose::out | ) | const |
Definition at line 16 of file FactorizedRankTwoTensor.C.
FactorizedRankTwoTensorTempl< T > FactorizedRankTwoTensorTempl< T >::rotated | ( | const RankTwoTensorTempl< typename T::value_type > & | R | ) | const |
Definition at line 23 of file FactorizedRankTwoTensor.C.
T::value_type FactorizedRankTwoTensorTempl< T >::trace | ( | ) | const |
trace of _A
Definition at line 105 of file FactorizedRankTwoTensor.C.
FactorizedRankTwoTensorTempl< T > FactorizedRankTwoTensorTempl< T >::transpose | ( | ) | const |
Returns the transpose of _A.
Definition at line 30 of file FactorizedRankTwoTensor.C.
|
private |
Definition at line 139 of file FactorizedRankTwoTensor.h.
Referenced by FactorizedRankTwoTensorTempl< T >::assemble(), FactorizedRankTwoTensorTempl< T >::eigvals(), FactorizedRankTwoTensorTempl< T >::FactorizedRankTwoTensorTempl(), FactorizedRankTwoTensorTempl< T >::operator*(), FactorizedRankTwoTensorTempl< T >::operator/(), and FactorizedRankTwoTensorTempl< T >::operator=().
|
private |