[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