9736 {
9739 Range adj_side_elems;
9741 bit, &face, 1, 3, adj_side_elems, moab::Interface::INTERSECT,
QUIET);
9742 adj_side_elems = adj_side_elems.subset_by_type(MBTET);
9743 if (adj_side_elems.empty()) {
9744 Range adj_tets_on_surface;
9748 bit_tet_on_surface, &face, 1, 3, adj_tets_on_surface,
9749 moab::Interface::INTERSECT, 0);
9750 adj_side_elems.insert(*adj_tets_on_surface.begin());
9751 }
9752 if (adj_side_elems.size() != 1) {
9753 adj_side_elems.clear();
9755 bit, &face, 1, 3, adj_side_elems, moab::Interface::INTERSECT,
9757 Range::iterator it = adj_side_elems.begin();
9758 for (; it != adj_side_elems.end(); it++) {
9760 CHKERR m_field.
get_moab().get_connectivity(&*it, 1, nodes,
true);
9761 PetscPrintf(PETSC_COMM_WORLD, "Connectivity %lu %lu %lu %lu\n", nodes[0],
9762 nodes[1], nodes[2], nodes[3]);
9763 }
9764 int rank;
9765 MPI_Comm_rank(m_field.
get_comm(), &rank);
9766 if (rank == 0) {
9768 CHKERR m_field.
get_moab().create_meshset(MESHSET_SET, out_meshset);
9769 CHKERR m_field.
get_moab().add_entities(out_meshset, adj_side_elems);
9771 CHKERR m_field.
get_moab().write_file(
"debug_error.vtk",
"VTK",
"",
9772 &out_meshset, 1);
9774 }
9776 "Expect 1 tet but is %u", adj_side_elems.size());
9777 }
9779 if (side_elem != 0) {
9780 int side_number, sense, offset;
9781 CHKERR m_field.
get_moab().side_number(side_elem, face, side_number, sense,
9782 offset);
9783 if (sense == -1) {
9785 }
9786 }
9788 Tag th_interface_side;
9790 th_interface_side);
9791 int side;
9792 CHKERR m_field.
get_moab().tag_get_data(th_interface_side, &face, 1, &side);
9793 if (side == 1) {
9795 }
9796 }
9798}
#define BITREFLEVEL_SIZE
max number of refinements
@ MOFEM_DATA_INCONSISTENCY
std::bitset< BITREFLEVEL_SIZE > BitRefLevel
Bit structure attached to each entity identifying to what mesh entity is attached.
virtual moab::Interface & get_moab()=0
virtual MPI_Comm & get_comm() const =0
MoFEMErrorCode getInterface(IFACE *&iface) const
Get interface refernce to pointer of interface.