NuTo
Numerics Tool
InterpolationSimple.h
Go to the documentation of this file.
1 #pragma once
2 #include <Eigen/Core>
4 #include <memory>
6 
7 namespace NuTo
8 {
9 
10 
13 {
14 public:
15  virtual ~InterpolationSimple() = default; // virtual destructor needed, rule of 5 below...
16 
17  virtual std::unique_ptr<InterpolationSimple> Clone() const = 0;
18 
22  virtual Eigen::VectorXd GetShapeFunctions(const NaturalCoords& naturalIpCoords) const = 0;
23 
28  virtual Eigen::MatrixXd GetDerivativeShapeFunctions(const NaturalCoords& naturalIpCoords) const = 0;
29 
33  virtual NaturalCoords GetLocalCoords(int nodeId) const = 0;
34 
37  virtual int GetNumNodes() const = 0;
38 
39  virtual const Shape& GetShape() const = 0;
40 };
41 
46 {
47  return interpolation.Clone().release();
48 }
49 
50 } /* NuTo */
virtual NaturalCoords GetLocalCoords(int nodeId) const =0
returns the local node coordinates
virtual int GetNumNodes() const =0
returns the number of nodes
virtual const Shape & GetShape() const =0
virtual ~InterpolationSimple()=default
virtual std::unique_ptr< InterpolationSimple > Clone() const =0
virtual Eigen::VectorXd GetShapeFunctions(const NaturalCoords &naturalIpCoords) const =0
calculates the shape functions
Base class for the interpolation. The derived classes provide information about the actual interpolat...
Definition: InterpolationSimple.h:12
virtual Eigen::MatrixXd GetDerivativeShapeFunctions(const NaturalCoords &naturalIpCoords) const =0
calculates the derivative shape functions
NuTo::InterpolationSimple * new_clone(const NuTo::InterpolationSimple &interpolation)
clone methods that enables a boost::ptr_container<this> to copy itself
Definition: InterpolationSimple.h:45
Definition: Shape.h:20
Definition: Exception.h:6