[petsc-dev] Using PCFieldSplitSetIS

Thomas Witkowski Thomas.Witkowski at tu-dresden.de
Wed Mar 9 13:50:11 CST 2011


As I already asked on petsc-users, I want to implement some kind of  
iterative substructuring algorithm in my fem code. It was suggested to  
me to switch to the dev version of petsc and to make use of  
PCFieldSplit. So far I have installed petsc-dev and read a little bit  
about the PCFieldSplit. It sounds great. But I'm not really sure how  
to make use of. In my code I want to build n blocks (where n is also  
the number of processors), each for the interior domain of one rank.  
Okay, this seems to be easy. I make just one call to PCFieldSplitSetIS  
on each rank with IS being the global indices of the ranks interior  
nodes. But what about the n+1 block, which should contain all the  
nodes of the boundaries between the subdomains? Each rank contributes  
to this block. So how show PCFieldSplitSetIS should be called? May be  
some small example: Assume we have two ranks, each with 100 nodes in  
its interior domain and each rank contributes with 10 nodes to the  
interior boundary (so the overall interior boundary contains 20  
nodes). So rank 0 owns global indices 0 to 109, with 100 to 109 being  
the nodes of the first part of the interior boundary), and rank 1 owns  
global indices 110 to 219, with 210 to 219 being the nodes of the  
second part of the interior boundary. When I understood the idea  
behind PCFieldSplit correctly, it should be possible to generate the  
three blocks [0-99],[110-209],[100-109,210-219] using  
PCFieldSplitSetIs. But how to call it correctly?

Thomas



More information about the petsc-dev mailing list