some fixes for AIJ and BAIJ matrices

Lisandro Dalcin dalcinl at
Tue Jun 10 10:05:35 CDT 2008

Some fixes are needed for BAIJ matrices are:

(1) MatMPIBAIJSetPreallocationCSR_MPIBAIJ   ->  BROKEN
(2) MatSeqBAIJSetPreallocationCSR_SeqBAIJ  ->  MISSING

Regarding (1), the fix needs to call PetscMapSetUp() for setting-up
the row and column maps (rmap&cmap fields) at the very begining,
before anything else. If this is not done, the stuff is the row/column
maps are not properly initialized at the point (1) is called. But
then, PetscMapSetUp() will be called again as (1) calls
MatMPIBAIJSetPreallocation_MPIBAIJ with nnz information. However, I
believe this is not an issue, as the second call will be a no-op (at
least for optimized builds). Additionally, there is a bug at the point
MatSetValuesBlocked_MPIBAIJ() is being called, as the block-size is
not being taking into accout for the 'values' array (when it is

Regarding (2), the issues in (1) for rmap/cmap are the same.

It is fine to push the fixes in release-2.3.3, particularly regarding
that (2) could be seen a 'new functionality'? I would prefer to add it
to release-2.3.3.


Finally, for MPIAIJ, something I'm not sure what to do is the following:

- for MatSeq[B]AIJ one can pass nz=MAT_SKIP_PREALLOCATION
- for MatMPI[B]AIJ, passing d_nz/o_nz=MAT_SKIP_PREALLOCATION generates
an error.

Should MatMPI[B]AIJ support MAT_SKIP_PREALLOCATION for d_nz/o_nz arguments?

Again, it is fine to push this to release-2.3.3 ?

Lisandro Dalcín
Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)
Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)
Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
PTLC - Güemes 3450, (3000) Santa Fe, Argentina
Tel/Fax: +54-(0)342-451.1594

More information about the petsc-dev mailing list