dune-grid-dev-howto  2.3.1
identitygridentitypointer.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_IDENTITYGRID_ENTITY_POINTER_HH
4 #define DUNE_IDENTITYGRID_ENTITY_POINTER_HH
5 
6 #include "identitygridentity.hh"
7 
12 namespace Dune {
13 
14 
17  template<int codim, class GridImp>
18  class IdentityGridEntityPointer
19  {
20  private:
21 
22  enum { dim = GridImp::dimension };
23 
24 
25  public:
26 
30 
32  enum { codimension = codim };
33 
34  typedef typename GridImp::template Codim<codim>::Entity Entity;
35 
37 
38  // The codimension of this entitypointer wrt the host grid
39  enum {CodimInHostGrid = GridImp::HostGridType::dimension - GridImp::dimension + codim};
40 
41  // EntityPointer to the equivalent entity in the host grid
42  typedef typename GridImp::HostGridType::Traits::template Codim<CodimInHostGrid>::EntityPointer HostGridEntityPointer;
43 
44 
46  template< class HostGridEntityPointer >
47  IdentityGridEntityPointer (const GridImp* identityGrid, const HostGridEntityPointer& hostEntity_) :
48  identityGrid_(identityGrid),
49  virtualEntity_(identityGrid, hostEntity_)
50  {}
51 
54  : identityGrid_(entity.identityGrid_),
55  virtualEntity_(entity.identityGrid_, entity.hostEntity_)
56  {}
57 
60  return virtualEntity_.getTarget() == i.virtualEntity_.getTarget();
61  }
62 
63 
65  Entity& dereference() const {
66  return virtualEntity_;
67  }
68 
70  void compactify () {
71  //virtualEntity_.getTarget().compactify();
72  }
73 
75  int level () const {
76  return virtualEntity_.level();
77  }
78 
79 
80  protected:
81 
82  const GridImp* identityGrid_;
83 
86 
87 
88  };
89 
90 
91 } // end namespace Dune
92 
93 #endif
The IdentityGridEntity class.
Definition: identitygridentitypointer.hh:39
IdentityGridEntityPointer(const IdentityGridEntity< codim, dim, GridImp > &entity)
Constructor from an IdentityGrid entity.
Definition: identitygridentitypointer.hh:53
Definition: identitygridentity.hh:43
IdentityGridMakeableEntity< codim, dim, GridImp > virtualEntity_
virtual entity
Definition: identitygridentitypointer.hh:85
Definition: identitygridentitypointer.hh:32
Definition: identitygridentity.hh:21
GridImp::template Codim< codim >::Entity Entity
Definition: identitygridentitypointer.hh:34
IdentityGridEntityPointer EntityPointerImp
Definition: identitygridentitypointer.hh:29
Entity & dereference() const
dereferencing
Definition: identitygridentitypointer.hh:65
bool equals(const IdentityGridEntityPointer< codim, GridImp > &i) const
equality
Definition: identitygridentitypointer.hh:59
IdentityGridEntityPointer< codim, GridImp > Base
Definition: identitygridentitypointer.hh:36
GridImp::HostGridType::Traits::template Codim< CodimInHostGrid >::EntityPointer HostGridEntityPointer
Definition: identitygridentitypointer.hh:42
int level() const
ask for level of entity
Definition: identitygridentitypointer.hh:75
The implementation of entities in a IdentityGridA Grid is a container of grid entities. An entity is parametrized by the codimension. An entity of codimension c in dimension d is a d-c dimensional object.
Definition: identitygridentity.hh:18
void compactify()
Make this pointer as small as possible.
Definition: identitygridentitypointer.hh:70
IdentityGridEntityPointer(const GridImp *identityGrid, const HostGridEntityPointer &hostEntity_)
constructor
Definition: identitygridentitypointer.hh:47
const GridImp * identityGrid_
Definition: identitygridentitypointer.hh:82