[petsc-users] left and right preconditioning with a constant null space

Klaij, Christiaan C.Klaij at marin.nl
Fri Mar 24 03:05:27 CDT 2017


Lawrence,

I think you mean "-fieldsplit_1_mat_null_space_test"? This
doesn't return any info, should it? Anyway, I've added a "call
MatNullSpaceTest" to the code which returns "true" for the null
space of A11.

I also tried to run with "-fieldsplit_1_ksp_constant_null_space"
so that the null space is only attached to S (and not to
A11). Unfortunately, the behaviour is still the same: convergence
in the preconditioned norm only.

Chris


dr. ir. Christiaan Klaij  | Senior Researcher | Research & Development
MARIN | T +31 317 49 33 44 | mailto:C.Klaij at marin.nl | http://www.marin.nl

MARIN news: http://www.marin.nl/web/News/News-items/Trim-wedge-optimization-with-viscous-free-surface-computations-1.htm

________________________________________
From: Lawrence Mitchell <lawrence.mitchell at imperial.ac.uk>
Sent: Thursday, March 23, 2017 4:52 PM
To: Klaij, Christiaan; Matthew Knepley
Cc: petsc-users at mcs.anl.gov
Subject: Re: [petsc-users] left and right preconditioning with a constant null space

On 23/03/17 15:37, Klaij, Christiaan wrote:
> Yes, that's clearer, thanks! I do have is0 and is1 so I can try
> PetscObjectCompose and let you know.
>
> Note though that the viewer reports that both S and A11 have a
> null space attached... My matrix is a matnest and I've attached a
> null space to A11, so the latter works as expected. But is the viewer
> wrong for S?

No, I think this is a consequence of using a matnest and attaching a
nullspace to A11.  In that case you sort of "can" set a nullspace on
the submatrix returned in MatCreateSubMatrix(Amat, is1, is1), because
you just get a reference.  But if you switched to AIJ then you would
no longer get this.

So it happens that the nullspace you set on A11 /is/ transferred over
to S, but this is luck, rather than design.

So maybe there is something else wrong.  Perhaps you can run with
-fieldsplit_1_ksp_test_null_space to check the nullspace matches
correctly?

Lawrence



More information about the petsc-users mailing list