1#ifndef DUNE_FEM_SPACE_DISCONTINUOUSGALERKIN_LOCALRESTRICTPROLONG_HH_
2#define DUNE_FEM_SPACE_DISCONTINUOUSGALERKIN_LOCALRESTRICTPROLONG_HH_
29 template<
class DiscreteFunctionSpace,
bool applyInverse >
39 typedef typename DiscreteFunctionSpaceType::RangeType
RangeType;
41 typedef typename DiscreteFunctionSpaceType::GridPartType
GridPartType;
59 template<
class LFFather,
class LFSon,
class LocalGeometry >
61 const LocalGeometry &geometryInFather,
bool initialize )
const
66 assert( weight > 0.0 );
73 temp_.init( lfFather.entity() );
77 typedef typename LFSon :: EntityType EntityType ;
78 typedef typename EntityType :: Geometry Geometry;
79 const EntityType& sonEntity = lfSon.entity();
80 const Geometry sonGeo = sonEntity.geometry();
83 const int nop = quad.nop();
84 for(
int qp = 0; qp < nop; ++qp )
93 quadWeight *= sonGeo.integrationElement( quad.point(qp) );
96 quadWeight *= weight ;
99 lfSon.evaluate( quad[ qp ], value );
103 temp_.axpy( geometryInFather.global( quad.point( qp ) ), value );
105 lfFather.axpy( geometryInFather.global( quad.point( qp ) ), value );
114 template<
class LFFather >
118 template<
class LFFather,
class LFSon,
class LocalGeometry >
120 const LocalGeometry &geometryInFather,
bool initialize )
const
124 typedef typename LFSon :: EntityType EntityType ;
125 typedef typename EntityType :: Geometry Geometry;
126 const EntityType& sonEntity = lfSon.entity();
127 const Geometry sonGeo = sonEntity.geometry();
130 const int nop = quad.nop();
131 for(
int qp = 0; qp < nop; ++qp )
140 quadWeight *= sonGeo.integrationElement( quad.point(qp) );
144 lfFather.evaluate( geometryInFather.global( quad.point( qp ) ), value );
146 lfSon.axpy( quad[ qp ], value );
168 template<
class FunctionSpaceImp,
class Gr
idPartImp,
int polOrd,
class StorageImp >
174 FunctionSpaceImp, GridPartImp, polOrd, StorageImp >,
false >
BaseType;
180 template<
class FunctionSpaceImp,
class Gr
idPartImp,
class StorageImp >
194 template<
class FunctionSpaceImp,
class Gr
idPartImp,
int polOrd,
class StorageImp >
206 template<
class FunctionSpaceImp,
class Gr
idPartImp,
class StorageImp >
220 template<
class FunctionSpaceImp,
class Gr
idPartImp,
int polOrd,
class StorageImp >
232 template<
class FunctionSpaceImp,
class Gr
idPartImp,
class StorageImp >
246 template<
class FunctionSpaceImp,
class Gr
idPartImp,
int polOrd,
class StorageImp >
257 template<
class FunctionSpaceImp,
class Gr
idPartImp,
class StorageImp >
Definition: bindguard.hh:11
A temporary function carrying values for one entity.
Definition: temporary.hh:208
void applyInverse(MassCaller &caller, const EntityType &entity, const BasisFunctionSet &basisFunctionSet, LocalFunction &lf) const
Definition: localmassmatrix.hh:285
Definition: common/localrestrictprolong.hh:16
Definition: common/localrestrictprolong.hh:25
Definition: discontinuousgalerkin/space.hh:96
Definition: discontinuousgalerkin/lagrange.hh:86
Definition: discontinuousgalerkin/legendre.hh:142
Definition: hierarchiclegendre.hh:35
Definition: discontinuousgalerkin/localrestrictprolong.hh:31
LocalMassMatrix< DiscreteFunctionSpaceType, QuadratureType > LocalMassMatrixType
Definition: discontinuousgalerkin/localrestrictprolong.hh:45
DomainFieldType weight_
Definition: discontinuousgalerkin/localrestrictprolong.hh:159
DiscreteFunctionSpace DiscreteFunctionSpaceType
Definition: discontinuousgalerkin/localrestrictprolong.hh:35
CachingQuadrature< GridPartType, 0 > QuadratureType
Definition: discontinuousgalerkin/localrestrictprolong.hh:43
LocalMassMatrixType localMassMatrix_
Definition: discontinuousgalerkin/localrestrictprolong.hh:158
void setFatherChildWeight(const DomainFieldType &weight)
Definition: discontinuousgalerkin/localrestrictprolong.hh:53
void prolongLocal(const LFFather &lfFather, LFSon &lfSon, const LocalGeometry &geometryInFather, bool initialize) const
Definition: discontinuousgalerkin/localrestrictprolong.hh:119
DiscreteFunctionSpaceType::GridPartType GridPartType
Definition: discontinuousgalerkin/localrestrictprolong.hh:41
DiscreteFunctionSpaceType::RangeType RangeType
Definition: discontinuousgalerkin/localrestrictprolong.hh:39
TemporaryLocalFunction< DiscreteFunctionSpace > temp_
Definition: discontinuousgalerkin/localrestrictprolong.hh:160
void restrictFinalize(LFFather &lfFather) const
Definition: discontinuousgalerkin/localrestrictprolong.hh:115
bool needCommunication() const
Definition: discontinuousgalerkin/localrestrictprolong.hh:155
DiscontinuousGalerkinLocalRestrictProlong(const DiscreteFunctionSpaceType &space)
Definition: discontinuousgalerkin/localrestrictprolong.hh:47
void restrictLocal(LFFather &lfFather, const LFSon &lfSon, const LocalGeometry &geometryInFather, bool initialize) const
restrict data to father
Definition: discontinuousgalerkin/localrestrictprolong.hh:60
DiscreteFunctionSpaceType::DomainFieldType DomainFieldType
Definition: discontinuousgalerkin/localrestrictprolong.hh:37
DiscreteFunctionSpaceType::RangeFieldType RangeFieldType
Definition: discontinuousgalerkin/localrestrictprolong.hh:38
DefaultLocalRestrictProlong(const DiscontinuousGalerkinSpace< FunctionSpaceImp, GridPartImp, polOrd, StorageImp > &space)
Definition: discontinuousgalerkin/localrestrictprolong.hh:175
DiscontinuousGalerkinLocalRestrictProlong< DiscontinuousGalerkinSpace< FunctionSpaceImp, GridPartImp, polOrd, StorageImp >, false > BaseType
Definition: discontinuousgalerkin/localrestrictprolong.hh:174
DefaultLocalRestrictProlong(const DiscontinuousGalerkinSpace< FunctionSpaceImp, GridPartImp, 0, StorageImp > &)
Definition: discontinuousgalerkin/localrestrictprolong.hh:185
DiscontinuousGalerkinLocalRestrictProlong< LegendreDiscontinuousGalerkinSpace< FunctionSpaceImp, GridPartImp, polOrd, StorageImp >, false > BaseType
Definition: discontinuousgalerkin/localrestrictprolong.hh:200
DefaultLocalRestrictProlong(const LegendreDiscontinuousGalerkinSpace< FunctionSpaceImp, GridPartImp, polOrd, StorageImp > &space)
Definition: discontinuousgalerkin/localrestrictprolong.hh:201
DefaultLocalRestrictProlong(const LegendreDiscontinuousGalerkinSpace< FunctionSpaceImp, GridPartImp, 0, StorageImp > &)
Definition: discontinuousgalerkin/localrestrictprolong.hh:211
DefaultLocalRestrictProlong(const HierarchicLegendreDiscontinuousGalerkinSpace< FunctionSpaceImp, GridPartImp, polOrd, StorageImp > &space)
Definition: discontinuousgalerkin/localrestrictprolong.hh:227
DiscontinuousGalerkinLocalRestrictProlong< HierarchicLegendreDiscontinuousGalerkinSpace< FunctionSpaceImp, GridPartImp, polOrd, StorageImp >, false > BaseType
Definition: discontinuousgalerkin/localrestrictprolong.hh:226
DefaultLocalRestrictProlong(const HierarchicLegendreDiscontinuousGalerkinSpace< FunctionSpaceImp, GridPartImp, 0, StorageImp > &)
Definition: discontinuousgalerkin/localrestrictprolong.hh:237
DiscontinuousGalerkinLocalRestrictProlong< LagrangeDiscontinuousGalerkinSpace< FunctionSpaceImp, GridPartImp, polOrd, StorageImp >, true > BaseType
Definition: discontinuousgalerkin/localrestrictprolong.hh:251
DefaultLocalRestrictProlong(const LagrangeDiscontinuousGalerkinSpace< FunctionSpaceImp, GridPartImp, polOrd, StorageImp > &space)
Definition: discontinuousgalerkin/localrestrictprolong.hh:252
DefaultLocalRestrictProlong(const LagrangeDiscontinuousGalerkinSpace< FunctionSpaceImp, GridPartImp, 0, StorageImp > &)
Definition: discontinuousgalerkin/localrestrictprolong.hh:262