1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD> <link rel="canonical" href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/KSP/KSPFETIDP.html" />
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>KSPFETIDP</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<div id="version" align=right><b>petsc-3.10.3 2018-12-18</b></div>
<div id="bugreport" align=right><a href="mailto:petsc-maint@mcs.anl.gov?subject=Typo or Error in Documentation &body=Please describe the typo or error in the documentation: petsc-3.10.3 v3.10.3 docs/manualpages/KSP/KSPFETIDP.html "><small>Report Typos and Errors</small></a></div>
<A NAME="KSPFETIDP"><H1>KSPFETIDP</H1></A>
The FETI-DP method This class implements the FETI-DP method [1].
The matrix for the <A HREF="../KSP/KSP.html#KSP">KSP</A> must be of type <A HREF="../Mat/MATIS.html#MATIS">MATIS</A>.
The FETI-DP linear system (automatically generated constructing an internal <A HREF="../PC/PCBDDC.html#PCBDDC">PCBDDC</A> object) is solved using an internal <A HREF="../KSP/KSP.html#KSP">KSP</A> object.
<P>
<H3><FONT COLOR="#CC3333">Options Database Keys</FONT></H3>
<TABLE border="0" cellpadding="0" cellspacing="0">
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-ksp_fetidp_fullyredundant <false> : use a fully redundant set of Lagrange multipliers</B></TD><TD>- . -ksp_fetidp_saddlepoint <false> : activates support for saddle point problems, see [2]
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-ksp_fetidp_saddlepoint_flip <false> : usually, an incompressible Stokes problem is written as</B></TD><TD>- | A B^T | | v | = | f |
| B 0 | | p | = | g |
with B representing -\int_\Omega \nabla \cdot u q.
If -ksp_fetidp_saddlepoint_flip is true, the code assumes that the user provides it as
| A B^T | | v | = | f |
|-B 0 | | p | = |-g |
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-ksp_fetidp_pressure_field <</B></TD><TD>- 1> : activates support for saddle point problems, and identifies the pressure field id.
If this information is not provided, the pressure field is detected by using <A HREF="../Mat/MatFindZeroDiagonals.html#MatFindZeroDiagonals">MatFindZeroDiagonals</A>().
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-ksp_fetidp_pressure_all <false> : if false, uses the interface pressures, as described in [2]. If true, uses the entire pressure field.</B></TD><TD>-
</TD></TR></TABLE>
<P>
<H3><FONT COLOR="#CC3333">Notes</FONT></H3>
Options for the inner <A HREF="../KSP/KSP.html#KSP">KSP</A> and for the customization of the <A HREF="../PC/PCBDDC.html#PCBDDC">PCBDDC</A> object can be specified at command line by using the prefixes -fetidp_ and -fetidp_bddc_. E.g.,
<PRE>
-fetidp_ksp_type gmres -fetidp_bddc_pc_bddc_symmetric false
</PRE>
will use GMRES for the solution of the linear system on the Lagrange multipliers, generated using a non-symmetric <A HREF="../PC/PCBDDC.html#PCBDDC">PCBDDC</A>.
<P>
For saddle point problems with continuous pressures, the preconditioned operator for the pressure solver can be specified with <A HREF="../KSP/KSPFETIDPSetPressureOperator.html#KSPFETIDPSetPressureOperator">KSPFETIDPSetPressureOperator</A>().
Alternatively, the pressure operator is extracted from the precondioned matrix (if it is different from the linear solver matrix).
If none of the above, an identity matrix will be created; the user then needs to scale it through a Richardson solver.
Options for the pressure solver can be prefixed with -fetidp_fielsplit_p_, E.g.
<PRE>
-fetidp_fielsplit_p_ksp_type preonly -fetidp_fielsplit_p_pc_type lu -fetidp_fielsplit_p_pc_factor_mat_solver_type mumps
</PRE>
In order to use the deluxe version of FETI-DP, you must customize the inner BDDC operator with -fetidp_bddc_pc_bddc_use_deluxe_scaling -fetidp_bddc_pc_bddc_deluxe_singlemat and use
non-redundant multipliers, i.e. -ksp_fetidp_fullyredundant false. Options for the scaling solver are prefixed by -fetidp_bddelta_, E.g.
<PRE>
-fetidp_bddelta_pc_factor_mat_solver_type mumps -fetidp_bddelta_pc_type lu
</PRE>
<P>
Some of the basic options such as the maximum number of iterations and tolerances are automatically passed from this <A HREF="../KSP/KSP.html#KSP">KSP</A> to the inner <A HREF="../KSP/KSP.html#KSP">KSP</A> that actually performs the iterations.
<P>
The converged reason and number of iterations computed are passed from the inner <A HREF="../KSP/KSP.html#KSP">KSP</A> to this <A HREF="../KSP/KSP.html#KSP">KSP</A> at the end of the solution.
<P>
<H3><FONT COLOR="#CC3333">Developer Notes</FONT></H3>
Even though this method does not directly use any norms, the user is allowed to set the <A HREF="../KSP/KSPNormType.html#KSPNormType">KSPNormType</A> to any value.
This is so users do not have to change <A HREF="../KSP/KSPNormType.html#KSPNormType">KSPNormType</A> options when they switch from other <A HREF="../KSP/KSP.html#KSP">KSP</A> methods to this one.
<P>
<H3><FONT COLOR="#CC3333">References</FONT></H3>
<PRE>
. [1] - C. Farhat, M. Lesoinne, P. LeTallec, K. Pierson, and D. Rixen, FETI-DP: a dual-primal unified FETI method. I. A faster alternative to the two-level FETI method, Internat. J. Numer. Methods Engrg., 50 (2001), pp. 1523--1544
. [2] - X. Tu, J. Li, A FETI-DP type domain decomposition algorithm for three-dimensional incompressible Stokes equations, SIAM J. Numer. Anal., 53 (2015), pp. 720-742
</PRE>
<P>
<H3><FONT COLOR="#CC3333">See Also</FONT></H3>
<A HREF="../Mat/MATIS.html#MATIS">MATIS</A>, <A HREF="../PC/PCBDDC.html#PCBDDC">PCBDDC</A>, <A HREF="../KSP/KSPFETIDPSetInnerBDDC.html#KSPFETIDPSetInnerBDDC">KSPFETIDPSetInnerBDDC</A>(), <A HREF="../KSP/KSPFETIDPGetInnerBDDC.html#KSPFETIDPGetInnerBDDC">KSPFETIDPGetInnerBDDC</A>(), <A HREF="../KSP/KSPFETIDPGetInnerKSP.html#KSPFETIDPGetInnerKSP">KSPFETIDPGetInnerKSP</A>()
<BR><P><B></B><H3><FONT COLOR="#CC3333">Level</FONT></H3>Advanced<BR>
<H3><FONT COLOR="#CC3333">Location</FONT></H3>
</B><A HREF="../../../src/ksp/ksp/impls/fetidp/fetidp.c.html#KSPFETIDP">src/ksp/ksp/impls/fetidp/fetidp.c</A>
<BR><A HREF="./index.html">Index of all KSP routines</A>
<BR><A HREF="../../index.html">Table of Contents for all manual pages</A>
<BR><A HREF="../singleindex.html">Index of all manual pages</A>
</BODY></HTML>
|