[petsc-users] Nullspaces for schur complement PCs
Lawrence Mitchell
lawrence.mitchell at imperial.ac.uk
Fri Nov 7 05:04:59 CST 2014
Hi petsc-dev,
I'm solving a pure Neumann mixed Poisson-like problem, preconditioning with a schur complement. The pressure space has a nullspace of the constant functions and so I attach the appropriate nullspace to the krylov solver, and compose the constant nullspace with the IS defining the pressure space. My RHS is consistent.
When I precondition with:
-pc_type fieldsplit -pc_fieldsplit_type schur -pc_fieldsplit_schur_fact_type full \
-pc_fieldsplit_schur_precondition selfp
I notice that the nullspace is not transferred over to the preconditioning matrix for S. Is this a deliberate choice?
ksp_view output below, note that the schurcomplement mat has an attached nullspace, but the generated pmat does not.
Cheers,
Lawrence
KSP Object: 1 MPI processes
type: gmres
GMRES: restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement
GMRES: happy breakdown tolerance 1e-30
maximum iterations=30, initial guess is zero
tolerances: relative=1e-07, absolute=1e-50, divergence=10000
left preconditioning
has attached null space
using PRECONDITIONED norm type for convergence test
PC Object: 1 MPI processes
type: fieldsplit
FieldSplit with Schur preconditioner, factorization FULL
Preconditioner for the Schur complement formed from Sp, an assembled approximation to S, which uses (the lumped) A00's diagonal's inverse
Split info:
Split number 0 Defined by IS
Split number 1 Defined by IS
KSP solver for A00 block
KSP Object: (fieldsplit_0_) 1 MPI processes
type: gmres
GMRES: restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement
GMRES: happy breakdown tolerance 1e-30
maximum iterations=10000, initial guess is zero
tolerances: relative=1e-05, absolute=1e-50, divergence=10000
left preconditioning
using PRECONDITIONED norm type for convergence test
PC Object: (fieldsplit_0_) 1 MPI processes
type: ilu
ILU: out-of-place factorization
0 levels of fill
tolerance for zero pivot 2.22045e-14
matrix ordering: natural
factor fill ratio given 1, needed 1
Factored matrix follows:
Mat Object: 1 MPI processes
type: seqaij
rows=72, cols=72
package used to perform factorization: petsc
total: nonzeros=1080, allocated nonzeros=1080
total number of mallocs used during MatSetValues calls =0
using I-node routines: found 23 nodes, limit used is 5
linear system matrix = precond matrix:
Mat Object: (fieldsplit_0_) 1 MPI processes
type: seqaij
rows=72, cols=72
total: nonzeros=1080, allocated nonzeros=0
total number of mallocs used during MatSetValues calls =0
using I-node routines: found 23 nodes, limit used is 5
KSP solver for S = A11 - A10 inv(A00) A01
KSP Object: (fieldsplit_1_) 1 MPI processes
type: gmres
GMRES: restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement
GMRES: happy breakdown tolerance 1e-30
maximum iterations=10000, initial guess is zero
tolerances: relative=1e-05, absolute=1e-50, divergence=10000
left preconditioning
using PRECONDITIONED norm type for convergence test
PC Object: (fieldsplit_1_) 1 MPI processes
type: ilu
ILU: out-of-place factorization
0 levels of fill
tolerance for zero pivot 2.22045e-14
matrix ordering: natural
factor fill ratio given 1, needed 1
Factored matrix follows:
Mat Object: 1 MPI processes
type: seqaij
rows=24, cols=24
package used to perform factorization: petsc
total: nonzeros=216, allocated nonzeros=216
total number of mallocs used during MatSetValues calls =0
using I-node routines: found 8 nodes, limit used is 5
linear system matrix followed by preconditioner matrix:
Mat Object: (fieldsplit_1_) 1 MPI processes
type: schurcomplement
rows=24, cols=24
has attached null space
Schur complement A11 - A10 inv(A00) A01
A11
Mat Object: (fieldsplit_1_) 1 MPI processes
type: seqaij
rows=24, cols=24
total: nonzeros=72, allocated nonzeros=0
total number of mallocs used during MatSetValues calls =0
has attached null space
using I-node routines: found 8 nodes, limit used is 5
A10
Mat Object: 1 MPI processes
type: seqaij
rows=24, cols=72
total: nonzeros=288, allocated nonzeros=0
total number of mallocs used during MatSetValues calls =0
using I-node routines: found 8 nodes, limit used is 5
KSP of A00
KSP Object: (fieldsplit_0_) 1 MPI processes
type: gmres
GMRES: restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement
GMRES: happy breakdown tolerance 1e-30
maximum iterations=10000, initial guess is zero
tolerances: relative=1e-05, absolute=1e-50, divergence=10000
left preconditioning
using PRECONDITIONED norm type for convergence test
PC Object: (fieldsplit_0_) 1 MPI processes
type: ilu
ILU: out-of-place factorization
0 levels of fill
tolerance for zero pivot 2.22045e-14
matrix ordering: natural
factor fill ratio given 1, needed 1
Factored matrix follows:
Mat Object: 1 MPI processes
type: seqaij
rows=72, cols=72
package used to perform factorization: petsc
total: nonzeros=1080, allocated nonzeros=1080
total number of mallocs used during MatSetValues calls =0
using I-node routines: found 23 nodes, limit used is 5
linear system matrix = precond matrix:
Mat Object: (fieldsplit_0_) 1 MPI processes
type: seqaij
rows=72, cols=72
total: nonzeros=1080, allocated nonzeros=0
total number of mallocs used during MatSetValues calls =0
using I-node routines: found 23 nodes, limit used is 5
A01
Mat Object: 1 MPI processes
type: seqaij
rows=72, cols=24
total: nonzeros=288, allocated nonzeros=0
total number of mallocs used during MatSetValues calls =0
using I-node routines: found 23 nodes, limit used is 5
Mat Object: 1 MPI processes
type: seqaij
rows=24, cols=24
total: nonzeros=216, allocated nonzeros=216
total number of mallocs used during MatSetValues calls =0
using I-node routines: found 8 nodes, limit used is 5
linear system matrix = precond matrix:
Mat Object: 1 MPI processes
type: nest
rows=96, cols=96
has attached null space
Matrix object:
type=nest, rows=2, cols=2
MatNest structure:
(0,0) : prefix="fieldsplit_0_", type=seqaij, rows=72, cols=72
(0,1) : type=seqaij, rows=72, cols=24
(1,0) : type=seqaij, rows=24, cols=72
(1,1) : prefix="fieldsplit_1_", type=seqaij, rows=24, cols=24
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 455 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20141107/d363d75e/attachment.pgp>
More information about the petsc-users
mailing list