1#ifndef DUNE_FEM_SPACE_LAGRANGE_INTERPOLATION_HH
2#define DUNE_FEM_SPACE_LAGRANGE_INTERPOLATION_HH
8#include "lagrangepoints.hh"
19 template<
class Gr
idPart,
int maxOrder,
class BasisFunctionSet >
20 class LagrangeLocalInterpolation
22 typedef LagrangeLocalInterpolation< GridPart, maxOrder, BasisFunctionSet > ThisType;
26 typedef BasisFunctionSet BasisFunctionSetType;
28 typedef LagrangePointSet< GridPart, maxOrder > LagrangePointSetType;
38 LagrangeLocalInterpolation ()
39 : pointSet_( nullptr )
44 LagrangeLocalInterpolation (
const LagrangePointSetType &pointSet,
45 const BasisFunctionSetType &basisFunctionSet )
46 : pointSet_( &pointSet ),
47 basisFunctionSet_( basisFunctionSet )
50 LagrangeLocalInterpolation (
const LagrangePointSetType &pointSet,
51 BasisFunctionSetType &&basisFunctionSet )
52 : pointSet_( &pointSet ),
53 basisFunctionSet_(
std::forward< BasisFunctionSetType >( basisFunctionSet ) )
63 LagrangeLocalInterpolation (
const ThisType & ) =
default;
66 LagrangeLocalInterpolation ( ThisType &&other )
67 : pointSet_(
std::move( other.pointSet_ ) ),
68 basisFunctionSet_(
std::move( other.basisFunctionSet_ ) )
72 LagrangeLocalInterpolation &operator= (
const ThisType & ) =
default;
75 LagrangeLocalInterpolation &operator= ( ThisType &&other )
77 pointSet_ = other.pointSet_ ;
78 basisFunctionSet_ = std::move( other.basisFunctionSet_ );
89 BasisFunctionSetType basisFunctionSet ()
const
91 return basisFunctionSet_;
95 template<
class LocalFunction,
class LocalDofVector >
96 void operator() (
const LocalFunction &localFunction, LocalDofVector &localDofVector )
const
98 apply( localFunction, localDofVector );
102 template<
class LocalFunction,
class LocalDofVector >
103 void apply (
const LocalFunction &localFunction, LocalDofVector &localDofVector )
const
105 const LagrangePointSetType &pointSet = this->pointSet();
108 const std::size_t nop = pointSet.nop();
109 for( std::size_t pt = 0; pt < nop; ++pt )
112 localFunction.evaluate( pointSet[ pt ], phi );
114 localDofVector[ k++ ] = phi[ i ];
127 const LagrangePointSetType &pointSet ()
const
133 const LagrangePointSetType* pointSet_ =
nullptr;
134 BasisFunctionSetType basisFunctionSet_;
FunctionSpace< typename Entity::Geometry::ctype, typename Range::value_type, Entity::Geometry::coorddimension, Range::dimension > FunctionSpaceType
function space type
Definition: basisfunctionset.hh:40
FunctionSpaceTraits::RangeType RangeType
Type of range vector (using type of range field) has a Dune::FieldVector type interface.
Definition: functionspaceinterface.hh:71
@ dimRange
dimension of range vector space
Definition: functionspaceinterface.hh:48
A vector valued function space.
Definition: functionspace.hh:60
Dune namespace.
Definition: alignedallocator.hh:13