162 Set(coarseLevel,
"A", Ac);
163 Set(coarseLevel,
"A00", Ac00);
164 Set(coarseLevel,
"A01", Ac01);
165 Set(coarseLevel,
"A02", Ac02);
166 Set(coarseLevel,
"A10", Ac10);
167 Set(coarseLevel,
"A11", Ac11);
168 Set(coarseLevel,
"A12", Ac12);
169 Set(coarseLevel,
"A20", Ac20);
170 Set(coarseLevel,
"A21", Ac21);
171 Set(coarseLevel,
"A22", Ac22);
189 std::stringstream ss(std::stringstream::out);
195 size_t numMyNnz = Ac.getLocalNumEntries();
197 RCP<const Teuchos::Comm<int> > comm = Ac.getRowMap()->getComm();
200 MueLu_minAll(comm, (GO)((numMyNnz > 0) ? numMyNnz : maxNnz), minNnz);
201 double imbalance = ((double)maxNnz) / minNnz;
203 size_t numMyRows = Ac.getLocalNumRows();
205 GO numActiveProcesses = 0;
206 MueLu_sumAll(comm, (GO)((numMyRows > 0) ? 1 : 0), numActiveProcesses);
209 GO minNumRows, maxNumRows;
212 MueLu_minAll(comm, (GO)((numMyRows > 0) ? numMyRows : maxNumRows), minNumRows);
213 assert(numActiveProcesses > 0);
214 avgNumRows = Ac.getGlobalNumRows() / numActiveProcesses;
216 ss << msgTag <<
" # processes with rows = " << numActiveProcesses << std::endl;
217 ss << msgTag <<
" min # rows per proc = " << minNumRows <<
", max # rows per proc = " << maxNumRows <<
", avg # rows per proc = " << avgNumRows << std::endl;
218 ss << msgTag <<
" nonzero imbalance = " << imbalance << std::endl;