changes for PetscMap

Barry Smith bsmith at mcs.anl.gov
Thu Oct 29 00:00:57 CDT 2009


   Ok, I have pushed all these changes, including PetscMap -->  
PetscLayout

   Barry

On Oct 27, 2009, at 4:56 PM, Dima Karpeyev wrote:

> What about a different name?  I vote for PetscLayout, because that's  
> what it is.
> Dmitry.
>
> On Tue, Oct 27, 2009 at 4:44 PM, Matthew Knepley <knepley at gmail.com>  
> wrote:
>> I wanted that 10 years ago.
>>
>>   Matt
>>
>> On Tue, Oct 27, 2009 at 4:37 PM, Barry Smith <bsmith at mcs.anl.gov>  
>> wrote:
>>>
>>>   PetscMap is a strange beast in PETSc.
>>>
>>> 1) it is not a PetscObject (that is it has no PETSc header)
>>> 2) it is used as a PetscMap* instead of PetscMap like most objects
>>> 3) it does not have a PetscMapCreate() instead it has a
>>> PetscMapInitialize() which is like a create except it does not  
>>> malloc its
>>> memory
>>> 4) It does have a PetscMapDestroy() that DOES free the space.
>>> 5) Sometimes a PetscMalloc() is called before PetscMapInitialize()  
>>> and
>>> sometimes a PetscMap is declared and a & of the variable is passed  
>>> in
>>>    In this case it will crash if one calls PetscMapDestroy() is  
>>> called on
>>> it. So instead one must call PetscFree(map->range); to free the  
>>> interior
>>> space.
>>>
>>>  This strange creature evolved over time because I did not want  
>>> PetscMap
>>> to be a full heavy weight object, but it pretty much ended up  
>>> being one
>>> anyways (for example it has reference counting). For a long time I  
>>> hid
>>> PetscMap in the less public part of PETSc didn't want most people  
>>> to have to
>>> deal with it.
>>>
>>>   I still don't want it to be something most PETSc users need ever  
>>> see,
>>> but it is time to fix it up and make it more consistent with other  
>>> objects.
>>> So I propose to make a PetscMap just like other PETSc objects, with
>>> create(), destroy(), opaque definition except I will still not  
>>> make it have
>>> a PETSc header. This will not require much change in the code but  
>>> will
>>> simplify its usage.
>>>
>>>
>>>  Any comments.
>>>
>>>   Barry
>>>
>>
>>
>>
>> --
>> 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
>>




More information about the petsc-dev mailing list