dune-grid  2.3.1-rc1
albertagrid/datahandle.hh
Go to the documentation of this file.
1 // -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 // vi: set et ts=4 sw=2 sts=2:
3 #ifndef DUNE_ALBERTAGRIDDATAHANDLE_HH
4 #define DUNE_ALBERTAGRIDDATAHANDLE_HH
5 
6 #include <iostream>
7 
9 
14 
15 #if HAVE_ALBERTA
16 
17 namespace Dune
18 {
19 
20  namespace Alberta
21  {
22 
23  template< class Grid, class RestrictProlongOperator >
25  {
26  static const int dimension = Grid::dimension;
27 
28  typedef typename Grid::template Codim< 0 >::Entity Entity;
30  typedef typename EntityObject::ImplementationType EntityImp;
31 
34 
35  Grid &grid_;
36  RestrictProlongOperator &rpOp_;
37  EntityObject father_;
38 
39  public:
40  AdaptRestrictProlongHandler ( Grid &grid, RestrictProlongOperator &rpOp )
41  : grid_( grid ),
42  rpOp_( rpOp ),
43  father_( EntityImp( grid_ ) )
44  {}
45 
46  void restrictLocal ( const Patch &patch, int i )
47  {
48  ElementInfo fatherInfo = patch.elementInfo( i, grid_.levelProvider() );
49  Grid::getRealImplementation( father_ ).setElement( fatherInfo, 0 );
50  rpOp_.preCoarsening( (const Entity &)father_ );
51  }
52 
53  void prolongLocal ( const Patch &patch, int i )
54  {
55  ElementInfo fatherInfo = patch.elementInfo( i, grid_.levelProvider() );
56  Grid::getRealImplementation( father_ ).setElement( fatherInfo, 0 );
57  rpOp_.postRefinement( (const Entity &)father_ );
58  }
59  };
60 
61  }
62 
63 }
64 
65 #endif // #if HAVE_ALBERTA
66 
67 #endif
provides a wrapper for ALBERTA's refinement patches and the corners for geometryInFather ...
ElementInfo elementInfo(int i, const LevelProvider &levelProvider) const
AdaptRestrictProlongHandler(Grid &grid, RestrictProlongOperator &rpOp)
Definition: albertagrid/datahandle.hh:40
Definition: albertagrid/datahandle.hh:24
The dimension of the grid.
Definition: common/grid.hh:400
void restrictLocal(const Patch &patch, int i)
Definition: albertagrid/datahandle.hh:46
provides a wrapper for ALBERTA's el_info structure
Grid abstract base classThis class is the base class for all grid implementations. Although no virtual functions are used we call it abstract since its methods do not contain an implementation but forward to the methods of the derived class via the Barton-Nackman trick.
Definition: common/grid.hh:386
Entity::Implementation ImplementationType
Definition: common/grid.hh:1377
Different resources needed by all grid implementations.
void prolongLocal(const Patch &patch, int i)
Definition: albertagrid/datahandle.hh:53
Definition: albertagrid/refinement.hh:37