OGS
MaterialPropertyLib::FormEigenTensor< GlobalDim > Struct Template Reference

Detailed Description

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

Definition at line 16 of file FormEigenTensor.h.

#include <FormEigenTensor.h>

Public Member Functions

constexpr Eigen::Matrix< double, GlobalDim, GlobalDim > operator() (double const &value) const
template<int Dim = GlobalDim>
constexpr std::enable_if_t< Dim==2, Eigen::Matrix< double, 2, 2 > > operator() (Eigen::Vector2d const &values) const
template<int Dim = GlobalDim>
constexpr std::enable_if_t< Dim !=2, Eigen::Matrix< double, GlobalDim, GlobalDim > > operator() (Eigen::Vector2d const &values) const
template<int Dim = GlobalDim>
constexpr std::enable_if_t< Dim==3, Eigen::Matrix< double, 3, 3 > > operator() (Eigen::Vector3d const &values) const
template<int Dim = GlobalDim>
constexpr std::enable_if_t< Dim !=3, Eigen::Matrix< double, GlobalDim, GlobalDim > > operator() (Eigen::Vector3d const &values) const
template<int Dim = GlobalDim>
constexpr std::enable_if_t< Dim==2, Eigen::Matrix< double, 2, 2 > > operator() (Eigen::Matrix< double, 2, 2 > const &values) const
template<int Dim = GlobalDim>
constexpr std::enable_if_t< Dim !=2, Eigen::Matrix< double, GlobalDim, GlobalDim > > operator() (Eigen::Matrix< double, 2, 2 > const &values) const
template<int Dim = GlobalDim>
constexpr std::enable_if_t< Dim==3, Eigen::Matrix< double, 3, 3 > > operator() (Eigen::Matrix< double, 3, 3 > const &values) const
template<int Dim = GlobalDim>
constexpr std::enable_if_t< Dim !=3, Eigen::Matrix< double, GlobalDim, GlobalDim > > operator() (Eigen::Matrix< double, 3, 3 > const &values) const
constexpr Eigen::Matrix< double, GlobalDim, GlobalDim > operator() (Eigen::Matrix< double, 4, 1 > const &values) const
template<int Dim = GlobalDim>
constexpr std::enable_if_t< Dim==3, Eigen::Matrix< double, 3, 3 > > operator() (Eigen::Matrix< double, 6, 1 > const &values) const
template<int Dim = GlobalDim>
constexpr std::enable_if_t< Dim !=3, 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/13]

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

◆ operator()() [2/13]

template<int GlobalDim>
template<int Dim = GlobalDim>
std::enable_if_t< Dim==2, Eigen::Matrix< double, 2, 2 > > MaterialPropertyLib::FormEigenTensor< GlobalDim >::operator() ( Eigen::Matrix< double, 2, 2 > const & values) const
inlineconstexpr

Definition at line 67 of file FormEigenTensor.h.

68 {
69 return values;
70 }

◆ operator()() [3/13]

template<int GlobalDim>
template<int Dim = GlobalDim>
std::enable_if_t< Dim !=2, Eigen::Matrix< double, GlobalDim, GlobalDim > > MaterialPropertyLib::FormEigenTensor< GlobalDim >::operator() ( Eigen::Matrix< double, 2, 2 > const & values) const
inlineconstexpr

Definition at line 76 of file FormEigenTensor.h.

77 {
79 "Cannot convert a 2d tensor with values [{}] to {:d}x{:d} matrix",
81 }
#define OGS_FATAL(...)
Definition Error.h:19

References OGS_FATAL.

◆ operator()() [4/13]

template<int GlobalDim>
template<int Dim = GlobalDim>
std::enable_if_t< Dim==3, Eigen::Matrix< double, 3, 3 > > MaterialPropertyLib::FormEigenTensor< GlobalDim >::operator() ( Eigen::Matrix< double, 3, 3 > const & values) const
inlineconstexpr

Definition at line 86 of file FormEigenTensor.h.

87 {
88 return values;
89 }

◆ operator()() [5/13]

template<int GlobalDim>
template<int Dim = GlobalDim>
std::enable_if_t< Dim !=3, Eigen::Matrix< double, GlobalDim, GlobalDim > > MaterialPropertyLib::FormEigenTensor< GlobalDim >::operator() ( Eigen::Matrix< double, 3, 3 > const & values) const
inlineconstexpr

Definition at line 95 of file FormEigenTensor.h.

