Did you know that MatAssemblyBegin/End() wipes any
not-already-assembled entries from the matrix, forcing them to be
reallocated if they're part of a future assembly?  Nice optimization
in most cases, but I wish I knew how to turn it off.

Anyway...

I just wasted an hour or two trying to debug such a preallocation
failure in a PETSc-linked code; in hindsight that might have been
reduced to a few minutes if only I'd known from the start that it was
a preallocation failure.

Should we turn on MAT_NEW_NONZERO_ALLOCATION_ERR by default in our
PetscMatrix objects (at least the AIJ/BAIJ ones), either all the time
or when we're in debug/devel modes?  On the one hand, I can imagine
people wanting to expand their matrices beyond the DofMap-allocated
sparsity pattern, and it seems crude to prevent that or to require
them to jump through solver-package-specific hoops first.  On the
other hand, PETSc (understandably) makes such expansion *really* slow,
so anyone doing it is almost certainly making an inadvertent mistake.
---
Roy

------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
Libmesh-devel mailing list
Libmesh-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to