1 #ifndef DUNE_FEM_FUNCTION_LOCALFUNCTION_AVERAGE_HH
2 #define DUNE_FEM_FUNCTION_LOCALFUNCTION_AVERAGE_HH
19 template<
class LocalFunction,
class Gr
idPart >
29 template<
class LocalFunction,
class Quadrature >
31 const typename LocalFunction::EntityType::Geometry &geometry,
36 typedef typename RangeType::value_type RangeFieldType;
38 value = RangeType( 0 );
39 RangeFieldType volume( 0 );
40 const int nop = quadrature.
nop();
41 for(
int qp = 0; qp < nop; ++qp )
44 localFunction.
evaluate( quadrature[ qp ], tmp );
45 RangeFieldType weight = quadrature.
weight( qp )*geometry.integrationElement( quadrature.
point( qp ) );
47 value.axpy( weight, tmp );
58 template<
class LocalFunction,
class Gr
idPart,
class DiscreteFunctionSpace >
65 const EntityType &entity = localFunction.
entity();
69 QuadratureType quadrature( entity, localFunction.
order() );
79 template<
class LocalFunction,
class Gr
idPart,
class FunctionSpace,
int order,
template<
class >
class Storage >
88 for(
int i = 0; i < dimRange; ++i )
89 average[ i ] = localFunction[ i ];
99 return applyAffine( localFunction, average );
103 const EntityType &entity = localFunction.
entity();
104 const typename EntityType::Geometry geometry = entity.geometry();
106 if( geometry.affine() )
107 return applyAffine( localFunction, average );
111 QuadratureType quadrature( entity, localFunction.
order() );
121 template<
class LocalFunction,
class Gr
idPart,
class FunctionSpace,
int codim,
template<
class >
class Storage >
136 template<
class LocalFunction,
class Gr
idPart >
Definition: bindguard.hh:11
static double sqrt(const Double &v)
Definition: double.hh:887
Definition: average.hh:138
static void apply(const LocalFunction &localFunction, typename LocalFunction::RangeType &average)
Definition: average.hh:143
void operator()(const LocalFunction &localFunction, typename LocalFunction::RangeType &average) const
Definition: average.hh:148
Definition: average.hh:28
static void applyQuadrature(const LocalFunction &localFunction, const typename LocalFunction::EntityType::Geometry &geometry, const Quadrature &quadrature, typename LocalFunction::RangeType &value)
Definition: average.hh:30
Definition: average.hh:60
static void apply(const LocalFunction &localFunction, typename LocalFunction::RangeType &average)
Definition: average.hh:61
static void apply(const LocalFunction &localFunction, typename LocalFunction::RangeType &average)
Definition: average.hh:96
static void apply(const LocalFunction &localFunction, typename LocalFunction::RangeType &average)
Definition: average.hh:125
interface for local functions
Definition: localfunction.hh:44
void evaluate(const PointType &x, RangeType &ret) const
evaluate the local function
Definition: localfunction.hh:307
FunctionSpaceType::DomainType DomainType
type of domain vectors, i.e., type of coordinates
Definition: localfunction.hh:71
const EntityType & entity() const
obtain the entity, this local function lives on
Definition: localfunction.hh:292
FunctionSpaceType::RangeType RangeType
type of range vectors, i.e., type of function values
Definition: localfunction.hh:73
const BasisFunctionSetType & basisFunctionSet() const
obtain the basis function set for this local function
Definition: localfunction.hh:286
static const int dimRange
dimension of the range
Definition: localfunction.hh:85
int order() const
obtain the order of this local function
Definition: localfunction.hh:280
BasisFunctionSetType::EntityType EntityType
type of the entity, the local function lives on is given by the space
Definition: localfunction.hh:61
specialize with 'true' if the grid part is cartesian (default=false)
Definition: gridpart/common/capabilities.hh:40
quadrature class supporting base function caching
Definition: cachingquadrature.hh:38
int nop() const
obtain the number of integration points
Definition: quadrature/quadrature.hh:270
const CoordinateType & point(size_t i) const
obtain coordinates of i-th integration point
Definition: quadrature/quadrature.hh:286
actual interface class for quadratures
Definition: quadrature/quadrature.hh:366
const FieldType & weight(size_t i) const
obtain weight of i-th integration point
Definition: quadrature/quadrature.hh:469
Interface class for basis function sets.
Definition: basisfunctionset/basisfunctionset.hh:31
const ReferenceElementType & referenceElement() const
return reference element
GetDiscreteFunctionSpaceType< T, v >::Type Type
Definition: discretefunctionspace.hh:85
A vector valued function space.
Definition: functionspace.hh:60
Definition: discontinuousgalerkin/space.hh:96
Definition: finitevolume/space.hh:63