#include <ParallelMergeMesh.hpp>
Public Member Functions | |
ParallelMergeMesh (ParallelComm *pc, const double epsilon) | |
ErrorCode | merge (EntityHandle levelset=0, bool skip_local_merge=false, int dim=-1) |
Private Member Functions | |
ErrorCode | PerformMerge (EntityHandle levelset=0, bool skip_local_merge=false, int dim=-1) |
ErrorCode | PopulateMySkinEnts (const EntityHandle meshset, int dim, bool skip_local_merge=false) |
ErrorCode | GetGlobalBox (double *gbox) |
ErrorCode | PopulateMyTup (double *gbox) |
ErrorCode | PopulateMyMatches () |
ErrorCode | SortMyMatches () |
ErrorCode | TagSharedElements (int dim) |
void | CleanUp () |
ErrorCode | PartitionGlobalBox (double *gbox, double *lengths, int *parts) |
Static Private Member Functions | |
static int | PartitionSide (double sideLeng, double restLen, unsigned numProcs, bool altRatio) |
static void | SwapTuples (TupleList &tup, unsigned long a, unsigned long b) |
static void | SortTuplesByReal (TupleList &tup, double eps2=0) |
static void | PerformRealSort (TupleList &tup, unsigned long left, unsigned long right, double eps2, uint tup_mr) |
static bool | TupleGreaterThan (TupleList &tup, unsigned long vrI, unsigned long vrJ, double eps2, uint tup_mr) |
Private Attributes | |
ParallelComm * | myPcomm |
Interface * | myMB |
std::vector< Range > | mySkinEnts |
double | myEps |
TupleList | myTup |
TupleList | myMatches |
gs_data::crystal_data | myCD |
Definition at line 24 of file ParallelMergeMesh.hpp.
moab::ParallelMergeMesh::ParallelMergeMesh | ( | ParallelComm * | pc, |
const double | epsilon | ||
) |
Definition at line 20 of file ParallelMergeMesh.cpp.
References moab::ParallelComm::get_moab(), myMB, and mySkinEnts.
|
private |
|
private |
Definition at line 141 of file ParallelMergeMesh.cpp.
References moab::BoundBox::bMax, moab::ParallelComm::comm(), ErrorCode, MB_CHK_ERR, MB_SUCCESS, myMB, myPcomm, mySkinEnts, size, and moab::BoundBox::update().
Referenced by PerformMerge().
ErrorCode moab::ParallelMergeMesh::merge | ( | EntityHandle | levelset = 0 , |
bool | skip_local_merge = false , |
||
int | dim = -1 |
||
) |
Definition at line 28 of file ParallelMergeMesh.cpp.
References CleanUp(), dim, ErrorCode, MB_CHK_ERR, and PerformMerge().
Referenced by moab::MeshGeneration::BrickInstance(), moab::NCHelperDomain::create_mesh(), moab::NCHelperScrip::create_mesh(), and main().
|
private |
Definition at line 287 of file ParallelMergeMesh.cpp.
References MB_SUCCESS, myEps, myPcomm, PartitionSide(), and moab::ParallelComm::size().
Referenced by PopulateMyTup().
|
staticprivate |
|
private |
Definition at line 36 of file ParallelMergeMesh.cpp.
References moab::ParallelComm::comm(), dim, ErrorCode, moab::Interface::get_dimension(), GetGlobalBox(), moab::TupleList::initialize(), MB_CHK_ERR, MB_SUCCESS, myCD, myEps, myMatches, myMB, myPcomm, mySkinEnts, myTup, PopulateMyMatches(), PopulateMySkinEnts(), PopulateMyTup(), moab::TupleList::reset(), size, moab::ParallelComm::size(), SortMyMatches(), SortTuplesByReal(), and TagSharedElements().
Referenced by merge().
|
staticprivate |
Definition at line 691 of file ParallelMergeMesh.cpp.
References SwapTuples(), and TupleGreaterThan().
Referenced by SortTuplesByReal().
|
private |
Definition at line 441 of file ParallelMergeMesh.cpp.
References moab::TupleList::disableWriteAccess(), moab::TupleList::enableWriteAccess(), moab::TupleList::get_max(), moab::TupleList::get_n(), moab::TupleList::get_writeEnabled(), moab::TupleList::getTupleSize(), moab::TupleList::inc_n(), moab::CartVect::length_squared(), MB_SUCCESS, myEps, myMatches, myTup, moab::TupleList::resize(), moab::TupleList::vi_rd, moab::TupleList::vi_wr, moab::TupleList::vr_rd, moab::TupleList::vul_rd, and moab::TupleList::vul_wr.
Referenced by PerformMerge().
|
private |
Definition at line 100 of file ParallelMergeMesh.cpp.
References moab::Range::clear(), dim, moab::Range::empty(), ErrorCode, moab::Skinner::find_skin(), moab::Interface::get_entities_by_dimension(), MB_CHK_ERR, MB_SUCCESS, moab::MergeMesh::merge_entities(), myEps, myMB, myPcomm, mySkinEnts, and moab::ParallelComm::size().
Referenced by PerformMerge().
|
private |
Definition at line 168 of file ParallelMergeMesh.cpp.
References moab::TupleList::disableWriteAccess(), moab::TupleList::enableWriteAccess(), ErrorCode, moab::Interface::get_coords(), moab::TupleList::get_max(), moab::TupleList::get_n(), moab::TupleList::get_writeEnabled(), moab::TupleList::inc_n(), MB_CHK_ERR, MB_SUCCESS, myEps, myMB, mySkinEnts, myTup, PartitionGlobalBox(), moab::TupleList::resize(), moab::TupleList::vi_wr, moab::TupleList::vr_wr, and moab::TupleList::vul_wr.
Referenced by PerformMerge().
|
private |
Definition at line 518 of file ParallelMergeMesh.cpp.
References MB_SUCCESS, myMatches, mySkinEnts, moab::TupleList::buffer::reset(), size, and moab::TupleList::sort().
Referenced by PerformMerge().
|
staticprivate |
Definition at line 624 of file ParallelMergeMesh.cpp.
References moab::TupleList::disableWriteAccess(), moab::TupleList::enableWriteAccess(), moab::TupleList::get_n(), moab::TupleList::get_writeEnabled(), moab::TupleList::getTupleSize(), and PerformRealSort().
Referenced by PerformMerge().
|
staticprivate |
Definition at line 637 of file ParallelMergeMesh.cpp.
References moab::TupleList::getTupleSize(), moab::TupleList::vi_rd, moab::TupleList::vi_wr, moab::TupleList::vl_rd, moab::TupleList::vl_wr, moab::TupleList::vr_rd, moab::TupleList::vr_wr, moab::TupleList::vul_rd, and moab::TupleList::vul_wr.
Referenced by PerformRealSort().
|
private |
Definition at line 533 of file ParallelMergeMesh.cpp.
References moab::Range::begin(), moab::ParallelComm::create_iface_pc_links(), moab::ParallelComm::create_interface_sets(), dim, moab::Interface::dimension_from_handle(), moab::Range::end(), moab::Range::erase(), ErrorCode, moab::ParallelComm::exchange_ghost_cells(), moab::GeomUtil::first(), moab::Interface::get_adjacencies(), moab::Interface::get_entities_by_handle(), moab::ParallelComm::get_interface_procs(), moab::ParallelComm::get_proc_nvecs(), moab::Range::lower_bound(), MAX_SHARING_PROCS, MB_SUCCESS, moab::Range::merge(), myMatches, myMB, myPcomm, mySkinEnts, moab::ParallelComm::partitionSets, moab::Range::rbegin(), moab::ParallelComm::tag_shared_verts(), moab::CN::TypeDimensionMap, moab::Interface::UNION, and moab::Range::upper_bound().
Referenced by PerformMerge().
|
staticprivate |
Definition at line 728 of file ParallelMergeMesh.cpp.
References check(), and moab::TupleList::vr_rd.
Referenced by PerformRealSort().
|
private |
Definition at line 38 of file ParallelMergeMesh.hpp.
Referenced by CleanUp(), and PerformMerge().
|
private |
Definition at line 36 of file ParallelMergeMesh.hpp.
Referenced by PartitionGlobalBox(), PerformMerge(), PopulateMyMatches(), PopulateMySkinEnts(), and PopulateMyTup().
|
private |
Definition at line 37 of file ParallelMergeMesh.hpp.
Referenced by CleanUp(), PerformMerge(), PopulateMyMatches(), SortMyMatches(), and TagSharedElements().
|
private |
Definition at line 34 of file ParallelMergeMesh.hpp.
Referenced by GetGlobalBox(), ParallelMergeMesh(), PerformMerge(), PopulateMySkinEnts(), PopulateMyTup(), and TagSharedElements().
|
private |
Definition at line 33 of file ParallelMergeMesh.hpp.
Referenced by GetGlobalBox(), PartitionGlobalBox(), PerformMerge(), PopulateMySkinEnts(), and TagSharedElements().
|
private |
Definition at line 35 of file ParallelMergeMesh.hpp.
Referenced by GetGlobalBox(), ParallelMergeMesh(), PerformMerge(), PopulateMySkinEnts(), PopulateMyTup(), SortMyMatches(), and TagSharedElements().
|
private |
Definition at line 37 of file ParallelMergeMesh.hpp.
Referenced by CleanUp(), PerformMerge(), PopulateMyMatches(), and PopulateMyTup().