// use the call sequence indicating only
// a maximal number of elements per row
// for all rows globally
-//TODO[WB]: We should do better by providing ways to tell PETSc how to partition the columns
+ //
+ // note that we partition the columns
+ // in the same way as we partition the
+ // rows, i.e. we assume that users
+ // specify the same number for
+ // local_rows as they do for local_size
+ // on parallel vectors
const int ierr
- = MatCreateMPIAIJ(communicator, local_rows, PETSC_DECIDE, m, n,
+ = MatCreateMPIAIJ(communicator, local_rows, local_rows, m, n,
n_nonzero_per_row, 0, 0, 0,
&matrix);
AssertThrow (ierr == 0, ExcPETScError(ierr));
const std::vector<signed int> int_row_lengths (row_lengths.begin(),
row_lengths.end());
-//TODO[WB]: We should do better by providing ways to tell PETSc how to partition the columns
+ // note that we partition the columns
+ // in the same way as we partition the
+ // rows, i.e. we assume that users
+ // specify the same number for
+ // local_rows as they do for local_size
+ // on parallel vectors
const int ierr
- = MatCreateMPIAIJ(communicator, local_rows, PETSC_DECIDE, m, n,
+ = MatCreateMPIAIJ(communicator, local_rows, local_rows, m, n,
0, &int_row_lengths[0], 0, 0,
&matrix);
AssertThrow (ierr == 0, ExcPETScError(ierr));