FEI
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
base
snl_fei_BlkSizeMsgHandler.hpp
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
21
class
BlkSizeMsgHandler
:
public
fei::MessageHandler
<int> {
22
public
:
24
BlkSizeMsgHandler
(
fei::VectorSpace
* vspace,
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
:
46
fei::comm_map* remote_colIndices_;
47
fei::comm_map* local_colIndices_;
48
fei::VectorSpace
* vecSpace_;
49
snl_fei::PointBlockMap
* ptBlkMap_;
50
fei::Graph
* graph_;
51
MPI_Comm comm_;
52
std::vector<int> sendProcs_;
53
std::vector<int> recvProcs_;
54
55
bool
firstExchange_;
56
};
57
58
}
// namespace snl_fei
59
60
#endif
61
fei::Graph
Definition
fei_Graph.hpp:20
fei::MessageHandler
Definition
fei_CommUtils.hpp:564
fei::VectorSpace
Definition
fei_VectorSpace.hpp:62
snl_fei::BlkSizeMsgHandler::getRecvProcs
std::vector< int > & getRecvProcs()
Definition
snl_fei_BlkSizeMsgHandler.cpp:125
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::getSendProcs
std::vector< int > & getSendProcs()
Definition
snl_fei_BlkSizeMsgHandler.cpp:114
snl_fei::BlkSizeMsgHandler::BlkSizeMsgHandler
BlkSizeMsgHandler(fei::VectorSpace *vspace, fei::Graph *graph, MPI_Comm comm)
Definition
snl_fei_BlkSizeMsgHandler.cpp:33
snl_fei::BlkSizeMsgHandler::getSendMessageLength
int getSendMessageLength(int destProc, int &messageLength)
Definition
snl_fei_BlkSizeMsgHandler.cpp:136
snl_fei::BlkSizeMsgHandler::getSendMessage
int getSendMessage(int destProc, std::vector< int > &message)
Definition
snl_fei_BlkSizeMsgHandler.cpp:152
snl_fei::BlkSizeMsgHandler::do_the_exchange
int do_the_exchange()
Definition
snl_fei_BlkSizeMsgHandler.cpp:60
snl_fei::PointBlockMap
Definition
snl_fei_PointBlockMap.hpp:23
Generated by
1.17.0