AMDiS  0.3
The Adaptive Multi-Dimensional Simulation Toolbox
AttributeSet.hpp
1 #pragma once
2 
3 #include <string>
4 
5 namespace Dune
6 {
7  // forward declarations
8  template <class A>
9  class ParallelLocalIndex;
10 
11  template <class TG, class TL, int N>
12  class ParallelIndexSet;
13 }
14 
15 namespace AMDiS
16 {
18  {
19  enum Type {
20  unknown = 0,
21  owner = 1, //< DOF is owned by current processor
22  overlap = 2, //< DOF is shared with another processor who is owner of that DOF
23  copy = 3 //< DOF is on front or ghost entity
24  };
25  };
26 
27 
30  template <class C>
31  struct AttributeSet
32  {
33  using type = DefaultAttributeSet::Type;
34  };
35 
36  // specialization for a Dune::ParallelLocalIndex
37  template <class A>
38  struct AttributeSet<Dune::ParallelLocalIndex<A>>
39  {
40  using type = A;
41  };
42 
43  // specialization for a Dune::ParallelIndexSet
44  template <class TG, class TL, int N>
45  struct AttributeSet<Dune::ParallelIndexSet<TG,TL,N>>
46  {
47  using type = typename AttributeSet<TL>::type;
48  };
49 
50 } // end namespace AMDiS
Definition: AttributeSet.hpp:31
Definition: AdaptiveGrid.hpp:373
Contains all classes needed for solving linear and non linear equation systems.
Definition: AdaptBase.hpp:6
Definition: AttributeSet.hpp:17
T owner
Alias that indicates ownership of resources.
Definition: TypeTraits.hpp:96