21template <
typename ShapeFunction>
24 static constexpr int Dim = ShapeFunction::DIM;
29 Eigen::Matrix<double, Dim, Dim, Eigen::RowMajor>;
48 auto const& dNdr =
sm_.dNdr;
50 for (
int comp = 0; comp <
Dim; ++comp)
74 Eigen::Matrix<double, Dim, ShapeFunction::NPOINTS, Eigen::RowMajor>;
82 constexpr auto GlobalDim =
Dim;
83 fe.template computeShapeFunctions<NumLib::ShapeMatrixType::N_J>(
84 r_.data(),
sm_, GlobalDim,
false);
91 for (std::size_t n = 0; n < ShapeFunction::NPOINTS; ++n)
93 node_coords.col(n) = Eigen::Map<const Eigen::Vector<double, Dim>>(
102 return LocalResidualVector::Constant(0.5);
EigenFixedShapeMatrixPolicy< ShapeFunction, GlobalDim > ShapeMatrixPolicyType
static constexpr LocalResidualVector initialGuess()
ShapeMatrixPolicyType< ShapeFunction, Dim > ShapeMatricesType
Eigen::Matrix< double, Dim, Dim, Eigen::RowMajor > LocalJacobianMatrix
void updateJacobian(LocalJacobianMatrix &J) const
static NodeCoordsMatrix getNodeCoords(MeshLib::Element const &e)
NodeCoordsMatrix const node_coords_
Eigen::Matrix< double, Dim, 1 > LocalResidualVector
Eigen::Matrix< double, Dim, ShapeFunction::NPOINTS, Eigen::RowMajor > NodeCoordsMatrix
void updateResidual(LocalResidualVector &res) const
void updateSolution(LocalResidualVector const &delta_r)
ShapeMatricesType::ShapeMatrices sm_
LocalResidualVector const & getNaturalCoordinates() const
MeshLib::Element const & e_
LocalResidualVector const x_expected_
ComputeNaturalCoordsRootFindingProblem(MeshLib::Element const &e, LocalResidualVector const &x_expected)
virtual const Node * getNode(unsigned idx) const =0
NumLib::TemplateIsoparametric< ShapeFunction, ShapeMatricesType > createIsoparametricFiniteElement(MeshLib::Element const &e)
NumLib::ShapeMatrices< NodalRowVectorType, DimNodalMatrixType, DimMatrixType, GlobalDimNodalMatrixType > ShapeMatrices