29#define fei_file "snl_fei_BlkSizeMsgHandler.cpp"
69 g_iter = localgraph->
begin(),
70 g_end = localgraph->
end();
76 for(; g_iter != g_end; ++g_iter) {
79 fei::Graph::table_type::row_type::const_iterator
81 iter_end = row->
end();
85 for(; iter != iter_end; ++iter) {
87 owner =
vecSpace_->getOwnerProcBlkIndex(col);
89 if (owner != local_proc) {
141 messageLength = cols->size();
146 messageLength = cols->size()*2;
153 std::vector<int>& message)
157 message.resize(cols->size());
164 message.resize(cols->size()*2);
166 fei::comm_map::row_type::const_iterator
167 iter = cols->begin(),
168 iter_end = cols->end();
171 for(; iter != iter_end; ++iter) {
173 message[offset], message[offset+1]) );
183 std::vector<int>& message)
186 for(
unsigned i=0; i<message.size(); ++i) {
192 fei::comm_map::row_type::const_iterator
193 iter = cols->begin(),
194 iter_end = cols->end();
197 for(; iter != iter_end; ++iter) {
198 int ptEqn = message[offset];
199 int blkSize = message[offset+1];
200 for(
int i=0; i<blkSize; ++i) {
snl_fei::RaggedTable< snl_fei::MapContig< fei::ctg_set< int > * >, fei::ctg_set< int > > table_type
snl_fei::PointBlockMap * getPointBlockMap()
static const_iterator end()
const_iterator begin() const
fei::comm_map * local_colIndices_
std::vector< int > & getRecvProcs()
int processRecvMessage(int srcProc, std::vector< int > &message)
virtual ~BlkSizeMsgHandler()
std::vector< int > & getSendProcs()
BlkSizeMsgHandler(fei::VectorSpace *vspace, fei::Graph *graph, MPI_Comm comm)
std::vector< int > sendProcs_
int getSendMessageLength(int destProc, int &messageLength)
snl_fei::PointBlockMap * ptBlkMap_
std::vector< int > recvProcs_
int getSendMessage(int destProc, std::vector< int > &message)
fei::comm_map * remote_colIndices_
fei::VectorSpace * vecSpace_
snl_fei::MapContig< fei::ctg_set< int > * >::iterator iterator
fei::ctg_set< int > row_type
int localProc(MPI_Comm comm)
void copySetToArray(const SET_TYPE &set_obj, int lenList, int *list)
void copyKeysToVector(const MAP_TYPE &map_obj, std::vector< int > &keyvector)
int mirrorProcs(MPI_Comm comm, std::vector< int > &toProcs, std::vector< int > &fromProcs)
int exchange(MPI_Comm comm, MessageHandler< T > *msgHandler)
snl_fei::RaggedTable< std::map< int, std::set< int > * >, std::set< int > > comm_map
int numProcs(MPI_Comm comm)