File: PCHPDDM.html

package info (click to toggle)
petsc 3.14.5%2Bdfsg1-4
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 266,472 kB
  • sloc: ansic: 680,898; python: 33,303; cpp: 16,324; makefile: 14,022; f90: 13,731; javascript: 10,713; fortran: 9,581; sh: 1,373; xml: 619; objc: 445; csh: 192; pascal: 148; java: 13
file content (66 lines) | stat: -rw-r--r-- 7,187 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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD> <link rel="canonical" href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/PC/PCHPDDM.html" />
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>PCHPDDM</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
   <div id="version" align=right><b>petsc-3.14.5 2021-03-03</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.14.5 v3.14.5 docs/manualpages/PC/PCHPDDM.html "><small>Report Typos and Errors</small></a></div>
<A NAME="PCHPDDM"><H1>PCHPDDM</H1></A>
Interface with the HPDDM library. This <A HREF="../PC/PC.html#PC">PC</A> may be used to build multilevel spectral domain decomposition methods based on the GenEO framework [2011, 2019]. It may be viewed as an alternative to spectral AMGe or <A HREF="../PC/PCBDDC.html#PCBDDC">PCBDDC</A> with adaptive selection of constraints. A chronological bibliography of relevant publications linked with <A HREF="../PC/PC.html#PC">PC</A> available in HPDDM through <A HREF="../PC/PCHPDDM.html#PCHPDDM">PCHPDDM</A> may be found below.
<P>
The matrix to be preconditioned (Pmat) may be unassembled (<A HREF="../Mat/MATIS.html#MATIS">MATIS</A>) or assembled (<A HREF="../Mat/MATMPIAIJ.html#MATMPIAIJ">MATMPIAIJ</A>, <A HREF="../Mat/MATMPIBAIJ.html#MATMPIBAIJ">MATMPIBAIJ</A>, or <A HREF="../Mat/MATMPISBAIJ.html#MATMPISBAIJ">MATMPISBAIJ</A>). For multilevel preconditioning, when using an assembled Pmat, one must provide an auxiliary local <A HREF="../Mat/Mat.html#Mat">Mat</A> (unassembled local operator for GenEO) using <A HREF="../PC/PCHPDDMSetAuxiliaryMat.html#PCHPDDMSetAuxiliaryMat">PCHPDDMSetAuxiliaryMat</A>(). Calling this routine is not needed when using a <A HREF="../Mat/MATIS.html#MATIS">MATIS</A> Pmat (assembly done internally using <A HREF="../Mat/MatConvert.html#MatConvert">MatConvert</A>).
<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>-pc_hpddm_define_subdomains &lt;true, default=false&gt; </B></TD><TD>- on the finest level, calls <A HREF="../PC/PCASMSetLocalSubdomains.html#PCASMSetLocalSubdomains">PCASMSetLocalSubdomains</A>() with the <A HREF="../IS/IS.html#IS">IS</A> supplied in <A HREF="../PC/PCHPDDMSetAuxiliaryMat.html#PCHPDDMSetAuxiliaryMat">PCHPDDMSetAuxiliaryMat</A>() (only relevant with an assembled Pmat)
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-pc_hpddm_has_neumann &lt;true, default=false&gt; </B></TD><TD>- on the finest level, informs the <A HREF="../PC/PC.html#PC">PC</A> that the local Neumann matrix is supplied in <A HREF="../PC/PCHPDDMSetAuxiliaryMat.html#PCHPDDMSetAuxiliaryMat">PCHPDDMSetAuxiliaryMat</A>()
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-pc_hpddm_coarse_correction &lt;type, default=deflated&gt; </B></TD><TD>- determines the <A HREF="../PC/PCHPDDMCoarseCorrectionType.html#PCHPDDMCoarseCorrectionType">PCHPDDMCoarseCorrectionType</A> when calling <A HREF="../PC/PCApply.html#PCApply">PCApply</A>
</TD></TR></TABLE>
<P>
Options for subdomain solvers, subdomain eigensolvers (for computing deflation vectors), and the coarse solver can be set with
<PRE>
      -pc_hpddm_levels_%d_pc_
      -pc_hpddm_levels_%d_ksp_
      -pc_hpddm_levels_%d_eps_
      -pc_hpddm_levels_%d_p
      -pc_hpddm_levels_%d_mat_type_
      -pc_hpddm_coarse_
      -pc_hpddm_coarse_p
      -pc_hpddm_coarse_mat_type_
</PRE>

