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
