[petsc-dev] Question on extracting submatrixes from global projection when using FS + external DMShell + MG

Boris Boutkov borisbou at buffalo.edu
Wed Oct 10 11:21:48 CDT 2018


Hello again all,

I've been trying to get GMG+FS to work with an external DMShell provided by
libMesh, see for reference
https://www.mail-archive.com/petsc-dev@mcs.anl.gov/msg23497.html .

The situation is that while I've managed to successfully attach some extra
hooks to CreateSubDM_Shell to set appropriate interpolation, restriction,
and a few other operators that I call,  I now encounter matrix
multiplication size mismatches when computing the Galerkin triple product
to produce the coarser operators during the MG setup. As it stands, libMesh
is computing a global projection matrix and I was hoping to be able to
extract sub matrices out of it corresponding to the various fields but am
not sure about the right way to go about this.

Since we are using DMShell and provide Section information I was hoping to
use something along the lines of MatCreateSubmatrix and extract from the
global projection Mat, only projections corresponding to the fields in
question. Doing this seems to entail the need to provide the row and column
ISs. While I can extract Index Set lists from the incoming DMs during
DMCreateInterpolation via DMCreateFieldIS, I'm not sure what the right way
to extract the row and column information from these IS would be. Is there
a natural way to achieve such a thing from PETSc's side or am I going about
this in the completely wrong way and need to construct field based
projections from my end?

Thanks as always for any information you can provide,
- Boris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20181010/4ab20ab9/attachment.html>


More information about the petsc-dev mailing list