Function setting adjacencies to DOFs of parent element.
157 {
159
160 static_assert(DIM >= 0 && DIM <= 3, "DIM is out of scope");
161
162 adjacency.clear();
163
164 if (field.getSpace() !=
NOFIELD) {
165
166 auto basic_entity_data_ptr = fe.getBasicDataPtr();
167 auto th_parent_handle = basic_entity_data_ptr->th_RefParentHandle;
168 auto th_bit_level = basic_entity_data_ptr->th_RefBitLevel;
169
170 std::vector<EntityHandle> parents;
172
174 th_bit_level);
175
177 }
178
181 adjacency.insert(adjacency.end(),
adjTmp.begin(),
adjTmp.end());
182
183 std::sort(adjacency.begin(), adjacency.end());
184 auto it = std::unique(adjacency.begin(), adjacency.end());
185 adjacency.resize(std::distance(adjacency.begin(), it));
186
187 for (auto e : adjacency) {
188 auto &side_table = fe.getSideNumberTable();
189 if (side_table.find(e) == side_table.end())
191 .insert(boost::shared_ptr<SideNumber>(new SideNumber(e, -1, 0, 0)));
192 }
193
195 }
#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)