<ol>
+<li> Fixed: The PETScWrappers::MatrixBase::clear_row and
+PETScWrappers::MatrixBase::clear_rows functions had a memory leak that made
+PETSc become progressively slower over time. This is now fixed.
+<br>
+(Daniel Goldberg 2008/2/20)
+</li>
+
<li> Improved: All GrowingVectorMemory objects that have the same template
argument will access the same memory pool. Therefore, it is now not a
crime any more to just create a memory pool and discard later. Furthermore,
// now set all the entries of this row to
// zero
- IS index_set;
#if (PETSC_VERSION_MAJOR <= 2) && \
((PETSC_VERSION_MINOR < 2) || \
((PETSC_VERSION_MINOR == 2) && (PETSC_VERSION_SUBMINOR == 0)))
#else
const PetscInt petsc_row = row;
#endif
+
+ IS index_set;
ISCreateGeneral (get_mpi_communicator(), 1, &petsc_row, &index_set);
#if (PETSC_VERSION_MAJOR <= 2) && (PETSC_VERSION_MINOR <= 2)
AssertThrow (ierr == 0, ExcPETScError(ierr));
+ ISDestroy (index_set);
+
compress ();
}
// now set all the entries of these rows
// to zero
- IS index_set;
#if (PETSC_VERSION_MAJOR <= 2) && \
((PETSC_VERSION_MINOR < 2) || \
((PETSC_VERSION_MINOR == 2) && (PETSC_VERSION_SUBMINOR == 0)))
// call the functions. note that we have
// to call them even if #rows is empty,
// since this is a collective operation
+ IS index_set;
ISCreateGeneral (get_mpi_communicator(), rows.size(),
&petsc_rows[0], &index_set);
AssertThrow (ierr == 0, ExcPETScError(ierr));
+ ISDestroy (index_set);
+
compress ();
}