OGS
MaterialPropertyLib::FormEigenTensor< GlobalDim > Struct Template Reference

Detailed Description

template<int GlobalDim>
struct MaterialPropertyLib::FormEigenTensor< GlobalDim >

Definition at line 20 of file FormEigenTensor.cpp.

Public Member Functions

Eigen::Matrix< double, GlobalDim, GlobalDim > operator() (double const &value) const
 
Eigen::Matrix< double, GlobalDim, GlobalDim > operator() (Eigen::Vector2d const &values) const
 
Eigen::Matrix< double, GlobalDim, GlobalDim > operator() (Eigen::Vector3d const &values) const
 
Eigen::Matrix< double, GlobalDim, GlobalDim > operator() (Eigen::Matrix< double, 2, 2 > const &values) const
 
Eigen::Matrix< double, GlobalDim, GlobalDim > operator() (Eigen::Matrix< double, 3, 3 > const &values) const
 
Eigen::Matrix< double, GlobalDim, GlobalDim > operator() (Eigen::Matrix< double, 4, 1 > const &values) const
 
Eigen::Matrix< double, GlobalDim, GlobalDim > operator() (Eigen::Matrix< double, 6, 1 > const &values) const
 
Eigen::Matrix< double, GlobalDim, GlobalDim > operator() (Eigen::MatrixXd const &values) const
 

Member Function Documentation

◆ operator()() [1/8]

template<int GlobalDim>
Eigen::Matrix< double, GlobalDim, GlobalDim > MaterialPropertyLib::FormEigenTensor< GlobalDim >::operator() ( double const & value) const
inline

Definition at line 22 of file FormEigenTensor.cpp.

24 {
25 return Eigen::Matrix<double, GlobalDim, GlobalDim>::Identity() * value;
26 }

◆ operator()() [2/8]

template<int GlobalDim>
Eigen::Matrix< double, GlobalDim, GlobalDim > MaterialPropertyLib::FormEigenTensor< GlobalDim >::operator() ( Eigen::Matrix< double, 2, 2 > const & values) const
inline

Definition at line 54 of file FormEigenTensor.cpp.

56 {
57 if constexpr (GlobalDim == 2)
58 {
59 return values;
60 }
62 "Cannot convert a 2d tensor with values [{}] to {:d}x{:d} matrix",
63 values, GlobalDim, GlobalDim);
64 }
#define OGS_FATAL(...)
Definition Error.h:26

References OGS_FATAL.

◆ operator()() [3/8]

template<int GlobalDim>
Eigen::Matrix< double, GlobalDim, GlobalDim > MaterialPropertyLib::FormEigenTensor< GlobalDim >::operator() ( Eigen::Matrix< double, 3, 3 > const & values) const
inline

Definition at line 65 of file FormEigenTensor.cpp.

67 {
68 if constexpr (GlobalDim == 3)
69 {
70 return values;
71 }
73 "Cannot convert a 3d tensor with values [{}] to {:d}x{:d} matrix",
74 values, GlobalDim, GlobalDim);
75 }

References OGS_FATAL.

◆ operator()() [4/8]

template<int GlobalDim>
Eigen::Matrix< double, GlobalDim, GlobalDim > MaterialPropertyLib::FormEigenTensor< GlobalDim >::operator() ( Eigen::Matrix< double, 4, 1 > const & values) const
inline

Definition at line 77 of file FormEigenTensor.cpp.

79 {
80 Eigen::Matrix<double, GlobalDim, GlobalDim> result;
81 if constexpr (GlobalDim == 2)
82 { // skip the z-direction in this case
83 result << values[0], values[3], values[3], values[1];
84 }
85 if constexpr (GlobalDim == 3)
86 {
87 result << values[0], values[3], 0, values[3], values[1], 0, 0, 0,
88 values[2];
89 }
90 return result;
91 }

◆ operator()() [5/8]

template<int GlobalDim>
Eigen::Matrix< double, GlobalDim, GlobalDim > MaterialPropertyLib::FormEigenTensor< GlobalDim >::operator() ( Eigen::Matrix< double, 6, 1 > const & values) const
inline

Definition at line 93 of file FormEigenTensor.cpp.

95 {
96 if constexpr (GlobalDim == 3)
97 {
98 Eigen::Matrix<double, GlobalDim, GlobalDim> result;
99 result << values[0], values[3], values[5], values[3], values[1],
100 values[4], values[5], values[4], values[2];
101 return result;
102 }
103
104 OGS_FATAL(
105 "Cannot convert a symmetric 3d tensor with values [{}] to a {}x{} "
106 "matrix",
107 values, GlobalDim, GlobalDim);
108 }

References OGS_FATAL.

◆ operator()() [6/8]

template<int GlobalDim>
Eigen::Matrix< double, GlobalDim, GlobalDim > MaterialPropertyLib::FormEigenTensor< GlobalDim >::operator() ( Eigen::MatrixXd const & values) const
inline

Definition at line 110 of file FormEigenTensor.cpp.

112 {
113 if (GlobalDim == values.rows() && GlobalDim == values.cols())
114 {
115 return values;
116 }
117
118 OGS_FATAL(
119 "Cannot convert a dynamic {}x{} matrix with values [{}] to a {}x{} "
120 "matrix",
121 values.rows(), values.cols(), values, GlobalDim, GlobalDim);
122 }

References OGS_FATAL.

◆ operator()() [7/8]

template<int GlobalDim>
Eigen::Matrix< double, GlobalDim, GlobalDim > MaterialPropertyLib::FormEigenTensor< GlobalDim >::operator() ( Eigen::Vector2d const & values) const
inline

Definition at line 28 of file FormEigenTensor.cpp.

30 {
31 if constexpr (GlobalDim == 2)
32 {
33 return values.asDiagonal();
34 }
36 "Cannot convert 2d vector with values [{}] to {:d}x{:d} diagonal "
37 "matrix.",
38 values, GlobalDim, GlobalDim);
39 }

References OGS_FATAL.

◆ operator()() [8/8]

template<int GlobalDim>
Eigen::Matrix< double, GlobalDim, GlobalDim > MaterialPropertyLib::FormEigenTensor< GlobalDim >::operator() ( Eigen::Vector3d const & values) const
inline

Definition at line 41 of file FormEigenTensor.cpp.

43 {
44 if constexpr (GlobalDim == 3)
45 {
46 return values.asDiagonal();
47 }
49 "Cannot convert 3d vector with values [{}] to {:d}x{:d} diagonal "
50 "matrix.",
51 values, GlobalDim, GlobalDim);
52 }

References OGS_FATAL.


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