<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Mar 5, 2013 at 10:03 AM, Tim Tautges <span dir="ltr"><<a href="mailto:tautges@mcs.anl.gov" target="_blank">tautges@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">  In a previous pull request, Jed suggested "Unless you have grand plans for matrices "in MOAB", you should avoid masquerading as a matrix format and just implement DMCreateMatrix_MOAB (preferring a BAIJ matrix, it seems)."  But, in the documentation for many specific matrix types (I checked BAIJ and AIJ), it says "For good matrix assembly performance the user should preallocate the matrix storage by setting the parameters d_nz (or d_nnz) and o_nz (or o_nnz). By setting these parameters accurately, performance can be increased by more than a factor of 50."  So if a matrix can be created DMCreateMatrix (which passes just the dm and a Mat*), how does one efficiently create this matrix generically without calling the type-specific function?  Do you set options for nz and nnz, or are there MatSet-type functions for setting these?</blockquote>
</div><br>See the other DMCreateMatrix_ImplName(). The DM can use MatMPIBAIJSetPreallocation() (and others for different formats, only the matching routine is used) or MatXAIJSetPreallocation() to preallocate for any format that can understand this specification.</div>
</div>