[petsc-users] 2 level schur
Luc Berger-Vergiat
lb2653 at columbia.edu
Thu Mar 20 18:20:12 CDT 2014
Hi all,
I am solving a four field problem using two Schur complements. Here are
the arguments that I usually pass to PETSc to do it:
-ksp_type gmres -pc_type fieldsplit -pc_fieldsplit_type schur
-pc_fieldsplit_schur_factorization_type full
-pc_fieldsplit_schur_precondition selfp -pc_fieldsplit_0_fields 2,3
-pc_fieldsplit_1_fields 0,1 -fieldsplit_0_ksp_type preonly
-fieldsplit_0_pc_type fieldsplit -fieldsplit_0_pc_fieldsplit_type
schur -fieldsplit_0_pc_fieldsplit_schur_factorization_type full
-fieldsplit_0_pc_fieldsplit_schur_precondition selfp
-fieldsplit_0_fieldsplit_Field_2_fields 2
-fieldsplit_0_fieldsplit_Field_3_fields 3
-fieldsplit_0_fieldsplit_Field_2_ksp_type preonly
-fieldsplit_0_fieldsplit_Field_2_pc_type ilu
-fieldsplit_0_fieldsplit_Field_3_ksp_type preonly
-fieldsplit_0_fieldsplit_Field_3_pc_type jacobi
-fieldsplit_1_ksp_type preonly -fieldsplit_1_pc_type lu -malloc_log
mlog -log_summary time.log
One issue with this is that when I change
-fieldsplit_0_fieldsplit_Field_2_fields 2 to
-fieldsplit_0_fieldsplit_Field_2_fields 3 it is ineffective, as if PETSc
automatically assign IS 2 to Field 2 even though it is not what I want.
Is there a way to pass the arguments correctly so that PETSc goes about
switching the IS set of -fieldsplit_0_fieldsplit_Field_2 and
-fieldsplit_0_fieldsplit_Field_3?
This is crucial to me since I am using the selfp option and the matrix
associated to IS 3 is diagonal. By assigning the fields correctly I can
get an exact Schur preconditioner and hence very fast convergence. Right
now my convergence is not optimal because of this.
Thanks!
Best,
Luc
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20140320/7cfe174e/attachment-0001.html>
More information about the petsc-users
mailing list