Function setting adjacencies to DOFs of parent element.
156 {
158
159 static_assert(DIM >= 0 && DIM <= 3, "DIM is out of scope");
160
161 adjacency.clear();
162
163 if (field.getSpace() !=
NOFIELD) {
164
165 auto basic_entity_data_ptr = fe.getBasicDataPtr();
166 auto th_parent_handle = basic_entity_data_ptr->th_RefParentHandle;
167 auto th_bit_level = basic_entity_data_ptr->th_RefBitLevel;
168
169 std::vector<EntityHandle> parents;
171
173 th_bit_level);
174
176 }
177
180 adjacency.insert(adjacency.end(),
adjTmp.begin(),
adjTmp.end());
181
182 std::sort(adjacency.begin(), adjacency.end());
183 auto it = std::unique(adjacency.begin(), adjacency.end());
184 adjacency.resize(std::distance(adjacency.begin(), it));
185
186 for (auto e : adjacency) {
187 auto &side_table = fe.getSideNumberTable();
188 if (side_table.find(e) == side_table.end())
190 .insert(boost::shared_ptr<SideNumber>(new SideNumber(e, -1, 0, 0)));
191 }
192
194 }
#define BITREFLEVEL_SIZE
max number of refinements
@ NOFIELD
scalar or vector of scalars describe (no true field)
multi_index_container< boost::shared_ptr< SideNumber >, indexed_by< ordered_unique< member< SideNumber, EntityHandle, &SideNumber::ent > >, ordered_non_unique< composite_key< SideNumber, const_mem_fun< SideNumber, EntityType, &SideNumber::getEntType >, member< SideNumber, signed char, &SideNumber::side_number > > > > > SideNumber_multiIndex
SideNumber_multiIndex for SideNumber.
MoFEMErrorCode getParent(EntityHandle fe, std::vector< EntityHandle > &parents, moab::Interface &moab, Tag th_parent_handle, Tag th_bit_level)
std::vector< EntityHandle > adjTmp
MoFEMErrorCode getParentsAdjacencies(const Field &field, moab::Interface &moab, std::vector< EntityHandle > &parents, std::vector< EntityHandle > &adjacency)
MoFEMErrorCode getDefaultAdjacencies(moab::Interface &moab, const Field &field, const EntFiniteElement &fe, std::vector< EntityHandle > &adjacency)