diff --git a/AMDiS/src/SolverMatrix.h b/AMDiS/src/SolverMatrix.h index a4c4761bcc17b666d9cdbda5ee9293ba8e15d84f..ef996f40c734037cc66f86b006dbb14ff7e4470f 100644 --- a/AMDiS/src/SolverMatrix.h +++ b/AMDiS/src/SolverMatrix.h @@ -72,7 +72,14 @@ namespace AMDiS { matrix.change_dim(block_starts[ns], block_starts[ns]); set_to_zero(matrix); - DOFMatrix::inserter_type ins(matrix); + + int nnz= 0; + for (int rb= 0; rb < ns; ++rb) + for (int cb= 0; cb < ns; ++cb) + if (A[rb][cb]) + nnz+= A[rb][cb]->getBaseMatrix().nnz(); + + DOFMatrix::inserter_type ins(matrix, int(1.2 * nnz / matrix.dim1())); for (int rb= 0; rb < ns; ++rb) for (int cb= 0; cb < ns; ++cb) if (A[rb][cb])