1 #ifndef _NodeCommMgr_hpp_
2 #define _NodeCommMgr_hpp_
52 const int*
const* procs,
const int*
numProcs);
87 int storeNodeProcs(
int index, std::vector<std::vector<int>*>& procTable,
93 std::vector<int>& globalRemoteProcs,
94 std::vector<int>& globalNodesPerRemoteProc,
95 std::vector<int>& globalRemoteProcLengths,
96 std::vector<int>& nodesPerRemoteProc,
97 std::vector<int>& remoteProcs);
102 int numNodes,
int len);
104 int numNodes,
int len);
111 std::vector<int>& procs);
NodeDescriptor ** sharedNodes_
int createProcList(std::vector< int > &itemsPerProc, std::vector< int > &procs)
std::vector< int > & getSharedNodeProcs(int index)
std::vector< int > trivialSubdomainList
std::vector< GlobalID > sharedNodeIDs
int adjustSharedOwnership()
int addSharedNodes(const GlobalID *nodeIDs, int numNodes, const int *const *procs, const int *numProcs)
std::vector< int > nodesPerOwnerProc_
std::vector< GlobalID > localNodeIDs
std::vector< int > & getSendProcs()
std::vector< int > sharedNodeNumbers
int getSharedNodeIndex(GlobalID nodeID)
int allocateNodeDescriptorPtrs(NodeDatabase &nodeDB)
const SNL_FEI_Structure & probStruc
NodeDescriptor & getSharedNodeAtIndex(int index)
int initComplete(NodeDatabase &nodeDB, bool safetyCheck)
std::vector< GlobalID > & getLocalNodeIDs()
std::vector< int > nodesPerSharingProc_
std::vector< GlobalID > remoteNodeIDs
int getSharedNodeIndex_num(int nodeNumber)
NodeCommMgr(MPI_Comm comm, const SNL_FEI_Structure &problemStructure, int sharedNodeOwnership=STRICTLY_LOW_PROC)
int checkSharedNodeInfo()
int getGlobalMaxFieldsBlocksSubdomains()
std::vector< int > remoteOwnerProcs_
std::vector< std::vector< int > > sharedNodeSubdomains
void setNodeNumbersArray()
int storeNodeProcs(int index, std::vector< std::vector< int > * > &procTable, const int *procs, int numProcs)
std::vector< int > remoteSharingProcs_
int getSendMessage(int destProc, std::vector< int > &message)
std::vector< std::vector< int > * > sharingProcs_
void setSharedOwnershipRule(int ownershipRule)
int informLocal(const NodeDescriptor &node)
void packLocalNodesAndData(int *data, int proc, int numNodes, int len)
void packRemoteNodesAndData(GlobalID *data, int proc, int numNodes, int len)
int getSharedNodeNumSubdomains(GlobalID nodeID)
std::vector< int > & getRecvProcs()
bool sharedNodesAllocated_
int getGlobalMaxFieldsBlocks(int &maxFields, int &maxBlocks)
int checkCommArrays(const char *whichCheck, std::vector< int > &globalRemoteProcs, std::vector< int > &globalNodesPerRemoteProc, std::vector< int > &globalRemoteProcLengths, std::vector< int > &nodesPerRemoteProc, std::vector< int > &remoteProcs)
int exchangeSharedRemoteFieldsBlks()
int getSendMessageLength(int destProc, int &messageLength)
size_t getNumSharedNodes()
std::vector< int > & getSharedNodeNumbers()
int processRecvMessage(int srcProc, std::vector< int > &message)
NodeCommMgr & operator=(const NodeCommMgr &src)
std::vector< GlobalID > & getSharedNodeIDs()
int numProcs(MPI_Comm comm)
std::vector< int > * getSharedNodeSubdomainList(GlobalID nodeID)