Can I assume if there is MatCreat or VecCreate, I should clean up the memory myself?
On Mon, Jan 20, 2020 at 10:45 AM Sam Guo <[email protected]> wrote: > I only include the first few lines of SLEPc example. What about following > ierr = MatCreate(PETSC_COMM_WORLD,&A);CHKERRQ(ierr); > ierr = MatSetSizes(A,PETSC_DECIDE,PETSC_DECIDE,n,n);CHKERRQ(ierr); > Is there any memory lost? > > On Mon, Jan 20, 2020 at 10:41 AM Dave May <[email protected]> wrote: > >> >> >> On Mon 20. Jan 2020 at 19:39, Sam Guo <[email protected]> wrote: >> >>> I don't have a specific case yet. Currently every call of PETSc is >>> checked. If ierr is not zero, print the error and return. For example, >>> Mat A; /* problem matrix */ >>> EPS eps; /* eigenproblem solver context */ >>> EPSType type; >>> PetscReal error,tol,re,im; >>> PetscScalar kr,ki; Vec xr,xi; 25 >>> PetscInt n=30,i,Istart,Iend,nev,maxit,its,nconv; >>> PetscErrorCode ierr; >>> ierr = SlepcInitialize(&argc,&argv,(char*)0,help);CHKERRQ(ierr); >>> ierr = PetscOptionsGetInt(NULL,NULL,"-n",&n,NULL);CHKERRQ(ierr); >>> ierr = PetscPrintf(PETSC_COMM_WORLD,"\n1-D Laplacian Eigenproblem, >>> n=%D\n\n",n);CHKERRQ(ierr); >>> >>> I am wondering if the memory is lost by calling CHKERRQ. >>> >> >> No. >> >> >> >>> On Mon, Jan 20, 2020 at 10:14 AM Dave May <[email protected]> >>> wrote: >>> >>>> >>>> >>>> On Mon 20. Jan 2020 at 19:11, Sam Guo <[email protected]> wrote: >>>> >>>>> Dear PETSc dev team, >>>>> If PETSc function returns an error, what's the correct way to clean >>>>> PETSc? >>>>> >>>> >>>> The answer depends on the error message reported. Send the complete >>>> error message and a better answer can be provided. >>>> >>>> Particularly how to clean up the memory? >>>>> >>>> >>>> Totally depends on the objects which aren’t being freed. You need to >>>> provide more information >>>> >>>> Thanks >>>> Dave >>>> >>>> >>>>> Thanks, >>>>> Sam >>>>> >>>>
