[petsc-users] KSP and VecDestroy
Jed Brown
jedbrown at mcs.anl.gov
Fri Oct 7 19:49:35 CDT 2011
On Fri, Oct 7, 2011 at 19:48, Shiyuan <gshy2014 at gmail.com> wrote:
> Hi,
> I want to track down an memory problem and have something I don't
> understand.
> In the following part, I create four vectors and destroy them. If I don't
> call KSPSolve, log tells me four Vec are created and four Vec are destroyed
> which I expect. But if I call KSPSolve, log tells me four Vec are created
> but only two are destroyed in that Stage? Does KSP refer the two vectors
> somewhere inside which make VecDestroy cannot destroy them?
Yes
> Does it create memory leak becase of that?
No, they are destroyed when you call KSPDestroy().
> Thanks.
>
> ierr=PetscLogStagePush(memoryWatch);CHKERRQ(ierr);
> MatGetVecs(*(pCSolverNeu->pK),&x0,&rhs);
> VecDuplicate(x0,&(workVec[0]));VecDuplicate(x0,&(workVec[1]));
> VecSetRandom(x0,randomctx);
> VecCopy(x0,workVec[0]);
> MatMult(*(pMGDataVec[0]->pA),x0,rhs);
>
> ierr=KSPSolve(ksp,rhs, workVec[0]);CHKERRQ(ierr);
>
> ierr=VecDestroy(&x0);CHKERRQ(ierr);
> ierr=VecDestroy(&rhs);CHKERRQ(ierr);
> ierr=VecDestroy(&workVec[0]);CHKERRQ(ierr);
> ierr=VecDestroy(&workVec[1]);CHKERRQ(ierr);
> ierr=PetscLogStagePop();CHKERRQ(ierr);
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20111007/71ef090f/attachment.htm>
More information about the petsc-users
mailing list