diff --git a/include/overset/TiogaBlock.h b/include/overset/TiogaBlock.h index 01d5be71c..ddbed9170 100644 --- a/include/overset/TiogaBlock.h +++ b/include/overset/TiogaBlock.h @@ -183,14 +183,8 @@ class TiogaBlock /** Update iblanks after connectivity updates */ - void update_iblanks(); - /** Update fringe and hole node vectors - */ - void update_fringe_and_hole_nodes( + void update_iblanks( std::vector&, std::vector&); - /** Update the Tioga view of iblanks prior to donor-to-receptor interpolation - */ - void update_tioga_iblanks(); /** Update element iblanks after connectivity updates */ diff --git a/src/overset/TiogaBlock.C b/src/overset/TiogaBlock.C index 3f8999452..7cc2c7182 100644 --- a/src/overset/TiogaBlock.C +++ b/src/overset/TiogaBlock.C @@ -224,7 +224,9 @@ TiogaBlock::update_connectivity() } void -TiogaBlock::update_iblanks() +TiogaBlock::update_iblanks( + std::vector& holeNodes, + std::vector& fringeNodes) { sierra::nalu::ScalarIntFieldType* ibf = meta_.get_field(stk::topology::NODE_RANK, "iblank"); @@ -239,25 +241,7 @@ TiogaBlock::update_iblanks() int* ib = stk::mesh::field_data(*ibf, *b); for (size_t in = 0; in < b->size(); in++) { ib[in] = ibnode(ip++); - } - } -} -void -TiogaBlock::update_fringe_and_hole_nodes( - std::vector& holeNodes, - std::vector& fringeNodes) -{ - sierra::nalu::ScalarIntFieldType* ibf = - meta_.get_field(stk::topology::NODE_RANK, "iblank"); - - stk::mesh::Selector mesh_selector = get_node_selector(blkParts_); - const stk::mesh::BucketVector& mbkts = - bulk_.get_buckets(stk::topology::NODE_RANK, mesh_selector); - - for (auto b : mbkts) { - int* ib = stk::mesh::field_data(*ibf, *b); - for (size_t in = 0; in < b->size(); in++) { if (ib[in] == 0) { holeNodes.push_back((*b)[in]); } else if (ib[in] == -1) { @@ -267,26 +251,6 @@ TiogaBlock::update_fringe_and_hole_nodes( } } -void -TiogaBlock::update_tioga_iblanks() -{ - sierra::nalu::ScalarIntFieldType* ibf = - meta_.get_field(stk::topology::NODE_RANK, "iblank"); - - stk::mesh::Selector mesh_selector = get_node_selector(blkParts_); - const stk::mesh::BucketVector& mbkts = - bulk_.get_buckets(stk::topology::NODE_RANK, mesh_selector); - - auto& ibnode = bdata_.iblank_.h_view; - int ip = 0; - for (auto b : mbkts) { - int* ib = stk::mesh::field_data(*ibf, *b); - for (size_t in = 0; in < b->size(); in++) { - ibnode(ip++) = ib[in]; - } - } -} - void TiogaBlock::update_iblank_cell() { diff --git a/src/overset/TiogaSTKIface.C b/src/overset/TiogaSTKIface.C index 5f65f53ab..fac0ffe85 100644 --- a/src/overset/TiogaSTKIface.C +++ b/src/overset/TiogaSTKIface.C @@ -160,7 +160,8 @@ TiogaSTKIface::post_connectivity_work(const bool isDecoupled) { for (auto& tb : blocks_) { // Update IBLANK information at nodes and elements - tb->update_iblanks(); + tb->update_iblanks( + oversetManager_.holeNodes_, oversetManager_.fringeNodes_); tb->update_iblank_cell(); // For each block determine donor elements that needs to be ghosted to other @@ -173,17 +174,7 @@ TiogaSTKIface::post_connectivity_work(const bool isDecoupled) sierra::nalu::ScalarIntFieldType* ibf = meta_.get_field(stk::topology::NODE_RANK, "iblank"); std::vector pvec{ibf}; - stk::mesh::parallel_min(bulk_, {ibf}); - - for (auto& tb : blocks_) { - // Call update_iblanks again to assign holeNodes and fringeNodes vectors - // after iblanks on shared nodes are corrected - tb->update_fringe_and_hole_nodes( - oversetManager_.holeNodes_, oversetManager_.fringeNodes_); - // Return the corrected iblank field to Tioga prior to donor-to-receptor - // interpolation - tb->update_tioga_iblanks(); - } + stk::mesh::copy_owned_to_shared(bulk_, pvec); post_connectivity_sync();