3#ifndef DUNE_ALBERTAGRIDDATAHANDLE_HH
4#define DUNE_ALBERTAGRIDDATAHANDLE_HH
10#include <dune/grid/albertagrid/misc.hh>
11#include <dune/grid/albertagrid/albertaheader.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 Grid::getRealImplementation( father_ ).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 Grid::getRealImplementation( father_ ).setElement( fatherInfo, 0 );
57 rpOp_.postRefinement( (
const Entity &)father_ );
@ dimension
The dimension of the grid.
Definition: grid.hh:387
Different resources needed by all grid implementations.
provides a wrapper for ALBERTA's refinement patches and the corners for geometryInFather
provides a wrapper for ALBERTA's el_info structure
Dune namespace.
Definition: alignedallocator.hh:10