<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Sep 25, 2017 at 10:05 AM, Stefano Zampini <span dir="ltr"><<a href="mailto:stefano.zampini@gmail.com" target="_blank">stefano.zampini@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="auto">If you know the union of the different sparsity patterns, after you preallocate you can set all zeros to use all the entries. This way PETSc will not complain about new nonzeros in successive assemblies.</div><div class="gmail-HOEnZb"><div class="gmail-h5"><div class="gmail_extra"><br></div></div></div></blockquote><div><br></div><div>Thanks, Stefano,</div><div><br></div><div>Yes, we are actually using this way right now. We are explicitly setting zeros to the matrix to stop petsc shrinking the memory.  But we want to know why we free the extra memory? Yes, we shrink  the memory by moving all data together to have an efficiency computation. But it is still possible to not throw away our  preallocated memory space if we  want to use latter.  </div><div><br></div><div><br></div><div>Fande,</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="gmail-HOEnZb"><div class="gmail-h5"><div class="gmail_extra"><div class="gmail_quote">Il 25 Set 2017 7:01 PM, "Kong, Fande" <<a href="mailto:fande.kong@inl.gov" target="_blank">fande.kong@inl.gov</a>> ha scritto:<br type="attribution"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">Hi Matt,<div><br></div><div>Thanks for your reply. </div><div><br></div><div>The sparsity pattern is slightly different from one Newton iteration to another. We preallocate  enough memory at the beginning, and want to use that memory for the following iterations. </div><div><br></div><div>Does PETSc accutally free the preallocated (extra) memory? I so cannot use it during the second iteration. </div><div><br></div><div><br></div><div><br></div><div>Fande,</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Sep 25, 2017 at 9:43 AM, Matthew Knepley <span dir="ltr"><<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span>On Mon, Sep 25, 2017 at 11:39 AM, Kong, Fande <span dir="ltr"><<a href="mailto:fande.kong@inl.gov" target="_blank">fande.kong@inl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">Hi All,<div><br></div><div>A matrix is created with the right preallocation, and then MatAssembly is called. The preallocation info will be removed. We insert any values then, and will encounter an malloc error.</div><div><br></div><div>My question is that we was intending to design like this way? Attached simple example demonstrates what I am talking about. </div></div></blockquote><div><br></div></span><div>Yes, this is the intent. Why are you assembling? Could you use MAT_ASSEMBLY_FLUSH?</div><div><br></div><div>  Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><span class="gmail-m_909877124052049910m_-2700738448406763656m_-870850231962854569HOEnZb"><font color="#888888"><div><br></div><div>Fande,</div></font></span></div><span class="gmail-m_909877124052049910m_-2700738448406763656HOEnZb"><font color="#888888">
</font></span></blockquote></div><span class="gmail-m_909877124052049910m_-2700738448406763656HOEnZb"><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div class="gmail-m_909877124052049910m_-2700738448406763656m_-870850231962854569gmail_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="https://urldefense.proofpoint.com/v2/url?u=http-3A__www.caam.rice.edu_-7Emk51_&d=DwMFaQ&c=54IZrppPQZKX9mLzcGdPfFD1hxrcB__aEkJFOKJFd00&r=DUUt3SRGI0_JgtNaS3udV68GRkgV4ts7XKfj2opmiCY&m=WrDpQnak7wiz1D4Pyx_jvRGpFKeNDwW2WOH8cIlxrP0&s=7NvRav6CET5Eqpsg7MAiCne1LJ1h2RYKf-OgP6trMkE&e=" target="_blank">https://www.cse.buffalo.edu/~k<wbr>nepley/</a><br></div></div></div></div></div>
</font></span></div></div>
</blockquote></div><br></div>
</blockquote></div></div>
</div></div></blockquote></div><br></div></div>