Stefano Zampini <[email protected]> writes:

> So, for example, including petscmat.h we get all the constructors,
> including "petscdm.h" we don't get DMPlexCreate... (BTW, this should
> spelled DMCreatePlex if we follow the Mat convention....)

That's a legacy convention for DM.  There is a usage difference in that
anyone calling DMPlexCreate will also call lots of other DMPlex*
functions, but a caller of MatCreateAIJ may not call any MatAIJ*
functions.  I don't personally care whether DMPlexCreate is changed to
DMCreatePlex.

> If we plan to do any change, we should do it right before a release. Making
> it after, it will be a pain managing maint fixes and merges to master.
>
> I'm of the opinion that "petsc.h" should expose everything PETSc offers,
> including API. But what about "petscksp.h" for example? Should it only
> expose its *types.h dependencies? or the full API for all the objects down
> the hierarchy? (PC,Mat,Vec,IS etc)?

I would prefer only the *types.h, but that's a very disruptive change.

Reply via email to