File: KSPFETIDP.html

package info (click to toggle)
petsc 3.10.3%2Bdfsg1-5
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 209,064 kB
  • sloc: ansic: 587,333; python: 29,696; makefile: 12,445; fortran: 11,626; f90: 9,677; cpp: 8,768; sh: 1,027; xml: 621; objc: 445; csh: 194; java: 13
file content (79 lines) | stat: -rw-r--r-- 6,308 bytes parent folder | download
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 &lt;false&gt;   : use a fully redundant set of Lagrange multipliers</B></TD><TD>- .   -ksp_fetidp_saddlepoint &lt;false&gt;      : 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 &lt;false&gt; : 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 &lt;</B></TD><TD>- 1&gt;      : 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 &lt;false&gt;     : 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>