[petsc-dev] LSC question
Barry Smith
bsmith at mcs.anl.gov
Thu Mar 8 15:40:12 CST 2012
On Mar 8, 2012, at 4:31 PM, Jed Brown wrote:
> On Thu, Mar 8, 2012 at 15:23, Barry Smith <bsmith at mcs.anl.gov> wrote:
> ierr = PCLSCAllocate_Private(pc);CHKERRQ(ierr);
> ierr = PetscObjectQuery((PetscObject)pc->pmat,"LSC_L",(PetscObject*)&L);CHKERRQ(ierr);
> ierr = PetscObjectQuery((PetscObject)pc->pmat,"LSC_Lp",(PetscObject*)&Lp);CHKERRQ(ierr);
>
>
> It uses pc->pmat in both places. Is this really what you want? Wouldn't you sometimes want mat?
>
> This is just attached data for an auxiliary operator that should have some properties that relate somehow to the original operator. The whole interface is dirty, but I don't know a better approach (although this one could have a proper API). You could put these auxiliary operators anywhere, but I think attaching both to the preconditioning operator is natural. I don't mind if you want it to look other places for these things.
But the LSC_L reflects properties of the true operator while LSC_Lp reflects properties of the matrix from which you build the preconditioner. Hence LSC_L should be attached to pc->mat
So why not check in pc->mat first and if not there check in pc->pmat
Barry
More information about the petsc-dev
mailing list