[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