Re: some fixes for AIJ and BAIJ matrices
Lisandro, Normally I would say a big change/fix should go into petsc-dev [currently dev has many fixes that are not in petsc-2.3.3]. However - if you feel strongly that this fix should go into petsc-2.3.3 - and are able to merge it back to petsc-dev, then I have no objections.. but you might want to wait for Barry's opinion before doing this. Satish On Tue, 10 Jun 2008, Lisandro Dalcin wrote:
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 provided).
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 ?
participants (1)
-
Satish Balay