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

> On Mon, Dec 2, 2013 at 2:26 AM, Lawrence Mitchell 
> <lawrence.mitch...@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

Reply via email to