You should be able to. 
This behavior is the same as in PCASM,
except in GASM the matrices live on subcommunicators.
I am in transit right now, but I can take a closer look in Friday.

Dmitry



On Feb 15, 2012, at 8:07, Hui Zhang <mike.hui.zhang@hotmail.com> wrote:

On Feb 15, 2012, at 11:19 AM, Hui Zhang wrote:

Hi Dmitry,

thanks a lot! Currently, I'm not using ISColoring. Just comes another question
on PCGASMSetModifySubMatrices(). The user provided function has the prototype

func (PC pc,PetscInt nsub,IS *row,IS *col,Mat *submat,void *ctx);

I think the coloumns from the parameter 'col' are always the same as the rows
from the parameter 'row'. Because PCGASMSetLocalSubdomains() only accepts
index sets but not rows and columns. Has I misunderstood something?

As I tested, the row and col are always the same. 

I have a new question. Am I allowed to SetLocalToGlobalMapping() for the submat's
in the above func()?

thanks,
Hui


thanks,
Hui


On Feb 11, 2012, at 3:36 PM, Dmitry Karpeev wrote:

Yes, that's right.
There is no good way to help the user assemble the subdomains at the moment beyond the 2D stuff.
It is expected that they are generated from mesh subdomains.
Each IS does carry the subdomains subcomm.

There is ISColoringToList() that is supposed to convert a "coloring" of indices to an array of ISs,
each having the indices with the same color and the subcomm that supports that color. It is
largely untested, though.  You could try using it and give us feedback on any problems you encounter.

Dmitry.


On Sat, Feb 11, 2012 at 6:06 AM, Hui Zhang <mike.hui.zhang@hotmail.com> wrote:
About PCGASMSetLocalSubdomains(), in the case of one subdomain supported by
multiple processors, shall I always create the arguments 'is[s]' and 'is_local[s]'
in a subcommunicator consisting of processors supporting the subdomain 's'?

The source code of PCGASMCreateSubdomains2D() seemingly does so.

Thanks,
Hui