23template <
typename GEO>
 
   28  using MType                             = Eigen::Matrix<double, strainSize, enhancedStrainSize>;
 
   29  using DType                             = Eigen::Matrix<double, enhancedStrainSize, enhancedStrainSize>;
 
   32  explicit H1E9(
const GEO& geometry)
 
   33      : geometry_{std::make_optional<GEO>(geometry)},
 
   39    const double xi   = quadPos[0];
 
   40    const double eta  = quadPos[1];
 
   41    const double zeta = quadPos[2];
 
   42    M(0, 0)           = 2 * xi - 1.0;
 
   43    M(1, 1)           = 2 * eta - 1.0;
 
   44    M(2, 2)           = 2 * zeta - 1.0;
 
   45    M(3, 3)           = 2 * xi - 1.0;
 
   46    M(3, 4)           = 2 * eta - 1.0;
 
   47    M(4, 5)           = 2 * xi - 1.0;
 
   48    M(4, 6)           = 2 * zeta - 1.0;
 
   49    M(5, 7)           = 2 * eta - 1.0;
 
   50    M(5, 8)           = 2 * zeta - 1.0;
 
   51    const double detJ = geometry_->integrationElement(quadPos);
 
   52    M                 = T0InverseTransformed_ / detJ * M;
 
   57  std::optional<GEO> geometry_;
 
   58  Eigen::Matrix<double, strainSize, strainSize> T0InverseTransformed_;
 
   68template <
typename GEO>
 
   73  using MType                             = Eigen::Matrix<double, strainSize, enhancedStrainSize>;
 
   74  using DType                             = Eigen::Matrix<double, enhancedStrainSize, enhancedStrainSize>;
 
   77  explicit H1E21(
const GEO& geometry)
 
   78      : geometry_{std::make_optional<GEO>(geometry)},
 
   84    const double xi   = quadPos[0];
 
   85    const double eta  = quadPos[1];
 
   86    const double zeta = quadPos[2];
 
   87    M(0, 0)           = 2 * xi - 1.0;
 
   88    M(1, 1)           = 2 * eta - 1.0;
 
   89    M(2, 2)           = 2 * zeta - 1.0;
 
   90    M(3, 3)           = 2 * xi - 1.0;
 
   91    M(3, 4)           = 2 * eta - 1.0;
 
   92    M(4, 5)           = 2 * xi - 1.0;
 
   93    M(4, 6)           = 2 * zeta - 1.0;
 
   94    M(5, 7)           = 2 * eta - 1.0;
 
   95    M(5, 8)           = 2 * zeta - 1.0;
 
   97    M(3, 9)  = (2 * xi - 1.0) * (2 * zeta - 1.0);
 
   98    M(3, 10) = (2 * eta - 1.0) * (2 * zeta - 1.0);
 
   99    M(4, 11) = (2 * xi - 1.0) * (2 * eta - 1.0);
 
  100    M(4, 12) = (2 * eta - 1.0) * (2 * zeta - 1.0);
 
  101    M(5, 13) = (2 * xi - 1.0) * (2 * eta - 1.0);
 
  102    M(5, 14) = (2 * xi - 1.0) * (2 * zeta - 1.0);
 
  104    M(0, 15) = (2 * xi - 1.0) * (2 * eta - 1.0);
 
  105    M(0, 16) = (2 * xi - 1.0) * (2 * zeta - 1.0);
 
  106    M(1, 17) = (2 * xi - 1.0) * (2 * eta - 1.0);
 
  107    M(1, 18) = (2 * eta - 1.0) * (2 * zeta - 1.0);
 
  108    M(2, 19) = (2 * xi - 1.0) * (2 * zeta - 1.0);
 
  109    M(2, 20) = (2 * eta - 1.0) * (2 * zeta - 1.0);
 
  111    const double detJ = geometry_->integrationElement(quadPos);
 
  112    M                 = T0InverseTransformed / detJ * M;
 
  117  std::optional<GEO> geometry_;
 
  118  Eigen::Matrix<double, strainSize, strainSize> T0InverseTransformed;
 
Helper for the Eigen::Tensor types.
 
Eigen::Matrix< double, 6, 6 > calcTransformationMatrix3D(const Geometry &geometry)
Calculates the 3D transformation matrix.
Definition: tensorutils.hh:369
 
Structure representing EAS for H1 with 9 enhanced strains.
Definition: eas3d.hh:25
 
H1E9(const GEO &geometry)
Definition: eas3d.hh:32
 
Eigen::Matrix< double, strainSize, enhancedStrainSize > MType
Definition: eas3d.hh:28
 
Eigen::Matrix< double, enhancedStrainSize, enhancedStrainSize > DType
Definition: eas3d.hh:29
 
static constexpr int enhancedStrainSize
Definition: eas3d.hh:27
 
auto calcM(const Dune::FieldVector< double, 3 > &quadPos) const
Definition: eas3d.hh:36
 
static constexpr int strainSize
Definition: eas3d.hh:26
 
Structure representing EAS for H1 with 21 enhanced strains.
Definition: eas3d.hh:70
 
Eigen::Matrix< double, strainSize, enhancedStrainSize > MType
Definition: eas3d.hh:73
 
H1E21(const GEO &geometry)
Definition: eas3d.hh:77
 
static constexpr int enhancedStrainSize
Definition: eas3d.hh:72
 
Eigen::Matrix< double, enhancedStrainSize, enhancedStrainSize > DType
Definition: eas3d.hh:74
 
static constexpr int strainSize
Definition: eas3d.hh:71
 
auto calcM(const Dune::FieldVector< double, 3 > &quadPos) const
Definition: eas3d.hh:81
 
Definition: utils/dirichletvalues.hh:30