13#ifndef HERMITE_INTERPOLATION_BASE
14#define HERMITE_INTERPOLATION_BASE
17#include <dune/common/fvector.hh>
29 template<
class Scalar_,
int dimension>
34 static int const dim = dimension;
46 template <
class ShapeFunctionSet>
50 for(
int sfId=0; sfId<shapeFunctionSet.
size(); ++sfId) result +=
values[sfId] * shapeFunctionSet[sfId].evaluateFunction( x )[0] *
directions[sfId];
56 explicit HIPBase(
int numberOfShapeFunctions)
58 values = std::vector<Scalar>(numberOfShapeFunctions);
84 template<
class Scalar,
class Gr
idView,
class InterpolationPolicy,
int dimension>
class HIPImpl;
Base class for hermite interpolation.
std::vector< Vector > directions
void insertEntry(Scalar const value, Vector const &dir, int const id)
Store value and direction associated with the id's shape function.
Dune::FieldVector< Scalar, dim > Vector
std::vector< Scalar > values
HIPBase(int numberOfShapeFunctions)
Constructor.
Vector evaluate(Vector const &x, ShapeFunctionSet const &shapeFunctionSet) const
Evaluate interpolation polynomial at position x (in local coordinates).
Implementation of interpolation polynomials from given vertex and/or edge directions ("normals").
A set of shape functions.
virtual int size() const
Number of shape functions in the set.