[petsc-users] usefulness of fieldsplit_type schur and fieldsplit_schur_type user
David Nolte
dnolte at dim.uchile.cl
Wed Feb 15 22:47:10 CST 2017
Dear all,
I am trying to use PETSc to solve a steady Stokes problem, discretized
with stable FEM (P2P1) in 2D and 3D. I have been playing around with
different preconditioners to get the hang of things. For my 2D case, for
example, the following setup works well, where fieldsplit_0 is
identified with the velocity dofs and fieldsplit_1 corresponds to the
pressure dofs, and the user defined Schur approximation is the pressure
mass matrix:
-ksp_view
-ksp_converged_reason
-ksp_type fgmres
-ksp_rtol 1.0e-8
-ksp_monitor
-pc_type fieldsplit
-pc_fieldsplit_type schur
-pc_fieldsplit_schur_fact_type upper
-pc_fieldsplit_schur_precondition user
-fieldsplit_0_ksp_type richardson
-fieldsplit_0_ksp_max_it 1
-fieldsplit_0_pc_type hypre
-fieldsplit_0_pc_hypre_type boomeramg
-fieldsplit_1_ksp_type preonly
-fieldsplit_1_pc_type jacobi
However, now I wonder what is the difference between
-pc_fieldsplit_type schur
-pc_fieldsplit_schur_fact_type diag
-pc_fieldsplit_schur_precondition user
and
-pc_fieldsplit_type additive
where the preconditioner matrix would be P = [A, 0; 0, Ŝ] (Ŝ is the same
Schur approximation as above)? And likewise, between "schur_fact_type
lower" and "fieldsplit_type multiplicative", with P = [A, 0; B, Ŝ].
(Except for the generality/flexibility of the Schur approach.)
Is there any advantage of using the Schur approach over the additive
oder multiplicative fieldsplits if I specify the approx. Schur
complement Ŝ? Any reason to prefer one method over the other? The Schur
factorization causes a (very) slightly longer computation time.
Thanks, kind regards
David
More information about the petsc-users
mailing list