Jed,

     It appears you changed all the MatXXXSetPreallocation() routines to set 
call  ierr = 
MatSetOption(B,MAT_NEW_NONZERO_ALLOCATION_ERR,PETSC_TRUE);CHKERRQ(ierr); thus 
generating an error if preallocation is wrong.

     The problem is that MatXXXSetPreallocation() is ALWAYS called (with 
default values if the user did not call it explicitly) by MatPreallocated() 
which calls MatPreallocationSetUp(). Hence you are ALWAYS setting error on new 
allocation.

     My intention was that an error would only be generated if the user 
explicitly called MatXXXSetPreallocation() so 

   1) Was my intention wrong and should we always default to erroring on wrong 
preallocation even if the user did not preallocate or   (if so we need lots of 
fixes because much code is broken in nightly tests)

   2) is there anyway to change it so it only errors out when the user did 
explicitly preallocate?


    Barry



Reply via email to