Jed,

    Hong and I were discussing MatGetRedundantMatrix() etc and she mention that 
you don't like PetscSubcomm. I suggested removing the PetscSubcomm object from 
PETSc but retaining the functionality of PetscSubcomm by putting the subcomm 
information into an MPI attribute inside an MPI_Comm (so this new comm behaves 
like a MPI_Comm subclass with extra data over a regular MPI_Comm) and having 
something like PetscCommSublimate(comm, …., &subcomm with attribute). Then in 
all the places in PETSc that take PetscSubcomm they would instead take a 
MPI_Comm and check for the attribute and use the additional information if it 
is there. Managing destruction will be tricky due to possible reference loops 
but presumably we can figure out a way to do it.

   What do you think? 

    Barry

  

Reply via email to