39 #define INSTANTIATE_ELEM_ACCESSORS(FUNC_PREFIX, PRED, FUNC_ARG, ...) \ 40 ReplicatedMesh::element_iterator \ 41 ReplicatedMesh::FUNC_PREFIX##_begin (FUNC_ARG) \ 43 return element_iterator(_elements.begin(), _elements.end(), Predicates::PRED<elem_iterator_imp>(__VA_ARGS__)); \ 45 ReplicatedMesh::const_element_iterator \ 46 ReplicatedMesh::FUNC_PREFIX##_begin (FUNC_ARG) const \ 48 return const_element_iterator(_elements.begin(), _elements.end(), Predicates::PRED<const_elem_iterator_imp>(__VA_ARGS__)); \ 50 ReplicatedMesh::element_iterator \ 51 ReplicatedMesh::FUNC_PREFIX##_end (FUNC_ARG) \ 53 return element_iterator(_elements.end(), _elements.end(), Predicates::PRED<elem_iterator_imp>(__VA_ARGS__)); \ 55 ReplicatedMesh::const_element_iterator \ 56 ReplicatedMesh::FUNC_PREFIX##_end (FUNC_ARG) const \ 58 return const_element_iterator(_elements.end(), _elements.end(), Predicates::PRED<const_elem_iterator_imp>(__VA_ARGS__)); \ 60 DistributedMesh::element_iterator \ 61 DistributedMesh::FUNC_PREFIX##_begin (FUNC_ARG) \ 63 return element_iterator(_elements.begin(), _elements.end(), Predicates::PRED<elem_iterator_imp>(__VA_ARGS__)); \ 65 DistributedMesh::const_element_iterator \ 66 DistributedMesh::FUNC_PREFIX##_begin (FUNC_ARG) const \ 68 return const_element_iterator(_elements.begin(), _elements.end(), Predicates::PRED<const_elem_iterator_imp>(__VA_ARGS__)); \ 70 DistributedMesh::element_iterator \ 71 DistributedMesh::FUNC_PREFIX##_end (FUNC_ARG) \ 73 return element_iterator(_elements.end(), _elements.end(), Predicates::PRED<elem_iterator_imp>(__VA_ARGS__)); \ 75 DistributedMesh::const_element_iterator \ 76 DistributedMesh::FUNC_PREFIX##_end (FUNC_ARG) const \ 78 return const_element_iterator(_elements.end(), _elements.end(), Predicates::PRED<const_elem_iterator_imp>(__VA_ARGS__)); \ 85 #define INSTANTIATE_NODE_ACCESSORS(FUNC_PREFIX, PRED, FUNC_ARG, ...) \ 86 ReplicatedMesh::node_iterator \ 87 ReplicatedMesh::FUNC_PREFIX##_begin (FUNC_ARG) \ 89 return node_iterator(_nodes.begin(), _nodes.end(), Predicates::PRED<node_iterator_imp>(__VA_ARGS__)); \ 91 ReplicatedMesh::const_node_iterator \ 92 ReplicatedMesh::FUNC_PREFIX##_begin (FUNC_ARG) const \ 94 return const_node_iterator(_nodes.begin(), _nodes.end(), Predicates::PRED<const_node_iterator_imp>(__VA_ARGS__)); \ 96 ReplicatedMesh::node_iterator \ 97 ReplicatedMesh::FUNC_PREFIX##_end (FUNC_ARG) \ 99 return node_iterator(_nodes.end(), _nodes.end(), Predicates::PRED<node_iterator_imp>(__VA_ARGS__)); \ 101 ReplicatedMesh::const_node_iterator \ 102 ReplicatedMesh::FUNC_PREFIX##_end (FUNC_ARG) const \ 104 return const_node_iterator(_nodes.end(), _nodes.end(), Predicates::PRED<const_node_iterator_imp>(__VA_ARGS__)); \ 106 DistributedMesh::node_iterator \ 107 DistributedMesh::FUNC_PREFIX##_begin (FUNC_ARG) \ 109 return node_iterator(_nodes.begin(), _nodes.end(), Predicates::PRED<node_iterator_imp>(__VA_ARGS__)); \ 111 DistributedMesh::const_node_iterator \ 112 DistributedMesh::FUNC_PREFIX##_begin (FUNC_ARG) const \ 114 return const_node_iterator(_nodes.begin(), _nodes.end(), Predicates::PRED<const_node_iterator_imp>(__VA_ARGS__)); \ 116 DistributedMesh::node_iterator \ 117 DistributedMesh::FUNC_PREFIX##_end (FUNC_ARG) \ 119 return node_iterator(_nodes.end(), _nodes.end(), Predicates::PRED<node_iterator_imp>(__VA_ARGS__)); \ 121 DistributedMesh::const_node_iterator \ 122 DistributedMesh::FUNC_PREFIX##_end (FUNC_ARG) const \ 124 return const_node_iterator(_nodes.end(), _nodes.end(), Predicates::PRED<const_node_iterator_imp>(__VA_ARGS__)); \ 133 #define LIBMESH_COMMA , 136 INSTANTIATE_ELEM_ACCESSORS(elements, NotNull, EMPTY, EMPTY)
137 INSTANTIATE_ELEM_ACCESSORS(active_elements, Active, EMPTY, EMPTY)
138 INSTANTIATE_ELEM_ACCESSORS(not_active_elements, NotActive, EMPTY, EMPTY)
139 INSTANTIATE_ELEM_ACCESSORS(ancestor_elements, Ancestor, EMPTY, EMPTY)
140 INSTANTIATE_ELEM_ACCESSORS(not_ancestor_elements, NotAncestor, EMPTY, EMPTY)
141 INSTANTIATE_ELEM_ACCESSORS(subactive_elements, SubActive, EMPTY, EMPTY)
142 INSTANTIATE_ELEM_ACCESSORS(not_subactive_elements, NotSubActive, EMPTY, EMPTY)
143 INSTANTIATE_ELEM_ACCESSORS(local_elements, Local, EMPTY, this->processor_id())
144 INSTANTIATE_ELEM_ACCESSORS(semilocal_elements, ActiveSemiLocal, EMPTY, this->processor_id())
145 INSTANTIATE_ELEM_ACCESSORS(active_semilocal_elements, ActiveSemiLocal, EMPTY, this->processor_id())
146 INSTANTIATE_ELEM_ACCESSORS(facelocal_elements, FaceLocal, EMPTY, this->processor_id())
147 INSTANTIATE_ELEM_ACCESSORS(not_local_elements, NotLocal, EMPTY, this->processor_id())
148 INSTANTIATE_ELEM_ACCESSORS(active_local_elements, ActiveLocal, EMPTY, this->processor_id())
149 INSTANTIATE_ELEM_ACCESSORS(active_not_local_elements, ActiveNotLocal, EMPTY, this->processor_id())
150 INSTANTIATE_ELEM_ACCESSORS(level_elements, Level,
unsigned int level, level)
151 INSTANTIATE_ELEM_ACCESSORS(not_level_elements, NotLevel,
unsigned int level, level)
152 INSTANTIATE_ELEM_ACCESSORS(pid_elements, PID,
processor_id_type proc_id, proc_id)
153 INSTANTIATE_ELEM_ACCESSORS(type_elements, Type,
ElemType type, type)
154 INSTANTIATE_ELEM_ACCESSORS(active_type_elements, ActiveType,
ElemType type, type)
155 INSTANTIATE_ELEM_ACCESSORS(active_pid_elements, ActivePID,
processor_id_type proc_id, proc_id)
156 INSTANTIATE_ELEM_ACCESSORS(active_subdomain_elements, ActiveSubdomain,
subdomain_id_type subdomain_id, subdomain_id)
157 INSTANTIATE_ELEM_ACCESSORS(active_subdomain_set_elements, ActiveSubdomainSet,
std::set<
subdomain_id_type> ss, ss)
158 INSTANTIATE_ELEM_ACCESSORS(ghost_elements, Ghost, EMPTY, this->processor_id())
159 INSTANTIATE_ELEM_ACCESSORS(evaluable_elements, Evaluable, const DofMap & dof_map LIBMESH_COMMA
unsigned int var_num, dof_map, var_num)
160 INSTANTIATE_ELEM_ACCESSORS(unpartitioned_elements, PID, EMPTY, DofObject::invalid_processor_id)
161 INSTANTIATE_ELEM_ACCESSORS(active_unpartitioned_elements, ActivePID, EMPTY, DofObject::invalid_processor_id)
163 #ifdef LIBMESH_ENABLE_AMR 164 INSTANTIATE_ELEM_ACCESSORS(flagged_elements, Flagged,
unsigned char rflag, rflag)
165 INSTANTIATE_ELEM_ACCESSORS(flagged_pid_elements, FlaggedPID,
unsigned char rflag LIBMESH_COMMA
processor_id_type pid, rflag, pid)
168 INSTANTIATE_ELEM_ACCESSORS(local_level_elements, LocalLevel,
unsigned int level, this->processor_id(), level)
169 INSTANTIATE_ELEM_ACCESSORS(local_not_level_elements, LocalNotLevel,
unsigned int level, this->processor_id(), level)
170 INSTANTIATE_ELEM_ACCESSORS(active_local_subdomain_elements, ActiveLocalSubdomain,
subdomain_id_type subdomain_id, this->processor_id(), subdomain_id)
173 INSTANTIATE_NODE_ACCESSORS(nodes, NotNull, EMPTY, EMPTY)
174 INSTANTIATE_NODE_ACCESSORS(active_nodes, Active, EMPTY, EMPTY)
175 INSTANTIATE_NODE_ACCESSORS(local_nodes, Local, EMPTY, this->processor_id())
177 INSTANTIATE_NODE_ACCESSORS(bnd_nodes, BND, EMPTY, this->get_boundary_info())
178 INSTANTIATE_NODE_ACCESSORS(bid_nodes, BID,
boundary_id_type bndry_id, bndry_id, this->get_boundary_info())
179 INSTANTIATE_NODE_ACCESSORS(evaluable_nodes, Evaluable, const DofMap & dof_map LIBMESH_COMMA
unsigned int var_num, dof_map, var_num)
TestClass subdomain_id_type
uint8_t processor_id_type