v0.8.23
TagMultiIndices.hpp
Go to the documentation of this file.
1 /** \file TagMultiIndices.hpp
2  * \brief Tags for Multi-index containers
3  */
4 
5 /* MoFEM is free software: you can redistribute it and/or modify it under
6  * the terms of the GNU Lesser General Public License as published by the
7  * Free Software Foundation, either version 3 of the License, or (at your
8  * option) any later version.
9  *
10  * MoFEM is distributed in the hope that it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
13  * License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with MoFEM. If not, see <http://www.gnu.org/licenses/>
17 */
18 
19 #ifndef __TAGMULTIINDICES_HPP__
20 #define __TAGMULTIINDICES_HPP__
21 
22 namespace MoFEM {
23 
24  /// MultiIndex Tag for field id
27  struct CubitMeshSets_name {};
29 
30  struct BitFieldId_mi_tag {};
31  struct Unique_mi_tag {};
32  struct DOF_Unique_mi_tag {};
33  struct FE_Unique_mi_tag {};
34  struct Ent_mi_tag {};
35  struct FEEnt_mi_tag {};
36  struct EntType_mi_tag {};
38  struct BitFEId_mi_tag {};
41  struct EntDofIdx_mi_tag {};
42  struct Space_mi_tag {};
43 
44  struct Idx_mi_tag {
45  static const bool IamNotPartitioned;
46  /// extract dof index from iterator
47  template<class IT>
48  static DofIdx get_index(const IT &it) { return (*it)->getDofIdx(); }
49  };
51  static const bool IamNotPartitioned;
52  /// extract global dof index from iterator
53  template<class IT>
54  static DofIdx get_index(const IT &it) { return (*it)->getPetscGlobalDofIdx(); }
55  };
57  static const bool IamNotPartitioned;
58  /// extract global dof index from iterator
59  template<class IT>
60  static DofIdx get_index(const IT &it) { return (*it)->getPetscLocalDofIdx(); }
61  };
62 
63  struct Part_mi_tag {
64  };
65 
66  struct Ent_Ent_mi_tag {};
67  struct Ent_Owner_mi_tag {};
68 
69  struct Unique_Ent_mi_tag {};
72  struct Meshset_mi_tag {};
73 
74  /// MultiIndex Tag for field order
75  struct Order_mi_tag {};
76 
77  /// MultiIndex Tag for field name
78  struct FieldName_mi_tag {};
81  struct Problem_mi_tag {};
83 
84  struct Ent_ParallelStatus {};
85  struct Proc_mi_tag {};
86 
87  struct Composite_mi_tag {};
104 
105  struct SeriesID_mi_tag {};
106  struct SeriesName_mi_tag {};
110 
112 
113 }
114 
115 #endif // __TAGMULTIINDICES_HPP__
MultiIndex Tag for field order.
implementation of Data Operators for Forces and Sources
Definition: Common.hpp:21
static DofIdx get_index(const IT &it)
extract dof index from iterator
static DofIdx get_index(const IT &it)
extract global dof index from iterator
static const bool IamNotPartitioned
static const bool IamNotPartitioned
MultiIndex Tag for field id.
static DofIdx get_index(const IT &it)
extract global dof index from iterator
MultiIndex Tag for field name.
static const bool IamNotPartitioned