[petsc-dev] On remaining libMesh-PETsc fieldsplit interface cleanup

Boris Boutkov borisbou at buffalo.edu
Mon Apr 1 20:12:39 CDT 2019


Hello all,

I've been working on the libMesh - PETSc interface for utilizing 
gmg/fieldsplit on the command line by creating DMShells; things are 
seemingly in pretty good shape at this point, so thanks much for the 
support along the way!

The last lingering issue of the implementation is that I still have a 
little bit of dependency on PETSc private/dmimpl.h. In short, during our 
implementation of DMCreateSubDM I try and get some of the parent DMs 
function pointers, specifically dm->ops->{coarsen, refine, 
createinterpolation, createrestriction,and createsubdm}, which then I 
set for the subDM using DMShellSet* by passing in the parent DM pointer 
directly.

I'd like to remove this private dmimpl.h dependency but removing the 
header gives me compilation errors - "invalid use of incomplete type" 
pointing to PETsc DM struct for the above calls. As far as I understand 
it, this means that I would need public API similar to the DMShellSet* 
methods but now instead DMShellGet*.

If the above's the case, any reason this doesn't exist yet outside of 
lack of prior need? And how much work would introducing this require? Or 
of course please let me know if there's some simple way around this that 
I may be missing.

Thanks as always for your time,

- Boris


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20190401/1d3bd870/attachment.html>


More information about the petsc-dev mailing list