24template <
typename GEO,
int ess>
27 static constexpr int myDim = GEO::mydimension;
30 using MType = Eigen::Matrix<double, strainSize, enhancedStrainSize>;
31 using DType = Eigen::Matrix<double, enhancedStrainSize, enhancedStrainSize>;
33 using HType = std::array<AnsatzType, enhancedStrainSize>;
41 const auto&
geometry()
const {
return this->geometry_.value(); };
48template <
typename GEO>
61 explicit H0(
const GEO& geo)
75template <
typename GEO>
88 explicit H4(
const GEO& geo)
92 const double xi = quadPos[0];
93 const double eta = quadPos[1];
94 const double xi_t = 2 * xi - 1.0;
95 const double eta_t = 2 * eta - 1.0;
98 std::ranges::fill(H, AnsatzType::Zero());
106 Impl::transformDisplacementGradient(this->
geometry(), HMat, quadPos);
120template <
typename GEO>
133 explicit H9(
const GEO& geo)
137 const double xi = quadPos[0];
138 const double eta = quadPos[1];
139 const double zeta = quadPos[2];
140 const double xi_t = 2 * xi - 1.0;
141 const double eta_t = 2 * eta - 1.0;
142 const double zeta_t = 2 * zeta - 1.0;
145 std::ranges::fill(H, AnsatzType::Zero());
158 Impl::transformDisplacementGradient(this->
geometry(), HMat, quadPos);
Helper for the Eigen::Tensor types.
Definition of the certain helper functions used to transform strain measures.
Definition: easfunctions/displacementgradient.hh:21
Interface for displacement-based EAS elements, where displacement gradient is enhanced.
Definition: easvariants/displacementgradient.hh:26
static constexpr int myDim
Definition: easvariants/displacementgradient.hh:27
std::array< AnsatzType, enhancedStrainSize > HType
Definition: easvariants/displacementgradient.hh:33
const auto & geometry() const
Definition: easvariants/displacementgradient.hh:41
Eigen::Matrix< double, myDim, myDim > AnsatzType
Definition: easvariants/displacementgradient.hh:32
std::optional< GEO > geometry_
Definition: easvariants/displacementgradient.hh:40
Eigen::Matrix< double, enhancedStrainSize, enhancedStrainSize > DType
Definition: easvariants/displacementgradient.hh:31
static constexpr int enhancedStrainSize
Definition: easvariants/displacementgradient.hh:29
Eigen::Matrix< double, strainSize, enhancedStrainSize > MType
Definition: easvariants/displacementgradient.hh:30
HX(const GEO &geometry)
Definition: easvariants/displacementgradient.hh:36
static constexpr int strainSize
Definition: easvariants/displacementgradient.hh:28
Dummy struct for displacement-based EAS elements, i.e. 0 enhanced modes, where displacement gradient ...
Definition: easvariants/displacementgradient.hh:50
typename Base::DType DType
Definition: easvariants/displacementgradient.hh:56
static constexpr int myDim
Definition: easvariants/displacementgradient.hh:52
HType operator()(const Dune::FieldVector< double, myDim > &) const
Definition: easvariants/displacementgradient.hh:64
static constexpr int strainSize
Definition: easvariants/displacementgradient.hh:53
typename Base::HType HType
Definition: easvariants/displacementgradient.hh:58
H0(const GEO &geo)
Definition: easvariants/displacementgradient.hh:61
typename Base::AnsatzType AnsatzType
Definition: easvariants/displacementgradient.hh:57
static constexpr int enhancedStrainSize
Definition: easvariants/displacementgradient.hh:54
typename Base::MType MType
Definition: easvariants/displacementgradient.hh:55
H4 struct for EAS with 4 enhanced modes.
Definition: easvariants/displacementgradient.hh:77
static constexpr int enhancedStrainSize
Definition: easvariants/displacementgradient.hh:81
static constexpr int strainSize
Definition: easvariants/displacementgradient.hh:80
static constexpr int myDim
Definition: easvariants/displacementgradient.hh:79
H4(const GEO &geo)
Definition: easvariants/displacementgradient.hh:88
typename Base::DType DType
Definition: easvariants/displacementgradient.hh:83
typename Base::AnsatzType AnsatzType
Definition: easvariants/displacementgradient.hh:84
typename Base::MType MType
Definition: easvariants/displacementgradient.hh:82
HType operator()(const Dune::FieldVector< double, myDim > &quadPos) const
Definition: easvariants/displacementgradient.hh:91
typename Base::HType HType
Definition: easvariants/displacementgradient.hh:85
H9 struct for EAS with 9 enhanced modes.
Definition: easvariants/displacementgradient.hh:122
typename Base::AnsatzType AnsatzType
Definition: easvariants/displacementgradient.hh:129
HType operator()(const Dune::FieldVector< double, myDim > &quadPos) const
Definition: easvariants/displacementgradient.hh:136
H9(const GEO &geo)
Definition: easvariants/displacementgradient.hh:133
static constexpr int strainSize
Definition: easvariants/displacementgradient.hh:125
typename Base::HType HType
Definition: easvariants/displacementgradient.hh:130
static constexpr int myDim
Definition: easvariants/displacementgradient.hh:124
typename Base::DType DType
Definition: easvariants/displacementgradient.hh:128
static constexpr int enhancedStrainSize
Definition: easvariants/displacementgradient.hh:126
typename Base::MType MType
Definition: easvariants/displacementgradient.hh:127
Definition: utils/dirichletvalues.hh:32