[petsc-dev] MatISGetLocalMat: need to MatDestroy the returned local matrice ?
Barry Smith
bsmith at mcs.anl.gov
Fri May 19 13:10:32 CDT 2017
Jed,
Should this utilize the Get/Restore paradigm?
If not should the name be different to prevent confusion? Currently we have
XXXCreate --> user needs to call a destroy
XXXXGetYYY --> user needs to call a restore (but not always?)
Could we introduce say
XXXAccessYYY --> user does not call destroy or restore ?
Barry
> On May 19, 2017, at 9:20 AM, Jed Brown <jed at jedbrown.org> wrote:
>
> Thanks. I just pushed this.
>
> commit 96a6f12955a790d77f6eb7eb6b1dcf9dd5e1cf30
> Author: Jed Brown <jed at jedbrown.org>
> Date: Fri May 19 08:17:45 2017 -0600
>
> MatISGetLocalMat: add note on reference counting
>
> Reported-by: Franck Houssen <franck.houssen at inria.fr>
>
> diff --git a/src/mat/impls/is/matis.c b/src/mat/impls/is/matis.c
> index dc4a894aae..287c0aa554 100644
> --- a/src/mat/impls/is/matis.c
> +++ b/src/mat/impls/is/matis.c
> @@ -837,6 +837,9 @@ PetscErrorCode MatISGetLocalMat_IS(Mat mat,Mat *local)
> matrix and want to provide it to the inner matrix object to improve the performance
> of the MatSetValues() operation.
>
> + This function does not increase the reference count for the local Mat. Do not destroy it and do not attempt to use
> + your reference after destroying the parent mat.
> +
> .seealso: MATIS
> @*/
> PetscErrorCode MatISGetLocalMat(Mat mat,Mat *local)
>
> Franck Houssen <franck.houssen at inria.fr> writes:
>
>> Hello,
>>
>> Do I need to MatDestroy the local matrix returned by MatISGetLocalMat ? (the global matrix has been created with MatCreateIS)
>>
>> Tried to look in the source tree... But I'am not sure to get the answer: in petsc-3.7.6/src/mat/impls/is/matis.c, MatISGetLocalMat seems to call MatISGetLocalMat_C, but, I can't find MatISGetLocalMat_C in the source tree !?...
>>
>> Franck
More information about the petsc-dev
mailing list