<p dir="ltr">So I guess, in terms of performance creating M^{-1} through MatGetLocalSubMatrix and then explicitly build M^{-1}H is a more efficient way. </p>
<div class="gmail_quote">On May 11, 2015 1:58 PM, "Jed Brown" <<a href="mailto:jed@jedbrown.org">jed@jedbrown.org</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Bikash Kanungo <<a href="mailto:bikash@umich.edu">bikash@umich.edu</a>> writes:<br>
<br>
> The physics of the problem requires evaluation of M^{-1} from four<br>
> sub-matrices. That's why I'm constrained to use it as MATNEST. The other<br>
> option seems to be MatGetLocalSubMatrix but it seemed easier for me to go<br>
> with MATNEST (particularly to avoid the local index sets).<br>
<br>
If you need a matrix-matrix multiply, then artificial intermediate<br>
scales will tend to reduce performance rather than improving it.<br>
<br>
We can implement MatMatMult_Nest_Nest, but based on what you've said, I<br>
doubt it's a good fit for your problem.  MatMatMult_Nest_MPIAIJ would<br>
likely perform worse than MatMatMult_MPIAIJ_MPIAIJ.<br>
</blockquote></div>