[petsc-users] Recursive fieldsplit PCs

Lawrence Mitchell lawrence.mitchell at imperial.ac.uk
Mon Dec 2 06:31:55 CST 2013


On 2 Dec 2013, at 12:23, Matthew Knepley <knepley at gmail.com> wrote:

> On Mon, Dec 2, 2013 at 2:26 AM, Lawrence Mitchell <lawrence.mitchell at imperial.ac.uk> wrote:
> Dear petsc-users,
> 
> I have a 3x3 block system built as a single MatNest (with 9 Mats in it).  I'd like to treat this as a 2x2 system:
> [ A B
>   C D ]
> 
> where A is 2x2 and precondition the A block with a schur complement.  Since I have a mat nest, the ISes for the three fields are just ISCreateStride(..., mat_i_rows, offset, 1, ...) and these are set on the fieldsplit pc.  If I understand the documentation correctly, I think I should now be able to do:
> 
> -pc_type fieldsplit -fieldsplit_0_fields 0,1 -fieldsplit_1_fields 2 -fieldsplit_0_pc_type field split -fieldsplit_0_pc_fieldsplit_type schur
> 
> ...
> 
> However, when doing so, I get an error: "To use Schur complement preconditioner you must have exactly 2 fields".  Which suggests to me I have failed to inform PETSc that I want the first two fields to be treated as 1.
> 
> Note that I am not using a DM to build any of these objects.  I build a SNES, pull the KSP out of the SNES and then the PC out of the KSP.  I never explicitly call SetFromOptions on the PC.  Instead, before the SNES solve I call SNESSetFromOptions.  Might this be the problem?
> 
> This is an unfortunately limitation of the implementation right now. This option works if you are on a DA with collocation, or if you
> use a DM, but not if you just specify the ISes. We should probably write that code. However, the idea is for people to be moving
> to using DM. Could you tell us why DM did not work for you here?

At the moment, our mesh infrastructure is not plumbed in to use petsc data structures.  We're attempting to migrate to dmplex at the moment but currently we're building Mats from third-party connectivity information.  It's possible that the move to dmplex will happen soon enough that it isn't a big issue, but I don't know the timescales on which we'll be done with that.

Cheers,

Lawrence


More information about the petsc-users mailing list