[petsc-dev] changed ISCreateGeneral/NC/WithArray()
Barry Smith
bsmith at mcs.anl.gov
Sun Oct 3 18:10:13 CDT 2010
On Oct 3, 2010, at 5:58 PM, Jed Brown wrote:
> Can anyone think of a better mnemonic, I find PETSC_OWN_VALUES to be ambiguous without reading the man page?
It is PETSC_OWN_POINTER (so clearly it is ambiguous because you didn't read the man page :-).
I agree with you about the mnemonic not being great, but couldn't come up with something short and not using CS-slang like deep copy versus shallow copy....
It could be PETSC_OWN_VALUES and PETSC_USE_VALUES instead of pointer ? PETSC_TAKE_OWNERSHIP_OF_VALUES is too long.
Barry
>
> Jed
>
>
>> On Oct 3, 2010 7:57 PM, "Barry Smith" <bsmith at mcs.anl.gov> wrote:
>>
>>
>> I find the three routines ISCreateGeneral(), ISCreateGeneralNC() and ISCreateGeneralWithArray() to be confusing and code redundant.
>>
>> Therefore in PETSc-dev I have introduced
>>
>> /*E
>> PetscCopyMode - Determines how an array passed to certain functions is copied or retained
>>
>> Level: beginner
>>
>> $ PETSC_COPY_VALUES - the array values are copied into new space, the user is free to reuse or delete the passed in array
>> $ PETSC_OWN_POINTER - the array values are NOT copied, the object takes ownership of the array and will free it later, the user cannot change or
>> $ delete the array. The array MUST have been obtained with PetscMalloc(). Hence this mode cannot be used in Fortran.
>> $ PETSC_USE_POINTER - the array values are NOT copied, the object uses the array but does NOT take ownership of the array. The user cannot use
>> the array but the user must delete the array after the object is destroyed.
>>
>> E*/
>> typedef enum { PETSC_COPY_VALUES, PETSC_OWN_POINTER, PETSC_USE_POINTER} PetscCopyMode;
>> extern const char *PetscCopyModes[];
>>
>> and merged ISCreateGeneral/NC/WithArray() into a single routine with an additional PetscCopyMode argument.
>>
>> I have also merged ISLocalToGlobalMappingCreate() and ISLocalToGlobalMappingCreateNC() into a single routine.
>>
>> There may be other places we can use this paradigm in the future, keep your eyes open,
>>
>> Happy computing,
>>
>> Barry
>>
>
More information about the petsc-dev
mailing list