Function setting adjacencies to DOFs of parent element.
338 {
340
341 adjacency.clear();
343
344 if (field.getSpace() !=
NOFIELD) {
345
346 const auto fe_ent = fe.getEnt();
348 CHKERR moab.get_adjacencies(&fe_ent, 1, DIM + 1,
false,
350
351 std::vector<EntityHandle> parents;
352
354 auto basic_entity_data_ptr = fe.getBasicDataPtr();
355 auto th_parent_handle = basic_entity_data_ptr->th_RefParentHandle;
356 auto th_bit_level = basic_entity_data_ptr->th_RefBitLevel;
360 th_bit_level);
361 };
364 } else {
366 }
367
369
370 std::sort(adjacency.begin(), adjacency.end());
371 auto it = std::unique(adjacency.begin(), adjacency.end());
372 adjacency.resize(std::distance(adjacency.begin(), it));
373
374 for (auto e : adjacency) {
375 auto &side_table = fe.getSideNumberTable();
376 if (side_table.find(e) == side_table.end())
378 .insert(
379 boost::shared_ptr<SideNumber>(new SideNumber(e, -1, 0, 0)));
380 }
381 }
382
384 }
#define BITREFLEVEL_SIZE
max number of refinements
@ NOFIELD
scalar or vector of scalars describe (no true field)
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define CHKERR
Inline error check.
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.
std::vector< EntityHandle > brideAdjacencyEdge
MoFEMErrorCode getParent(EntityHandle fe, std::vector< EntityHandle > &parents, moab::Interface &moab, Tag th_parent_handle, Tag th_bit_level)
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)