[petsc-dev] AOCreateBasic vs AOCreateMapping

Hapla Vaclav vaclav.hapla at erdw.ethz.ch
Tue Aug 28 06:41:55 CDT 2018


Thanks Barry, now I see.

Nevertheless, I still think that AOMAPPING is not properly implemented as a specific AO type. There's even no AOType set in AOCreateMapping(). It would be also better to have AOCreate_Mapping() and allow the usual workflow AOCreate-AOSetType-AOSetIS-AOSetUp-AOPetscToApplicationIS.

Even with AOBASIC, one has to call AOSetIS() before AOSetType(), otherwise it crashes - this would be also solved by introducing AOSetUp().

I will write it all down into a BB issue and hopefully return to fix it at some point.

Vaclav

> 27. 8. 2018 v 19:03, Smith, Barry F. <bsmith at mcs.anl.gov>:
> 
> 
>   From the manual page
> 
>   Notes:
>    the arrays myapp and mypetsc need NOT contain the all the integers 0 to napp-1, that is there CAN be "holes"  in the indices.
>       Use AOCreateBasic() or AOCreateBasicIS() if they do not have holes for better performance.
> 
> so they are two different things. Mapping is more general but could be much slower than basic (when basic works).
> 
>    Barry
> 
> 
>> On Aug 27, 2018, at 10:11 AM, Hapla Vaclav <vaclav.hapla at erdw.ethz.ch> wrote:
>> 
>> Hello
>> 
>> I don't understand the difference between these two (and AOCreate{Basic,Mapping}IS). They do the same according to docs. My guess would be the latter is obsolete, dating back to before multiple AOTypes were introduced?
>> 
>> Maybe just AOMappingHas{Application,Petsc}Index() need to be renamed/edited to AOBasicHas{Application,Petsc}Index(), and then AOCreateMapping{,IS} could be removed?
>> 
>> Cheers
>> 
>> Vaclav
> 



More information about the petsc-dev mailing list