47 namespace panzer_stk {
51 const std::string& side_b_name,
54 const bool print_debug =
false;
57 std::vector<stk::mesh::EntityId> gids_a;
59 std::vector<stk::mesh::Entity> nodes_a;
60 stk::mesh::Part* part_a = mesh.
getSideset(side_a_name);
62 "panzer::checkSidesetOverlap: Unknown side set name \"" << side_a_name <<
"\"");
63 stk::mesh::Selector selector_a = *part_a & mesh.
getMetaData()->locally_owned_part();
64 const bool sort_by_gid =
true;
65 stk::mesh::get_selected_entities(selector_a,mesh.
getBulkData()->buckets(mesh.
getNodeRank()),nodes_a,sort_by_gid);
67 gids_a.resize(nodes_a.size());
69 for (
auto&& node : nodes_a) {
76 std::vector<stk::mesh::EntityId> gids_b;
78 std::vector<stk::mesh::Entity> nodes_b;
79 stk::mesh::Part* part_b = mesh.
getSideset(side_b_name);
81 "panzer::checkSidesetOverlap: Unknown side set name \"" << side_b_name <<
"\"");
82 stk::mesh::Selector selector_b = *part_b;
83 const bool sort_by_gid =
true;
84 stk::mesh::get_selected_entities(selector_b,mesh.
getBulkData()->buckets(mesh.
getNodeRank()),nodes_b,sort_by_gid);
86 gids_b.resize(nodes_b.size());
88 for (
auto&& node : nodes_b) {
95 std::sort(gids_b.begin(),gids_b.end());
101 os <<
"gids_a.size()=" << gids_a.size() << std::endl;
102 for (
auto&& gid : gids_a)
103 os <<
"gid_a=" << gid << std::endl;
104 os <<
"gids_b.size()=" << gids_b.size() << std::endl;
105 for (
auto&& gid : gids_b)
106 os <<
"gid_b=" << gid << std::endl;
112 int has_local_overlap = 0;
113 for (
auto&& a : gids_a) {
114 if (std::binary_search(gids_b.begin(),gids_b.end(),a)) {
115 has_local_overlap = 1;
121 if (has_overlap == 0)
bool checkSidesetOverlap(const std::string &side_a_name, const std::string &side_b_name, const panzer_stk::STK_Interface &mesh)
Returns true if the sidesets overlap.
basic_FancyOStream & setShowProcRank(const bool showProcRank)
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
stk::mesh::Part * getSideset(const std::string &name) const
Teuchos::RCP< stk::mesh::BulkData > getBulkData() const
Teuchos::RCP< stk::mesh::MetaData > getMetaData() const
Teuchos::RCP< const Teuchos::Comm< int > > getComm() const
get the comm associated with this mesh
stk::mesh::EntityRank getNodeRank() const