96 {
98 "Cannot convert a 3d tensor with values [{}] to {:d}x{:d} matrix",
100 }

References OGS_FATAL.

◆ operator()() [6/13]

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

Definition at line 102 of file FormEigenTensor.h.

104 {
105 if constexpr (GlobalDim == 2)
106 { // skip the z-direction in this case
108 result << values[0], values[3], values[3], values[1];
109 return result;
110 }
111 else if constexpr (GlobalDim == 3)
112 {
114 result << values[0], values[3], 0, values[3], values[1], 0, 0, 0,
115 values[2];
116 return result;
117 }
118 // For other dimensions, we need to provide a fallback to avoid missing
119 // return warning
120 OGS_FATAL("Cannot convert 4d vector to {:d}x{:d} matrix", GlobalDim,
121 GlobalDim);
122 }

References OGS_FATAL.

◆ operator()() [7/13]

template<int GlobalDim>
template<int Dim = GlobalDim>
std::enable_if_t< Dim==3, Eigen::Matrix< double, 3, 3 > > MaterialPropertyLib::FormEigenTensor< GlobalDim >::operator() ( Eigen::Matrix< double, 6, 1 > const & values) const
inlineconstexpr

Definition at line 127 of file FormEigenTensor.h.

128 {
130 result << values[0], values[3], values[5], values[3], values[1],
131 values[4], values[5], values[4], values[2];
132 return result;
133 }

◆ operator()() [8/13]

template<int GlobalDim>
template<int Dim = GlobalDim>
std::enable_if_t< Dim !=3, Eigen::Matrix< double, GlobalDim, GlobalDim > > MaterialPropertyLib::FormEigenTensor< GlobalDim >::operator() ( Eigen::Matrix< double, 6, 1 > const & values) const
inlineconstexpr

Definition at line 139 of file FormEigenTensor.h.

140 {
141 OGS_FATAL(
142 "Cannot convert a symmetric 3d tensor with values [{}] to a {}x{} "
143 "matrix",
145 }

References OGS_FATAL.

◆ operator()() [9/13]

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

Definition at line 147 of file FormEigenTensor.h.

149 {
150 if (GlobalDim == values.rows() && GlobalDim == values.cols())
151 {
152 return values;
153 }
154
155 OGS_FATAL(
156 "Cannot convert a dynamic {}x{} matrix with values [{}] to a {}x{} "
157 "matrix",
158 values.rows(), values.cols(), values, GlobalDim, GlobalDim);
159 }

References OGS_FATAL.

◆ operator()() [10/13]

template<int GlobalDim>
template<int Dim = GlobalDim>
std::enable_if_t< Dim==2, Eigen::Matrix< double, 2, 2 > > MaterialPropertyLib::FormEigenTensor< GlobalDim >::operator() ( Eigen::Vector2d const & values) const
inlineconstexpr

Definition at line 27 of file FormEigenTensor.h.

28 {
29 return values.asDiagonal();
30 }

◆ operator()() [11/13]

template<int GlobalDim>
template<int Dim = GlobalDim>
std::enable_if_t< Dim !=2, Eigen::Matrix< double, GlobalDim, GlobalDim > > MaterialPropertyLib::FormEigenTensor< GlobalDim >::operator() ( Eigen::Vector2d const & values) const
inlineconstexpr

Definition at line 36 of file FormEigenTensor.h.

37 {
39 "Cannot convert 2d vector with values [{}] to {:d}x{:d} diagonal "
40 "matrix.",
42 }

References OGS_FATAL.

◆ operator()() [12/13]

template<int GlobalDim>
template<int Dim = GlobalDim>
std::enable_if_t< Dim==3, Eigen::Matrix< double, 3, 3 > > MaterialPropertyLib::FormEigenTensor< GlobalDim >::operator() ( Eigen::Vector3d const & values) const
inlineconstexpr

Definition at line 47 of file FormEigenTensor.h.

48 {
49 return values.asDiagonal();
50 }

◆ operator()() [13/13]

template<int GlobalDim>
template<int Dim = GlobalDim>
std::enable_if_t< Dim !=3, Eigen::Matrix< double, GlobalDim, GlobalDim > > MaterialPropertyLib::FormEigenTensor< GlobalDim >::operator() ( Eigen::Vector3d const & values) const
inlineconstexpr

Definition at line 56 of file FormEigenTensor.h.

57 {
59 "Cannot convert 3d vector with values [{}] to {:d}x{:d} diagonal "
60 "matrix.",
62 }

References OGS_FATAL.


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