[petsc-dev] DMCreateMatrix_Moab vs. DMCreateMatrix
Jed Brown
jedbrown at mcs.anl.gov
Tue Mar 5 10:07:20 CST 2013
On Tue, Mar 5, 2013 at 10:03 AM, Tim Tautges <tautges at mcs.anl.gov> wrote:
> 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?
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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20130305/f1771ddb/attachment.html>
More information about the petsc-dev
mailing list