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 >>
