[petsc-dev] Get/Restore vs Create/Destroy
Blaise A Bourdin
bourdin at lsu.edu
Thu Jul 20 13:53:28 CDT 2017
> On Jul 20, 2017, at 1:20 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
>
> Let us know of specific cases that your feel violate the intended paradigm.
I was missing the fact that a Restore operation is not always needed, hence my confusion.
I think that it would be helpful to flag these in the documentation. I will do my best to locate these and send in a patch
Blaise
>
> Barry
>
>> On Jul 20, 2017, at 10:15 AM, Matthew Knepley <knepley at gmail.com> wrote:
>>
>> On Thu, Jul 20, 2017 at 9:25 AM, Blaise A Bourdin <bourdin at lsu.edu> wrote:
>> Hi,
>>
>> It’s always been my understanding that and pets object obtained by a XXXGetYYY had to be released with a matching XXXRestoreYYY, and that those created using XXXCreateYYY had to be destroyed with a YYYDestroy.
>>
>> It seems that this convention is getting broken in several place. I understand that in several situations, this is because the XXXRestoreYYY would essentially do nothing.
>>
>> Is it safe to assume that if a function XXXGetYYY does not have a matching XXXRestoreYYY, the instance of PetscYYY does not have to be destroyed in any way?
>>
>> Yes. We use Get in two ways:
>>
>> 1) Get a borrowed reference. Then nothing has to be done
>>
>> 2) Get a reference which need extra processing. This requires a matching Restore
>>
>> Is it safe to assume that any instance of a PetscYYY created from XXXCreateYYY can be safely destroyed with a YYYDestroy without side effects?
>>
>> Yes.
>>
>> If so, should the offending functions be renamed or should something be explicitly added to their man page?
>>
>> We try to always have the matching restore on the manpage. If it is not, we should fix it.
>>
>> Thanks,
>>
>> Matt
>>
>>
>> Blaise
>>
>> --
>> Department of Mathematics and Center for Computation & Technology
>> Louisiana State University, Baton Rouge, LA 70803, USA
>> Tel. +1 (225) 578 1612, Fax +1 (225) 578 4276 http://www.math.lsu.edu/~bourdin
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> --
>> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
>> -- Norbert Wiener
>>
>> http://www.caam.rice.edu/~mk51/
>
--
Department of Mathematics and Center for Computation & Technology
Louisiana State University, Baton Rouge, LA 70803, USA
Tel. +1 (225) 578 1612, Fax +1 (225) 578 4276 http://www.math.lsu.edu/~bourdin
More information about the petsc-dev
mailing list