<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Jan 19, 2018 at 12:04 AM, saturday luis <span dir="ltr"><<a href="mailto:luis.saturday@gmail.com" target="_blank">luis.saturday@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">I am not exactly sure what you mean.<div><br></div><div>Given an IEN array, how do you get dnz and onz? Do you have any algorithm or pseudocode for that? Any reference will be appreciated!</div></div></blockquote><div><br></div><div>You use a hash table the size of the number of rows, and insert columns for each entry. Then you read out those columns, checking whether</div><div>they are in the diagonal block or not. This is exactly the code I use in Plex.</div><div><br></div><div>   Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Thanks,</div><div><br></div><div>Luis</div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">2018-01-18 20:59 GMT-08:00 Sanjay Govindjee <span dir="ltr"><<a href="mailto:s_g@berkeley.edu" target="_blank">s_g@berkeley.edu</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">If you are doing FEA, then you should have the element connectivity data available from the input.  From this it is an easy task to compute the the assembly pattern and hence the precise allocation data, dnz and onz.  There should be no need to perform a 'trial' assembly.<span class="m_-2147395916375574235HOEnZb"><font color="#888888"><br>
<br>
-sanjay</font></span><div class="m_-2147395916375574235HOEnZb"><div class="m_-2147395916375574235h5"><br>
<br>
On 1/18/18 8:49 PM, saturday luis wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi PETSc team:<br>
<br>
Is there a way to make precise matrix preallocation for an unstructured grid (I am not using the DMPlex object). Or do you have any example code for estimating the dnz & onz data?<br>
<br>
On top of my head, I can do a two-phase calculation. I can first give a rough estimate and do one finite element assembly, then I will call MatGetRow to locate the column indices for nonzero entries. Then in the second step, I will destroy the Mat and create a new Mat with this obtained sparsity pattern.<br>
<br>
Do you have any suggestions?<br>
<br>
Thanks!<br>
<br>
Luis<br>
</blockquote>
<br>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.caam.rice.edu/~mk51/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div>
</div></div>