|
AMREX_GPU_HOST_DEVICE | Matrix4 () |
|
const AMREX_FORCE_INLINE Scalar & | operator() (const int i, const int j, const int k, const int l) const |
|
AMREX_FORCE_INLINE Scalar & | operator() (const int i, const int j, const int k, const int l) |
|
void | Print (std::ostream &os) |
|
Set::Scalar | Norm () |
|
bool | contains_nan () const |
|
AMREX_GPU_HOST_DEVICE void | operator+= (Matrix4< 3, Sym::MajorMinor > a) |
|
AMREX_GPU_HOST_DEVICE void | operator-= (Matrix4< 3, Sym::MajorMinor > a) |
|
AMREX_GPU_HOST_DEVICE void | operator*= (Matrix4< 3, Sym::MajorMinor > a) |
|
AMREX_GPU_HOST_DEVICE void | operator/= (Matrix4< 3, Sym::MajorMinor > a) |
|
AMREX_GPU_HOST_DEVICE void | operator*= (Set::Scalar alpha) |
|
AMREX_GPU_HOST_DEVICE void | operator/= (Set::Scalar alpha) |
|
|
static Matrix4< 3, Sym::MajorMinor > | Increment () |
|
static Matrix4< 3, Sym::MajorMinor > | Randomize () |
|
static Matrix4< 3, Sym::MajorMinor > | Zero () |
|
static Matrix4< 3, Sym::MajorMinor > | Cubic (Set::Scalar C11, Set::Scalar C12, Set::Scalar C44, Eigen::Matrix3d R=Eigen::Matrix3d::Identity()) |
|
static Matrix4< 3, Sym::MajorMinor > | Cubic (Set::Scalar C11, Set::Scalar C12, Set::Scalar C44, Set::Scalar phi1, Set::Scalar Phi, Set::Scalar phi2) |
|
static Matrix4< 3, Sym::MajorMinor > | Cubic (Set::Scalar C11, Set::Scalar C12, Set::Scalar C44, Set::Quaternion q) |
|
|
bool | operator== (Matrix4< 3, Sym::MajorMinor > a, Matrix4< 3, Sym::MajorMinor > b) |
|
Matrix4< 3, Sym::MajorMinor > | operator+ (Matrix4< 3, Sym::MajorMinor > a, Matrix4< 3, Sym::MajorMinor > b) |
|
Matrix4< 3, Sym::MajorMinor > | operator- (Matrix4< 3, Sym::MajorMinor > a, Matrix4< 3, Sym::MajorMinor > b) |
|
Matrix4< 3, Sym::MajorMinor > | operator* (Matrix4< 3, Sym::MajorMinor > a, Set::Scalar b) |
|
Matrix4< 3, Sym::MajorMinor > | operator* (Set::Scalar b, Matrix4< 3, Sym::MajorMinor > a) |
|
Matrix4< 3, Sym::MajorMinor > | operator/ (Matrix4< 3, Sym::MajorMinor > a, Set::Scalar b) |
|
Set::Vector | operator* (Matrix4< 3, Sym::MajorMinor > a, Set::Matrix3 b) |
|
Eigen::Matrix< amrex::Real, 3, 3 > | operator* (Matrix4< 3, Sym::MajorMinor > a, Eigen::Matrix< amrex::Real, 3, 3 > b) |
|
Let the tensor \(\mathbb{C}\in\mathbb{R}^3\times\mathbb{R}^3\times\mathbb{R}^3\times\mathbb{R}^3\) be have major symmetry ( \(\mathbb{C}_{ijkl}=\mathbb{C}_{klij}\)) and minor symmetry ( \(\mathbb{C}_{ijkl}=\mathbb{C}_{jikl}=\mathbb{C}_{ijlk}\)) Then there are only 21 unique elements (rather than 81).
This object acts like a 4D array such that C(i,j,k,l)
returns the corresponding element, but symmetry is always obeyed. This allows the user code to be much prettier, while maintaining a relatively small object size.
Definition at line 248 of file Matrix4_MajorMinor.H.