From: Wolfgang Bangerth
+Following are a few modifications to the library that unfortunately +are incompatible with previous versions of the library, but which we +deem necessary for the future maintainability of the +library. Unfortunately, some of these changes will require +modifications to application programs. We apologize for the +inconvenience this causes. +
+ + +
+ Changed: Previously, parallel PETSc matrices only took the sizes of the
+ matrix and the number of rows to be stored locally as arguments. They
+ chose the partitioning of columns to be the same as that for the
+ rows. However, this does not work for non-quadratic parallel matrices,
+ and leads to very hard to find errors. Therefore, all constructors and
+ reinit functions of the parallel sparse matrix classes now take an
+ additional argument indicating the partitioning of columns of the matrix.
+
+ (WB 2004/06/02)
+
New: An object of the new ConditionalOStream
class allows to print
- to standard output depending on its condition, which is active
+ to an output stream depending on a condition, which is active
or not. This is particular useful for parallel computations
- when only one process should print to standard output. An
- object pout of this class is pregenerated.
+ when only one process should print to standard output, while in all
+ other processes we simply want output suppressed.
(RH 2004/05/26)
+ New: Block matrices and vectors have been factored into abstract base
+ classes and concrete implementation classes. While the previous classes
+ still exist in all their functionality, this allowed us to now also
+ have block matrices and vectors for PETSc sequential and parallel
+ objects.
+
+ (WB 2004/06/02)
+
+ New: Vector and block vector classes had a commented out template
+ constructor constructing such a vector from a vector object with a
+ different template argument, for example constructing a Vector<double>
from a Vector<float>
. This constructor has been
+ commented out a long time ago due to a compiler bug in which the
+ explicit
keyword on template constructors was ignored, a
+ fact that is dangerous since it may lead the compiler to generate
+ temporaries without our ado. This bug is not detected during
+ configuration time of the library, and these constructors are available
+ whenever the compiler does not contain this bug.
+
+ (WB 2004/06/02)
+
+ New: In analogy to the PETSc vector classes, the PETSc matrix classes
+ now also have member functions local_range
,
+ in_local_range
, and local_size
.
+
+ (WB 2004/06/02)
+
+ New: Parallel PETSc matrix and vector classes now have member functions
+ get_mpi_communicator
that returns the MPI
+ communicator object these objects operate on.
+
+ (WB 2004/06/02)
+
+ Changed: The PETSc linear solver classes now take a constant, rather
+ than a nonconstant reference to the MPI communicator to be used. This
+ prevents some unnecessary compiler problems in conjunction with the new
+ get_mpi_communicator
function.
+
+ (WB 2004/06/02)
+
+ New: Parallel and sequential PETSc sparse matrix classes can now be
+ initialized (via either constructor or reinit functions) with a
+ compressed sparsity pattern object, allowing for more efficient
+ preallocation of nonzero entries.
+
+ (WB 2004/06/02)
+