I am setting MAT_NEW_NONZERO_ALLOCATION_ERR to PETSC_FALSE, the PETSc version is 3.3-p6.

Thanks for clarifying this. Just to make sure I understand correctly, by providing the correct values in d_nnz and o_nnz I should always be able to avoid any mallocs in matrix assembly?

I will dig in with a debugger as you suggest

Thanks

- Markus

On 10/16/2013 08:57 AM, Jed Brown wrote:
Markus Berndt <[email protected]> writes:

I am trying to minimize the memory footprint of an application by
specifying exactly how many nonzeros are needed per row of the matrix. I
am pretty sure that I am correctly calculating these memory requirements
for the diagonal and off diagonal parts of the parallel matrix (I am
using MatCreateAIJ).
Either you have called another function later that clears the
preallocation information or the information you provided is incorrect.

What version of PETSc are you using?  We currently set
MAT_NEW_NONZERO_ALLOCATION_ERR by default so you should get an error
when a new nonzero triggers allocation.  You can catch that in a
debugger and figure out why there are more nonzeros than you allocated
for.

--
Markus Berndt - CCS-2 - LANL - 505-665-4711

Reply via email to