3#ifndef DUNE_ALU2DGRIDDATAHANDLE_HH 
    4#define DUNE_ALU2DGRIDDATAHANDLE_HH 
   12#include "alu2dinclude.hh" 
   18namespace ALU2DSPACENAME
 
   26  template< 
class Gr
idType, 
class AdaptDataHandle >
 
   27  class AdaptRestrictProlong2dImpl
 
   28    : 
public AdaptRestrictProlong2d ALU2DDIMWORLD( GridType::dimensionworld, GridType::elementType )
 
   31    typedef Dune :: MakeableInterfaceObject<typename GridType::template Codim<0>::Entity> EntityType;
 
   32    typedef typename EntityType :: ImplementationType RealEntityType;
 
   33    typedef typename Dune::ALU2dImplTraits< GridType::dimensionworld, GridType::elementType >::HElementType HElementType ;
 
   35    EntityType & reFather_;
 
   37    RealEntityType & realFather_;
 
   38    RealEntityType & realSon_;
 
   47    AdaptRestrictProlong2dImpl ( GridType &grid,
 
   48                                 EntityType &f, RealEntityType &rf,
 
   49                                 EntityType &s, RealEntityType &rs,
 
   60    virtual ~AdaptRestrictProlong2dImpl ()
 
   64    int preCoarsening ( HElementType &father )
 
   66      maxlevel_ = std::max( maxlevel_, father.level() );
 
   68      realFather_.setElement( father );
 
   69      rp_.preCoarsening( reFather_ );
 
   75    int postRefinement ( HElementType &father )
 
   77      maxlevel_ = std::max( maxlevel_, father.level()+1 );
 
   79      realFather_.setElement( father );
 
   80      rp_.postRefinement( reFather_ );
 
   85    int maxLevel ()
 const { 
return maxlevel_; }
 
interfaces and wrappers needed for the callback adaptation provided by AlbertaGrid and ALUGrid