1 #ifndef DUNE_FEM_SPACE_PADAPTIVE_RESTRICTPROLONG_HH 2 #define DUNE_FEM_SPACE_PADAPTIVE_RESTRICTPROLONG_HH 4 #include <dune/geometry/referenceelements.hh> 19 template<
class G,
class LagrangePo
intSetProv
ider >
24 typedef typename Grid::ctype
ctype;
28 typedef typename Grid::template Codim< 0 >::Entity
Entity;
33 typedef typename Entity::LocalGeometry LocalGeometry;
35 typedef typename LagrangePointSet::template Codim< 0 >::SubEntityIteratorType
43 template<
class DomainField >
46 template<
class LFFather,
class LFSon,
class LocalGeometry >
48 const LocalGeometry &geometryInFather,
bool initialize )
const 50 static const int dimRange = LFSon::dimRange;
52 const Entity &father = lfFather.entity();
53 const Entity &son = lfSon.entity();
55 const Dune::ReferenceElement< ctype, dimension > &refSon
56 = Dune::ReferenceElements< ctype, dimension >::general( son.type() );
60 const EntityDofIterator send = pointSet.template endSubEntity< 0 >( 0 );
61 for( EntityDofIterator sit = pointSet.template beginSubEntity< 0 >( 0 ); sit != send; ++sit )
63 const unsigned int dof = *sit;
64 const DomainVector &pointInFather = pointSet.point( dof );
65 const DomainVector pointInSon = geometryInFather.local( pointInFather );
66 if( refSon.checkInside( pointInSon ) )
68 typename LFSon::RangeType phi;
69 lfSon.evaluate( pointInSon, phi );
77 template<
class LFFather,
class LFSon,
class LocalGeometry >
79 const LocalGeometry &geometryInFather,
bool initialize )
const 81 static const int dimRange = LFFather::dimRange;
83 const Entity &son = lfSon.entity();
87 const EntityDofIterator send = pointSet.template endSubEntity< 0 >( 0 );
88 for( EntityDofIterator sit = pointSet.template beginSubEntity< 0 >( 0 ); sit != send; ++sit )
90 const unsigned int dof = *sit;
91 const DomainVector &pointInSon = pointSet.point( dof );
92 const DomainVector pointInFather = geometryInFather.global( pointInSon );
94 typename LFFather::RangeType phi;
95 lfFather.evaluate( pointInFather, phi );
104 template<
class ArgLocal,
class DestLocal >
106 DestLocal &destLocal )
const 108 static const int dimRange = DestLocal::dimRange;
110 const Entity &entity = destLocal.entity();
114 const EntityDofIterator send = pointSet.template endSubEntity< 0 >( 0 );
115 for( EntityDofIterator sit = pointSet.template beginSubEntity< 0 >( 0 ); sit != send; ++sit )
117 const unsigned int dof = *sit;
118 const DomainVector &localPoint = pointSet.point( dof );
120 typename ArgLocal::RangeType phi;
121 argLocal.evaluate( localPoint, phi );
145 #endif // #ifndef DUNE_FEM_SPACE_PADAPTIVE_RESTRICTPROLONG_HH void prolongLocal(const LFFather &lfFather, LFSon &lfSon, const LocalGeometry &geometryInFather, bool initialize) const
Definition: padaptivespace/restrictprolong.hh:78
LagrangePointSetProvider::LagrangePointSetType LagrangePointSet
Definition: padaptivespace/restrictprolong.hh:30
PLagrangeLocalRestrictProlong(const LagrangePointSetProvider &lpsProvider)
Definition: padaptivespace/restrictprolong.hh:39
void restrictLocal(LFFather &lfFather, const LFSon &lfSon, const LocalGeometry &geometryInFather, bool initialize) const
Definition: padaptivespace/restrictprolong.hh:47
static const int dimension
Definition: padaptivespace/restrictprolong.hh:25
bool needCommunication() const
Definition: padaptivespace/restrictprolong.hh:130
G Grid
Definition: padaptivespace/restrictprolong.hh:22
Definition: padaptivespace/restrictprolong.hh:20
Definition: coordinate.hh:4
void setFatherChildWeight(const DomainField &weight)
Definition: padaptivespace/restrictprolong.hh:44
void localInterpolation(const ArgLocal &argLocal, DestLocal &destLocal) const
Definition: padaptivespace/restrictprolong.hh:105
Grid::ctype ctype
Definition: padaptivespace/restrictprolong.hh:24
Grid::template Codim< 0 >::Entity Entity
Definition: padaptivespace/restrictprolong.hh:28
FieldVector< ctype, dimension > DomainVector
Definition: padaptivespace/restrictprolong.hh:26
const LagrangePointSetProvider & lpsProvider_
Definition: padaptivespace/restrictprolong.hh:138
static const Point & coordinate(const Point &x)
Definition: coordinate.hh:11
const LagrangePointSet & lagrangePointSet(const Entity &entity) const
Definition: padaptivespace/restrictprolong.hh:132