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 )
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 >
79 template<
class LocalFunction,
class Gr
idPart,
class FunctionSpace,
int order,
class Storage >
88 for(
int i = 0; i < dimRange; ++i )
104 const typename EntityType::Geometry geometry = entity.geometry();
106 if( geometry.affine() )
121 template<
class LocalFunction,
class Gr
idPart,
class FunctionSpace,
int codim,
class Storage >
136 template<
class LocalFunction,
class Gr
idPart >
double sqrt(const Dune::Fem::Double &v)
Definition: double.hh:977
Definition: bindguard.hh:11
static GridFunctionView< GF > localFunction(const GF &gf)
Definition: gridfunctionview.hh:118
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:77
FunctionSpaceType::DomainType DomainType
type of domain vectors, i.e., type of coordinates
Definition: localfunction.hh:105
FunctionSpaceType::RangeType RangeType
type of range vectors, i.e., type of function values
Definition: localfunction.hh:107
static const int dimRange
dimension of the range
Definition: localfunction.hh:119
BasisFunctionSetType::EntityType EntityType
type of the entity, the local function lives on is given by the space
Definition: localfunction.hh:95
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:41
int nop() const
obtain the number of integration points
Definition: quadrature.hh:295
const CoordinateType & point(size_t i) const
obtain coordinates of i-th integration point
Definition: quadrature.hh:311
actual interface class for quadratures
Definition: quadrature.hh:405
const FieldType & weight(size_t i) const
obtain weight of i-th integration point
Definition: quadrature.hh:527
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