All public API changes have to be documented at > src/docs/website/documentation/changes/dev.html. > > http://petsc.cs.iit.edu/petsc/petsc-dev/rev/a942f19a37c9 > > Sorry, I didn't know that. A stupid question but, can you say how many users are using MATIS objects?
2. What was wrong with the default MatGetVecs()? > > There's a conceptual difference: default MatGetVecs uses mat->rmap->n and mat->cmat->n as local sizes of the vectors since it assumes a distributed Matrix. MATIS object is not distributed in a standard way (say, all mat->rmap->n values sums to number of global rows), MatMult_IS is not directly performed using the local part of the global vector, thus there is not a real need (apart of Petsc checking the sizes) of the notion of mat->rmap->n (or mat->cmap->n) as in the standard implementation. What you really need is the global size of the vector; indeed the sizes of the local vectors used to perform MatMult_IS doesn't sum up to the vector global size. 3. Options prefixes should inherit the prefix from the parent and should > end with "_" so that they aren't squashed together with the suboptions. > Since MatSetOptionsPrefix(is->A,"is") was already there, I thought it was right using the same prefix for local vectors. Change it as you prefer. > 5. Why is the matrix being forced to be square? > > MATIS were already forced to be square before I began using it. Pushed a fix to the problems you highlighted http://petsc.cs.iit.edu/petsc/petsc-dev/rev/93e67397a066 Calling MatSetBlockSize before MatSetSizes in MatCreateIS solved all my problems. Since we are speaking about MATIS. In my codes, I have a function (now it is in Fortran but I can translate it) MatISOptimize(Mat A,IS *LocalIS ,IS *GlobalIS) which changes the MATIS object, changing its local to global mapping to optimize either for local scatters and for global communications costs. It also changes the local matrix associated to the MATIS object. The function also returns the permutations used (if not PETSC_NULL). Can I add it to matis.c? Since it changes the underlying object, what are the requirements of PETSc? Should the user be able to insert the values with the original ordering? Any suggestions? -- Stefano -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20120508/28ef34ba/attachment.html>