208 Set(coarseLevel,
"A" , Ac );
209 Set(coarseLevel,
"A00", Ac00);
210 Set(coarseLevel,
"A01", Ac01);
211 Set(coarseLevel,
"A02", Ac02);
212 Set(coarseLevel,
"A10", Ac10);
213 Set(coarseLevel,
"A11", Ac11);
214 Set(coarseLevel,
"A12", Ac12);
215 Set(coarseLevel,
"A20", Ac20);
216 Set(coarseLevel,
"A21", Ac21);
217 Set(coarseLevel,
"A22", Ac22);
240 std::stringstream ss(std::stringstream::out);
246 size_t numMyNnz = Ac.getLocalNumEntries();
248 RCP<const Teuchos::Comm<int> > comm = Ac.getRowMap()->getComm();
251 MueLu_minAll(comm, (GO)((numMyNnz > 0) ? numMyNnz : maxNnz), minNnz);
252 double imbalance = ((double) maxNnz) / minNnz;
254 size_t numMyRows = Ac.getLocalNumRows();
256 GO numActiveProcesses=0;
257 MueLu_sumAll(comm, (GO)((numMyRows > 0) ? 1 : 0), numActiveProcesses);
260 GO minNumRows, maxNumRows;
263 MueLu_minAll(comm, (GO)((numMyRows > 0) ? numMyRows : maxNumRows), minNumRows);
264 assert(numActiveProcesses > 0);
265 avgNumRows = Ac.getGlobalNumRows() / numActiveProcesses;
267 ss << msgTag <<
" # processes with rows = " << numActiveProcesses << std::endl;
268 ss << msgTag <<
" min # rows per proc = " << minNumRows <<
", max # rows per proc = " << maxNumRows <<
", avg # rows per proc = " << avgNumRows << std::endl;
269 ss << msgTag <<
" nonzero imbalance = " << imbalance << std::endl;