<div dir="ltr">MatConvert was slow when I tested 10 days ago, because was not preallocating the new matrix (see initial part of this thread). I was trying to find a work around. <div>Unless you already fixed this, did you?... I haven't reinstalled petsc from then<div>
<br></div></div><div>I need the final Dual Graph (the filtered matrix) in Adj mat format. </div><div>I will extract indices from the AIJ matrix (the matrix to filter), and I I will create a new Adj (avoiding to do an in-place operation as you suggested)</div>
<div><br></div><div>Thanks</div><div><br></div><div>Paolo</div><div> </div><div>  <br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Nov 15, 2013 at 7:34 PM, Jed Brown <span dir="ltr"><<a href="mailto:jedbrown@mcs.anl.gov" target="_blank">jedbrown@mcs.anl.gov</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">Paolo Orsini <<a href="mailto:paolo.orsini@gmail.com">paolo.orsini@gmail.com</a>> writes:<br>
<br>
> Hi Jed,<br>
><br>
> I am back to work on this now...<br>
><br>
> Thanks for explaining how I can do this. it makes perfectly sense:<br>
><br>
> A. Assign entries values = 1, when forming the Adj matrix,<br>
><br>
> B. Convert the Adj matrix to AIJ matrix, so I can use MatMatTransposeMult<br>
> (or form AIJ directly): can I preallocate AIJ before calling MatConvert? To<br>
> avoid slow performance? Is there any conflict between the preallocoation<br>
> functions and MatConvert?<br>
<br>
</div>MatConvert() should be fast.<br>
<div class="im"><br>
> C. Filter AIJ, to remove entries with values <3 (for 3d problems). What<br>
> function shall I use to do this operation?<br>
<br>
</div>Don't try to do it in-place.  Do you want the result in a matrix or in<br>
another data structure?  Anyway, I would just walk along calling<br>
MatGetRow() and picking out the column indices that have values of at<br>
least 3.<br>
</blockquote></div><br></div>