NuTo
Numerics Tool
ElementInterface.h
Go to the documentation of this file.
1 #pragma once
2 #include <eigen3/Eigen/Core>
4 
5 namespace NuTo
6 {
7 
9 {
10 public:
11  virtual ~ElementInterface() noexcept = default;
12 
18  virtual Eigen::VectorXd ExtractNodeValues(int instance = 0) const = 0;
19 
20  virtual int GetDofDimension() const = 0;
21 
24  virtual Eigen::VectorXi GetDofNumbering() const = 0;
25  virtual int GetNumNodes() const = 0;
26  virtual Eigen::MatrixXd GetNMatrix(NaturalCoords ipCoords) const = 0;
27  virtual Eigen::VectorXd GetShapeFunctions(NaturalCoords ipCoords) const = 0;
28  virtual Eigen::MatrixXd GetDerivativeShapeFunctions(NaturalCoords ipCoords) const = 0;
29 };
30 
31 inline Eigen::VectorXd Interpolate(const ElementInterface& element, NaturalCoords ipCoords)
32 {
33  return element.GetNMatrix(ipCoords) * element.ExtractNodeValues();
34 }
35 
36 
37 } /* NuTo */
virtual int GetNumNodes() const =0
Eigen::VectorXd Interpolate(const ElementInterface &element, NaturalCoords ipCoords)
Definition: ElementInterface.h:31
element
Definition: DamageBar.py:31
Definition: ElementInterface.h:8
virtual Eigen::MatrixXd GetNMatrix(NaturalCoords ipCoords) const =0
virtual Eigen::VectorXi GetDofNumbering() const =0
extract the dof numbers from its nodes.
virtual int GetDofDimension() const =0
virtual Eigen::MatrixXd GetDerivativeShapeFunctions(NaturalCoords ipCoords) const =0
virtual Eigen::VectorXd ExtractNodeValues(int instance=0) const =0
extracts all node values of this element
virtual ~ElementInterface() noexcept=default
virtual Eigen::VectorXd GetShapeFunctions(NaturalCoords ipCoords) const =0
Definition: Exception.h:6