3 #ifndef DUNE_ALBERTAGRIDDATAHANDLE_HH
4 #define DUNE_ALBERTAGRIDDATAHANDLE_HH
23 template<
class Gr
id,
class RestrictPro
longOperator >
24 class AdaptRestrictProlongHandler
28 typedef typename Grid::template Codim< 0 >::Entity Entity;
30 typedef typename EntityObject::ImplementationType EntityImp;
32 typedef Alberta::ElementInfo< dimension > ElementInfo;
33 typedef Alberta::Patch< dimension > Patch;
36 RestrictProlongOperator &rpOp_;
40 AdaptRestrictProlongHandler ( Grid &grid, RestrictProlongOperator &rpOp )
43 father_( EntityImp( grid_ ) )
46 void restrictLocal (
const Patch &patch,
int i )
48 ElementInfo fatherInfo = patch.elementInfo( i, grid_.levelProvider() );
49 father_.impl().setElement( fatherInfo, 0 );
50 rpOp_.preCoarsening( (
const Entity &)father_ );
53 void prolongLocal (
const Patch &patch,
int i )
55 ElementInfo fatherInfo = patch.elementInfo( i, grid_.levelProvider() );
56 father_.impl().setElement( fatherInfo, 0 );
57 rpOp_.postRefinement( (
const Entity &)father_ );
65 #endif // #if HAVE_ALBERTA