[petsc-dev] non-symmetric permutation in PCFieldSplit

Barry Smith bsmith at mcs.anl.gov
Thu Feb 23 14:47:23 CST 2012


  Jungho will be adding this more generality and looking to simplify by removing the nfields, fields case from the code. For now we plan to keep the nfields, fields information because it is useful in the PCView() and provides much more information than the IS case. Eventually I guess we can augment the ISView() to provide this information and then totally remove the nfields, fields from the PC_FieldSplit object.

    Barry

On Feb 23, 2012, at 1:14 PM, Matthew Knepley wrote:

> On Thu, Feb 23, 2012 at 1:05 PM, Jungho Lee <julee at mcs.anl.gov> wrote:
> I'd like to solve a system with a block structure with PCFieldSplit:
> 
> [A B;C D][x;y] = [v;w]
> 
> (I wrote it this way to simplify notation but x and y are in fact
> interlaced, i.e., I'm solving a permuted version of the system above,
> where the variables are laid out as x_1 y_1 x_2 y_2 ...., so the
> system is fieldsplit-friendly)
> 
> Applying PCFieldSplit to the equivalent system
> 
> [D C;B A][y;x] = [w;v]
> 
> can be done with command line options (-pc_fieldsplit_0_fields 1
> -pc_fieldsplit_1_fields 0), but I'm also interested in solving
> 
> [C D;A B][x;y] = [v;w] (to be able to explore different
> preconditioning strategies), which currently doesn't seem to be
> supported. At first glance it seems like this can be easily solved by
> adding extra IS (is) and PetscInt* (fields) objects in
> _PC_FieldSplitLink, read in integer arrays for rows and columns (the
> symmetric case where the rows and columns have the same indices is
> already handled by -pc_fieldsplit_%d_fields), fill in the extra IS
> object, and allow the user to use these two different IS's in the
> MatGetSubMatrix calls in PCSetUp_FieldSplit. Is it really as simple as
> that, or am I missing something here?
> 
> No, I think that should definitely be available. However, I also think FS needs a
> complete rewrite. There is way to much crud in there specific to co-located
> discretizations on structured grids which should be moved to the DA. FS should
> only takes ISes, which would make the code a LOT simpler. Then the DA has all
> the nice routines for easily creating ISes for it. I am putting in the code for
> DMComplex now, and it seems clear the interface for all DMs should be the same.
> 
>    Matt
>  
> Thanks,
> Jungho
> -- 
> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
> -- Norbert Wiener




More information about the petsc-dev mailing list