[petsc-dev] PC PBJACOBI

Mark F. Adams mark.adams at columbia.edu
Thu Aug 25 17:20:29 CDT 2011


I found that the code works when I construct the solver for the eigen estimator but when it is run for the actual smoother in the V-cycle I fail this test on ibdiagvalid:

 #undef __FUNCT__  
 #define __FUNCT__ "MatInvertBlockDiagonal_SeqAIJ"
 PetscErrorCode  MatInvertBlockDiagonal_SeqAIJ(Mat A,PetscScalar **values)
 {
   Mat_SeqAIJ    *a = (Mat_SeqAIJ*) A->data;
   PetscErrorCode ierr;
   PetscInt       i,bs = A->rmap->bs,mbs = A->rmap->n/A->rmap->bs,ipvt[5],bs2 = bs*bs,*v_pivots,ij[7],*IJ,j;
   MatScalar      *diag,work[25],*v_work;
   PetscReal      shift = 0.0;
 
   PetscFunctionBegin;
   if (a->ibdiagvalid) PetscFunctionReturn(0);

And so values does not get created.

Any ideas?

mark

On Aug 25, 2011, at 4:38 PM, Barry Smith wrote:

> 
>   Mark,
> 
>   I added support for AIJ for you, I will remove the outdated comments.
> 
>    valgrind it and let me know where the memory corruption is if you can't figure out the bug.
> 
>    Barry
> 
> On Aug 25, 2011, at 3:32 PM, Mark F. Adams wrote:
> 
>> I see this in pbjacobi.c:
>> /*
>>  Currently only implemented for baij matrices and directly access baij
>> data structures.
>> */
>> #include <../src/mat/impls/baij/mpi/mpibaij.h>
>> #include <../src/mat/blockinvert.h>
>> 
>> But the code looks general and I see what looks like MatInvertBlockDiagonal code in AIJ:
>> 
>> But I'm getting a segv in when using and AIJ matirix.  I will look into this but is this comment and the BAIJ include statement wrong?
>> 
>> Mark
> 
> 




More information about the petsc-dev mailing list