Dune Core Modules (2.5.0)

idset.hh
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_GEOGRID_IDSET_HH
4#define DUNE_GEOGRID_IDSET_HH
5
7
8namespace Dune
9{
10
11 namespace GeoGrid
12 {
13
14 // IdSet
15 // -----
16
17 template< class Grid, class HostIdSet >
18 class IdSet
19 : public Dune::IdSet< Grid, IdSet< Grid, HostIdSet >, typename HostIdSet::IdType >
20 {
21 typedef IdSet< Grid, HostIdSet > This;
23
24 typedef typename std::remove_const< Grid >::type::Traits Traits;
25
26 public:
27 typedef typename HostIdSet::IdType IdType;
28
29 using Base::subId;
30
31 IdSet ()
32 : hostIdSet_( 0 )
33 {}
34
35 explicit IdSet ( const HostIdSet &hostIdSet )
36 : hostIdSet_( &hostIdSet )
37 {}
38
39 IdSet ( const This &other )
40 : hostIdSet_( other.hostIdSet_ )
41 {}
42
43 const This &operator= ( const This &other )
44 {
45 hostIdSet_ = other.hostIdSet_;
46 return *this;
47 }
48
49 template< int codim >
50 IdType id ( const typename Traits::template Codim< codim >::Entity &entity ) const
51 {
52 return Grid::getRealImplementation( entity ).id( hostIdSet() );
53 }
54
55 template< class Entity >
56 IdType id ( const Entity &entity ) const
57 {
58 return id< Entity::codimension >( entity );
59 }
60
61 IdType subId ( const typename Traits::template Codim< 0 >::Entity &entity, int i, unsigned int codim ) const
62 {
63 return hostIdSet().subId( Grid::template getHostEntity< 0 >( entity ), i, codim );
64 }
65
66 operator bool () const { return bool( hostIdSet_ ); }
67
68 private:
69 const HostIdSet &hostIdSet () const
70 {
71 assert( *this );
72 return *hostIdSet_;
73 }
74
75 const HostIdSet *hostIdSet_;
76 };
77
78 } // namespace GeoGrid
79
80} // namespace Dune
81
82#endif // #ifndef DUNE_GEOGRID_IDSET_HH
Id Set Interface.
Definition: indexidset.hh:402
IdType subId(const typename std::remove_const< GridImp >::type::Traits::template Codim< 0 >::Entity &e, int i, unsigned int codim) const
Get id of subentity i of co-dimension codim of a co-dimension 0 entity.
Definition: indexidset.hh:429
IdType id(const Entity &e) const
Get id of an entity. This method is simpler to use than the one below.
Definition: indexidset.hh:409
Provides base classes for index and id sets.
Dune namespace.
Definition: alignment.hh:11
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Nov 23, 23:29, 2024)