11 template <
int TDimParameter>
17 , mNurbsGeometry(NurbsGeometry)
25 std::array<Eigen::Vector2d, TDimParameter> knots = NurbsGeometry().GetKnotVectorElement(mKnotIDs);
26 for (
int i = 0; i < TDimParameter; i++)
28 coordinateTransformed[i] = (knots[i](0) + 0.5 * (ipCoords(i) + 1) * (knots[i](1) - knots[i](0)));
30 return coordinateTransformed;
37 return NurbsGeometry().GetControlPointsElement(mKnotIDs, instance);
47 return NurbsGeometry().BasisFunctionsAndDerivativesRational(0,
Transformation(ipCoords));
52 return NurbsGeometry().BasisFunctionsAndDerivativesRational(1,
Transformation(ipCoords));
57 return NurbsGeometry().GetDimension();
62 throw NuTo::Exception(__PRETTY_FUNCTION__,
"I honestly have no idea. Sorry.");
67 return NurbsGeometry().GetNumControlPointsElement();
73 return mNurbsGeometry;
76 std::array<int, TDimParameter> mKnotIDs;
77 std::reference_wrapper<const Nurbs<TDimParameter>> mNurbsGeometry;
Eigen::VectorXd GetShapeFunctions(NaturalCoords ipCoords) const override
Definition: ElementIga.h:45
Base class for all exceptions thrown in NuTo.
Definition: Exception.h:9
int GetNumNodes() const override
Definition: ElementIga.h:65
Class for NURBS curves, with IGA specific functions. NURBS specific algorithms taken from Piegl...
Definition: Nurbs.h:18
Definition: ElementInterface.h:8
Eigen::MatrixXd GetNMatrix(NaturalCoords ipCoords) const override
Definition: ElementIga.h:40
ElementIga(const std::array< int, TDimParameter > &knotIDs, const Nurbs< TDimParameter > &NurbsGeometry)
Definition: ElementIga.h:15
virtual Eigen::VectorXd ExtractNodeValues(int instance=0) const override
extracts all node values of this element
Definition: ElementIga.h:35
int GetDofDimension() const override
Definition: ElementIga.h:55
Definition: ElementIga.h:12
Definition: Exception.h:6
Definition: SerializeStreamOut.h:9
Eigen::MatrixXd GetDerivativeShapeFunctions(NaturalCoords ipCoords) const override
Definition: ElementIga.h:50
Eigen::VectorXi GetDofNumbering() const override
extract the dof numbers from its nodes.
Definition: ElementIga.h:60
Eigen::MatrixXd N(const Eigen::VectorXd &shapeFunctions, int numNodes, int dim)
Definition: Matrix.h:8
Eigen::Matrix< double, TDimParameter, 1 > Transformation(Eigen::VectorXd ipCoords) const
transforms unit interval [-1, 1] to the interval [firstKnotCoordinate, secondKnotCoordinate] ...
Definition: ElementIga.h:22