e.g., -pc_hpddm_levels_1_sub_pc_type lu -pc_hpddm_levels_1_eps_nev 10 -pc_hpddm_levels_2_p 4 -pc_hpddm_levels_2_sub_pc_type lu -pc_hpddm_levels_2_eps_nev 10 -pc_hpddm_coarse_p 2 -pc_hpddm_coarse_mat_type baij will use 10 deflation vectors per subdomain on the fine "level 1", aggregate the fine subdomains into 4 "level 2" subdomains, then use 10 deflation vectors per subdomain on "level 2", and assemble the coarse matrix (of dimension 4 x 10 = 40) on two processes as a <A HREF="../Mat/MATMPIBAIJ.html#MATMPIBAIJ">MATMPIBAIJ</A> (default is <A HREF="../Mat/MATMPISBAIJ.html#MATMPISBAIJ">MATMPISBAIJ</A>).
<P>
In order to activate a "level N+1" coarse correction, it is mandatory to call -pc_hpddm_levels_N_eps_nev &lt;nu&gt; or -pc_hpddm_levels_N_eps_threshold &lt;val&gt;. The default -pc_hpddm_coarse_p value is 1, meaning that the coarse operator is aggregated on a single process.
<P>
This preconditioner requires that you build PETSc with SLEPc (--download-slepc=1). By default, the underlying concurrent eigenproblems are solved using SLEPc shift-and-invert spectral transformation. This is usually what gives the best performance for GenEO, cf. [2011, 2013]. As stated above, SLEPc options are available through -pc_hpddm_levels_%d_, e.g., -pc_hpddm_levels_1_eps_type arpack -pc_hpddm_levels_1_eps_threshold 0.1 -pc_hpddm_levels_1_st_type sinvert.
<P>
<H3><FONT COLOR="#CC3333">References</FONT></H3>
<TABLE border="0" cellpadding="0" cellspacing="0">
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>2011 </B></TD><TD>- A robust two-level domain decomposition preconditioner for systems of PDEs. Spillane, Dolean, Hauret, Nataf, Pechstein, and Scheichl. Comptes Rendus Mathematique.
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>2013 </B></TD><TD>- Scalable Domain Decomposition Preconditioners For Heterogeneous Elliptic Problems. Jolivet, Hecht, Nataf, and Prud'homme. SC13.
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>2015 </B></TD><TD>- An Introduction to Domain Decomposition Methods: Algorithms, Theory, and Parallel Implementation. Dolean, Jolivet, and Nataf. SIAM.
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>2019 </B></TD><TD>- A Multilevel Schwarz Preconditioner Based on a Hierarchy of Robust Coarse Spaces. Al Daas, Grigori, Jolivet, and Tournier.
</TD></TR></TABLE>
<P>

<P>
<H3><FONT COLOR="#CC3333">See Also</FONT></H3>
  <A HREF="../PC/PCCreate.html#PCCreate">PCCreate</A>(), <A HREF="../PC/PCSetType.html#PCSetType">PCSetType</A>(), <A HREF="../PC/PCType.html#PCType">PCType</A> (for list of available types), <A HREF="../PC/PC.html#PC">PC</A>, <A HREF="../PC/PCHPDDMSetAuxiliaryMat.html#PCHPDDMSetAuxiliaryMat">PCHPDDMSetAuxiliaryMat</A>(), <A HREF="../Mat/MATIS.html#MATIS">MATIS</A>, <A HREF="../PC/PCBDDC.html#PCBDDC">PCBDDC</A>, <A HREF="../PC/PCDEFLATION.html#PCDEFLATION">PCDEFLATION</A>, <A HREF="../PC/PCTELESCOPE.html#PCTELESCOPE">PCTELESCOPE</A>
<BR><P><B></B><H3><FONT COLOR="#CC3333">Level</FONT></H3>intermediate<BR>
<H3><FONT COLOR="#CC3333">Location</FONT></H3>
</B><A HREF="../../../src/ksp/pc/impls/hpddm/hpddm.cxx.html#PCHPDDM">src/ksp/pc/impls/hpddm/hpddm.cxx</A>
<P><H3><FONT COLOR="#CC3333">Examples</FONT></H3>
<A HREF="../../../src/ksp/ksp/tutorials/ex76.c.html">src/ksp/ksp/tutorials/ex76.c.html</A><BR>
<A HREF="../../../src/ksp/ksp/tutorials/ex76f.F90.html">src/ksp/ksp/tutorials/ex76f.F90.html</A><BR>
<BR><A HREF="./index.html">Index of all PC 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>