Function setting adjacencies to DOFs of parent element.
337 {
339
340 adjacency.clear();
342
343 if (field.getSpace() !=
NOFIELD) {
344
345 const auto fe_ent = fe.getEnt();
347 CHKERR moab.get_adjacencies(&fe_ent, 1, DIM + 1,
false,
349
350 std::vector<EntityHandle> parents;
351
353 auto basic_entity_data_ptr = fe.getBasicDataPtr();
354 auto th_parent_handle = basic_entity_data_ptr->th_RefParentHandle;
355 auto th_bit_level = basic_entity_data_ptr->th_RefBitLevel;
359 th_bit_level);
360 };
363 } else {
365 }
366
368
369 std::sort(adjacency.begin(), adjacency.end());
370 auto it = std::unique(adjacency.begin(), adjacency.end());
371 adjacency.resize(std::distance(adjacency.begin(), it));
372
373 for (auto e : adjacency) {
374 auto &side_table = fe.getSideNumberTable();
375 if (side_table.find(e) == side_table.end())
377 .insert(
378 boost::shared_ptr<SideNumber>(new SideNumber(e, -1, 0, 0)));
379 }
380 }
381
383 }
#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.
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)
std::vector< EntityHandle > brideAdjacencyEdge