// use the call sequence indicating only
// a maximal number of elements per row
// for all rows globally
- int ierr;
-
-#ifdef DEAL_II_PETSC_VERSION_DEV
- ierr
- = MatCreateAIJ (communicator,
- local_rows, local_columns,
- m, n,
- n_nonzero_per_row, 0, 0, 0,
- &matrix);
- AssertThrow (ierr == 0, ExcPETScError(ierr));
-
- ierr = MatSetOption (matrix, MAT_NEW_NONZERO_ALLOCATION_ERR, PETSC_FALSE);
-#else
- ierr
- = MatCreateMPIAIJ (communicator,
- local_rows, local_columns,
- m, n,
- n_nonzero_per_row, 0, 0, 0,
- &matrix);
-#endif
+ const int ierr
+ = MatCreateMPIAIJ(communicator,
+ local_rows, local_columns,
+ m, n,
+ n_nonzero_per_row, 0, 0, 0,
+ &matrix);
AssertThrow (ierr == 0, ExcPETScError(ierr));
// set symmetric flag, if so requested
// For the case that
// local_columns is smaller
// than one of the row lengths
- // MatCreate(MPI)AIJ throws an
+ // MatCreateMPIAIJ throws an
// error. In this case use a
// PETScWrappers::SparseMatrix
for (unsigned int i=0; i<row_lengths.size(); ++i)
//TODO: There must be a significantly better way to provide information about the off-diagonal blocks of the matrix. this way, petsc keeps allocating tiny chunks of memory, and gets completely hung up over this
- int ierr;
-
-#ifdef DEAL_II_PETSC_VERSION_DEV
- ierr
- = MatCreateAIJ (communicator,
- local_rows, local_columns,
- m, n,
- 0, &int_row_lengths[0], 0, 0,
- &matrix);
- AssertThrow (ierr == 0, ExcPETScError(ierr));
-
-//TODO: Sometimes the actual number of nonzero entries allocated is greater than the number of nonzero entries, which petsc will complain about. There is probably a way to prevent a different number nonzero elements being allocated in the first place. (See also previous TODO).
- ierr = MatSetOption (matrix, MAT_NEW_NONZERO_ALLOCATION_ERR, PETSC_FALSE);
-#else
- ierr
- = MatCreateMPIAIJ (communicator,
- local_rows, local_columns,
- m, n,
- 0, &int_row_lengths[0], 0, 0,
- &matrix);
-#endif
+ const int ierr
+ = MatCreateMPIAIJ(communicator,
+ local_rows, local_columns,
+ m, n,
+ 0, &int_row_lengths[0], 0, 0,
+ &matrix);
AssertThrow (ierr == 0, ExcPETScError(ierr));
// set symmetric flag, if so requested