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,
88 const int* procs,
int numProcs);
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);
void setSharedOwnershipRule(int ownershipRule)
NodeDescriptor ** sharedNodes_
std::vector< GlobalID > remoteNodeIDs
std::vector< int > & getSharedNodeNumbers()
std::vector< GlobalID > localNodeIDs
int getSharedNodeIndex_num(int nodeNumber)
std::vector< GlobalID > & getSharedNodeIDs()
std::vector< int > nodesPerOwnerProc_
NodeCommMgr(const NodeCommMgr &src)
int checkSharedNodeInfo()
int addSharedNodes(const GlobalID *nodeIDs, int numNodes, const int *const *procs, const int *numProcs)
std::vector< int > nodesPerSharingProc_
int processRecvMessage(int srcProc, std::vector< int > &message)
const SNL_FEI_Structure & probStruc
std::vector< int > & getRecvProcs()
std::vector< int > & getSharedNodeProcs(int index)
std::vector< int > remoteSharingProcs_
int informLocal(const NodeDescriptor &node)
NodeDescriptor & getSharedNodeAtIndex(int index)
void setNodeNumbersArray()
int getSharedNodeIndex(GlobalID nodeID)
std::vector< std::vector< int > > sharedNodeSubdomains
int getSharedNodeNumSubdomains(GlobalID nodeID)
int initComplete(NodeDatabase &nodeDB, bool safetyCheck)
int createProcList(std::vector< int > &itemsPerProc, std::vector< int > &procs)
int storeNodeProcs(int index, std::vector< std::vector< int > * > &procTable, const int *procs, int numProcs)
std::vector< GlobalID > & getLocalNodeIDs()
std::vector< int > remoteOwnerProcs_
std::vector< int > * getSharedNodeSubdomainList(GlobalID nodeID)
int getSendMessage(int destProc, std::vector< int > &message)
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)
NodeCommMgr & operator=(const NodeCommMgr &src)
int getSendMessageLength(int destProc, int &messageLength)
std::vector< std::vector< int > * > sharingProcs_
std::vector< int > sharedNodeNumbers
int adjustSharedOwnership()
void packLocalNodesAndData(int *data, int proc, int numNodes, int len)
size_t getNumSharedNodes()
std::vector< GlobalID > sharedNodeIDs
int allocateNodeDescriptorPtrs(NodeDatabase &nodeDB)
NodeCommMgr(MPI_Comm comm, const SNL_FEI_Structure &problemStructure, int sharedNodeOwnership=STRICTLY_LOW_PROC)
std::vector< int > trivialSubdomainList
bool sharedNodesAllocated_
void packRemoteNodesAndData(GlobalID *data, int proc, int numNodes, int len)
int getGlobalMaxFieldsBlocksSubdomains()
std::vector< int > & getSendProcs()
int exchangeSharedRemoteFieldsBlks()