<div dir="ltr"><div><div>Thanks Patrick. I'll give it a shot and see if it works.<br><br></div>Regards,<br></div>Bikash<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 11, 2015 at 9:52 AM, Patrick Sanan <span dir="ltr"><<a href="mailto:patrick.sanan@gmail.com" target="_blank">patrick.sanan@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Ah, so I misunderstood the question - you want to *apply* AB, not assemble it. Perhaps you can then use MATCOMPOSITE to define a composite operator which applies AB.</div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 11, 2015 at 3:47 PM, Bikash Kanungo <span dir="ltr"><<a href="mailto:bikash@umich.edu" target="_blank">bikash@umich.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div>Hi Patrick,<br><br></div>Thanks for the clarification. I want it to be an efficient operation. The idea is to convert a generalized eigenvalue problem (H*x = lamda*M*x) to a standard one (M^{-1}*H*x = lambda*x). The M^{-1} is of type MATNEST whereas H is MPIAIJ. In my problem M^{-1} is computed once whereas H changes every iteration. So performing low-level matrix multiplication or creating H as MATNEST and assembling it from its sub-matrices at every iteration sounds inefficient. <br><br></div>Regards,<br></div>Bikash<br></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 11, 2015 at 9:21 AM, Patrick Sanan <span dir="ltr"><<a href="mailto:patrick.sanan@gmail.com" target="_blank">patrick.sanan@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">MatMatMult with MATNEST does not seem to be supported, based only on the fact that there are no functions of the form MatMatMult_*_MatNest defined with the MATNEST implementation : <a href="http://www.mcs.anl.gov/petsc/petsc-current/src/mat/impls/nest/matnest.c.html" target="_blank">http://www.mcs.anl.gov/petsc/petsc-current/src/mat/impls/nest/matnest.c.html</a><div><br></div><div>Does this operation need to be efficient? (That is, are you forming this matrix for debugging or experimental purposes, or with the intention of using it within an efficient, scalable piece of code?). If not, it should be possible to use lower-level matrix operations as defined by the API to extract the appropriately-sized submatrices from A and (assuming that MatMatMult is defined between MATMPIAIJ and the submatrices of your Matnest), perform the matrix multiplications and additions "by hand" .</div></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 11, 2015 at 2:44 PM, Bikash Kanungo <span dir="ltr"><<a href="mailto:bikash@umich.edu" target="_blank">bikash@umich.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div>Hi,<br><br></div>I have two matrices: A of type MPIAIJ and B of type MATNEST. Is there any way to perform A*B after B has been assembled from its sub-matrices?<br><br></div>Thanks,<br></div>Bikash<span><font color="#888888"><br clear="all"><div><div><div><div><br>-- <br><div><div dir="ltr"><div><div><div><div><font color="#666666">Bikash S. Kanungo<br></font></div><font color="#666666">PhD Student<br></font></div><font color="#666666">Computational Materials Physics Group<br></font></div><font color="#666666">Mechanical Engineering <br></font></div><font color="#666666">University of Michigan<br><br></font></div></div>
</div></div></div></div></font></span></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><div><div dir="ltr"><div><div><div><div><font color="#666666">Bikash S. Kanungo<br></font></div><font color="#666666">PhD Student<br></font></div><font color="#666666">Computational Materials Physics Group<br></font></div><font color="#666666">Mechanical Engineering <br></font></div><font color="#666666">University of Michigan<br><br></font></div></div>
</div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature"><div dir="ltr"><div><div><div><div><font color="#666666">Bikash S. Kanungo<br></font></div><font color="#666666">PhD Student<br></font></div><font color="#666666">Computational Materials Physics Group<br></font></div><font color="#666666">Mechanical Engineering <br></font></div><font color="#666666">University of Michigan<br><br></font></div></div>
</div>