13#include <dune/localfefunctions/eigenDuneTransformations.hh>
17namespace Ikarus::EAS::Impl {
18template <
typename GEO>
19auto transformationMatrixAtCenterWithDetJ(
const GEO& geometry) {
20 const auto& referenceElement = Dune::ReferenceElements<double, GEO::mydimension>::general(geometry.type());
21 const auto quadPos0 = referenceElement.position(0, 0);
22 const auto detJ0 = geometry.integrationElement(quadPos0);
27template <
typename GEO>
28void transformDisplacementGradient(
const GEO& geometry, Eigen::Matrix<double, GEO::mydimension, GEO::mydimension>& H,
30 const auto& referenceElement = Dune::ReferenceElements<double, GEO::mydimension>::general(geometry.type());
31 const auto quadPos0 = referenceElement.position(0, 0);
32 const auto detJ0 = geometry.integrationElement(quadPos0);
33 const auto detJ = geometry.integrationElement(quadPos);
34 const auto JInv = Dune::toEigen(geometry.jacobianInverseTransposed(quadPos0)).eval();
35 H = ((detJ0 / detJ) * JInv * H * JInv.transpose()).eval();
Helper for the Eigen::Tensor types.
Eigen::Matrix3d transformationMatrix(const GEO &geometry, const Dune::FieldVector< double, 2 > &pos)
Calculates the 2D transformation matrix.
Definition: tensorutils.hh:394
Definition: utils/dirichletvalues.hh:32