PCFieldSplit and Schur
francois pacull
fpacull at fluorem.com
Tue Nov 24 10:46:01 CST 2009
Dear PETSc team,
I am having a little bit of trouble with the Schur option of
PCFieldSplit: I would like to apply some special treatments respectively
to the five first and the two last equations over seven for each grid
node of a CFD linear system...
In the present case, the KSP is "gmres" (or "fgmres" if the PC is
changing), the PC is "asm" (the subdomain IS is defined with
PCASMSetLocalSubdomains in order to always include all the fields
associated to the grid points of the overlap), the SUBKSP is "preonly"
and the SUBPC is "fieldsplit".
So far the FieldSplit options PC_COMPOSITE_ADDITIVE and
PC_COMPOSITE_MULTIPLICATIVE work well with fieldsplit_0 and fieldsplit_1
set to KSPPREONLY and PCILU in the following way:
PCFieldSplitGetSubKSP(SubPC,number_of_split,&FieldSplitKSP);
... [for the fields 0,1,2,3,4 (fieldsplit_0)]
KSPSetType(FieldSplitKSP[0],KSPPREONLY);
KSPGetPC(FieldSplitKSP[0],&FieldSplitPC0);
PCSetType(FieldSplitPC0,PCILU);
... [for the fields 5 and 6 (fieldsplit_1)]
KSPSetType(FieldSplitKSP[1],KSPPREONLY);
KSPGetPC(FieldSplitKSP[1],&FieldSplitPC1);
PCSetType(FieldSplitPC1,PCILU);
...
They also work well when I set the FieldSplitKSP[0] and/or
FieldSplitKSP[1] to KSPGMRES. However, I always get a segmentation
violation when I try to use the FieldSplit option PC_COMPOSITE_SCHUR...
I guess that I am missing something: is there more options to set in
this Schur case?
So far I did not turn on the Schur complement preconditioner option:
PCFieldSplitSchurPrecondition(subpc,PETSC_FALSE);
Is there a book or article describing the methods implemented in this
FieldSplit option?
The version is petsc-3.0.0-p7...
Thank you for your help,
Regards,
francois pacull.
More information about the petsc-users
mailing list