I have pushed what I hope are my last changes to IS for awhile.
1) ISCreateBlock() now takes the PetscCopyMode argument (like
ISCreateGeneral()) allowing reuse of the index data without a copy
2) ISCreateBlock()), ISBlockSetIndices() and ISBlockGetIndices() now work
with indices relative to the block rather than the individual entries, for
example If you wish to index the values {0,1,4,5}, then use
a block size of 2 and idx of {0,2}. (It previously was idx of {0,4}. So make
sure you update any of your code that uses the Blocked indices. This was to
make consistent with usage in Vec/MatSetValuesBlocked() etc and is (argued by
some and I agreed) a more reasonable paradigm.
3) There now exists ISToGeneral() instead of only ISStrideToGeneral().
Happy computing,
Barry