[petsc-users] Providing Interpolation/Injections to Multigrid infrastructure

Barry Smith bsmith at mcs.anl.gov
Thu Feb 11 13:45:55 CST 2016


> On Feb 11, 2016, at 1:36 PM, Boris Boutkov <borisbou at buffalo.edu> wrote:
> 
> Hello All,
> 
> I'm currently working on hooking into the PETSc multi-grid infrastructure by creating my own DMShell and providing my own interpolation and injection operators. The issue I am currently facing is that while PCSetUp_MG is running, PETSc begins by attempting to create an interpolation (through DMCreateInterpolation) for the finest grid that I am passing it.
> 
> What would be a good way to try and let the PCSetUp_MG procedure know the first mesh it is receiving is the finest one, so there should be no interpolation provided to it?

  Boris,

  I do not understand the question, perhaps it is a matter of language. Say you have two levels total: call them coarse and fine. the PCSetUp_MG will try to create a single interpolation "for/to the fine grid" FROM the coarse grid. This is necessary to do the geometric multigrid. You would then through your DMSHELL provide the function that creates the interpolation matrix.  The PCSetUp_MG will not attempt to create an interpolation "for the coarse mesh" since there is no mesh coarser than the coarse mesh. So 
PCSetUp_MG() should be trying to create only the needed interpolations, so you should not need to tell them not to try to create certain ones.

  Thanks
   Barry


> 
> Thanks for your help,
> Boris
> 



More information about the petsc-users mailing list