FEI Package Browser (Single Doxygen Collection)  Version of the Day
snl_fei_BlkSizeMsgHandler.hpp
Go to the documentation of this file.
1 /*--------------------------------------------------------------------*/
2 /* Copyright 2005 Sandia Corporation. */
3 /* Under the terms of Contract DE-AC04-94AL85000, there is a */
4 /* non-exclusive license for use of this work by or on behalf */
5 /* of the U.S. Government. Export of this program may require */
6 /* a license from the United States Government. */
7 /*--------------------------------------------------------------------*/
8 
9 #ifndef _snl_fei_BlkSizeMsgHandler_hpp_
10 #define _snl_fei_BlkSizeMsgHandler_hpp_
11 
12 #include <fei_macros.hpp>
13 #include <fei_SharedPtr.hpp>
14 #include <fei_VectorSpace.hpp>
15 #include <fei_Graph.hpp>
16 #include <fei_CommUtils.hpp>
17 
18 namespace snl_fei {
19 
22  public:
25  fei::Graph* graph,
26  MPI_Comm comm);
28  virtual ~BlkSizeMsgHandler();
29 
31  int do_the_exchange();
32 
34  std::vector<int>& getSendProcs();
36  std::vector<int>& getRecvProcs();
37 
39  int getSendMessageLength(int destProc, int& messageLength);
41  int getSendMessage(int destProc, std::vector<int>& message);
43  int processRecvMessage(int srcProc, std::vector<int>& message);
44 
45  private:
52  std::vector<int> sendProcs_;
53  std::vector<int> recvProcs_;
54 
56 };
57 
58 } // namespace snl_fei
59 
60 #endif
61 
snl_fei::BlkSizeMsgHandler::ptBlkMap_
snl_fei::PointBlockMap * ptBlkMap_
Definition: snl_fei_BlkSizeMsgHandler.hpp:49
snl_fei
Definition: fei_MatrixGraph_Impl2.cpp:46
snl_fei::BlkSizeMsgHandler::getSendMessage
int getSendMessage(int destProc, std::vector< int > &message)
Definition: snl_fei_BlkSizeMsgHandler.cpp:152
snl_fei::BlkSizeMsgHandler::sendProcs_
std::vector< int > sendProcs_
Definition: snl_fei_BlkSizeMsgHandler.hpp:52
snl_fei::BlkSizeMsgHandler::do_the_exchange
int do_the_exchange()
Definition: snl_fei_BlkSizeMsgHandler.cpp:60
snl_fei::BlkSizeMsgHandler::vecSpace_
fei::VectorSpace * vecSpace_
Definition: snl_fei_BlkSizeMsgHandler.hpp:48
fei_macros.hpp
snl_fei::PointBlockMap
Definition: snl_fei_PointBlockMap.hpp:23
fei_SharedPtr.hpp
snl_fei::RaggedTable
Definition: snl_fei_RaggedTable.hpp:29
fei::Graph
Definition: fei_Graph.hpp:20
snl_fei::BlkSizeMsgHandler::local_colIndices_
fei::comm_map * local_colIndices_
Definition: snl_fei_BlkSizeMsgHandler.hpp:47
snl_fei::BlkSizeMsgHandler::firstExchange_
bool firstExchange_
Definition: snl_fei_BlkSizeMsgHandler.hpp:55
snl_fei::BlkSizeMsgHandler::processRecvMessage
int processRecvMessage(int srcProc, std::vector< int > &message)
Definition: snl_fei_BlkSizeMsgHandler.cpp:182
snl_fei::BlkSizeMsgHandler::~BlkSizeMsgHandler
virtual ~BlkSizeMsgHandler()
Definition: snl_fei_BlkSizeMsgHandler.cpp:53
snl_fei::BlkSizeMsgHandler::getRecvProcs
std::vector< int > & getRecvProcs()
Definition: snl_fei_BlkSizeMsgHandler.cpp:125
fei::MessageHandler
Definition: fei_CommUtils.hpp:564
snl_fei::BlkSizeMsgHandler::BlkSizeMsgHandler
BlkSizeMsgHandler(fei::VectorSpace *vspace, fei::Graph *graph, MPI_Comm comm)
Definition: snl_fei_BlkSizeMsgHandler.cpp:33
snl_fei::BlkSizeMsgHandler::graph_
fei::Graph * graph_
Definition: snl_fei_BlkSizeMsgHandler.hpp:50
snl_fei::BlkSizeMsgHandler::recvProcs_
std::vector< int > recvProcs_
Definition: snl_fei_BlkSizeMsgHandler.hpp:53
fei_Graph.hpp
fei_CommUtils.hpp
snl_fei::BlkSizeMsgHandler
Definition: snl_fei_BlkSizeMsgHandler.hpp:21
MPI_Comm
#define MPI_Comm
Definition: fei_mpi.h:56
fei_VectorSpace.hpp
snl_fei::BlkSizeMsgHandler::getSendProcs
std::vector< int > & getSendProcs()
Definition: snl_fei_BlkSizeMsgHandler.cpp:114
fei::VectorSpace
Definition: fei_VectorSpace.hpp:62
snl_fei::BlkSizeMsgHandler::getSendMessageLength
int getSendMessageLength(int destProc, int &messageLength)
Definition: snl_fei_BlkSizeMsgHandler.cpp:136
snl_fei::BlkSizeMsgHandler::remote_colIndices_
fei::comm_map * remote_colIndices_
Definition: snl_fei_BlkSizeMsgHandler.hpp:46
snl_fei::BlkSizeMsgHandler::comm_
MPI_Comm comm_
Definition: snl_fei_BlkSizeMsgHandler.hpp:51