[petsc-dev] non-symmetric permutation in PCFieldSplit

Jungho Lee julee at mcs.anl.gov
Thu Feb 23 17:48:18 CST 2012


On Thu, Feb 23, 2012 at 3:16 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
> I suggest leaving the original field ordering. Add a new function PCFieldSplitSetPermutation(PC,const PetscInt *rowperm,const PetscInt *colperm). Then your desired permutation is
>>
>> -pc_fieldsplit_permutation_row 1,0
>> -pc_fieldsplit_permutation_col 0,1
>
>   I don't understand this. Will this only affect the -pc_fieldsplit_%d_fields and PCFieldSplitSetFields() commands and not PCFieldSplitIS()? What happens if one wants non symmetric access when using IS to provide the parts, won't you still need to provide 2 one for rows and one for columns?


The part that I don't understand is, wouldn't we need to read in
arrays for each "block" for both row and column? For instance, we want
to be able solve a system with 3 variables, permute row and columns,
and cut up the matrix into 2*2 blocks?

-pc_fieldsplit_0_row 0,1 -pc_fieldsplit_1_row 2
-pc_fieldsplit_0_col 1,2 -pc_fieldsplit_1_col 0

So I don't understand how we can get away with using just one option
for row (or column). I mean, we need a punctuation between (0,1) and
(2), and (1,2) and (0).

Jungho



More information about the petsc-dev mailing list