<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<!--Converted with LaTeX2HTML 2018 (Released Feb 1, 2018) -->
<HTML>
<HEAD>
<TITLE>AMG preconditioners</TITLE>
<META NAME="description" CONTENT="AMG preconditioners">
<META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">

<META NAME="Generator" CONTENT="LaTeX2HTML v2018">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">

<LINK REL="STYLESHEET" HREF="userhtml.css">

<LINK REL="next" HREF="node14.html">
<LINK REL="previous" HREF="node12.html">
<LINK REL="up" HREF="node12.html">
<LINK REL="next" HREF="node14.html">
</HEAD>

<BODY >

<DIV CLASS="navigation"><!--Navigation Panel-->
<A NAME="tex2html249"
  HREF="node14.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
<A NAME="tex2html245"
  HREF="node12.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
<A NAME="tex2html239"
  HREF="node12.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
<A NAME="tex2html247"
  HREF="node2.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
<BR>
<B> Next:</B> <A NAME="tex2html250"
  HREF="node14.html">Smoothed Aggregation</A>
<B> Up:</B> <A NAME="tex2html246"
  HREF="node12.html">Multigrid Background</A>
<B> Previous:</B> <A NAME="tex2html240"
  HREF="node12.html">Multigrid Background</A>
 &nbsp; <B>  <A NAME="tex2html248"
  HREF="node2.html">Contents</A></B> 
<BR>
<BR></DIV>
<!--End of Navigation Panel-->

<H2><A NAME="SECTION00061000000000000000"></A><A NAME="sec:multilevel"></A>
<BR>
AMG preconditioners
</H2><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">In order to describe the AMG preconditioners available in MLD2P4, we consider a
linear system
</BIG></BIG></BIG>
<BR>
<DIV ALIGN="RIGHT" CLASS="mathdisplay">

<!-- MATH
 \begin{equation}
Ax=b,
\end{equation}
 -->
<A NAME="eq:system"></A>
<TABLE WIDTH="100%" ALIGN="CENTER">
<TR VALIGN="MIDDLE"><TD ALIGN="CENTER" NOWRAP><A NAME="eq:system"></A><IMG
 WIDTH="57" HEIGHT="30" BORDER="0"
 SRC="img2.png"
 ALT="\begin{displaymath}
Ax=b,
\end{displaymath}"></TD>
<TD CLASS="eqno" WIDTH=10 ALIGN="RIGHT">
(<SPAN CLASS="arabic">2</SPAN>)</TD></TR>
</TABLE>
<BR CLEAR="ALL"></DIV><P></P><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
where <!-- MATH
 $A=(a_{ij}) \in \mathbb{R}^{n \times n}$
 -->
<SPAN CLASS="MATH"><IMG
 WIDTH="137" HEIGHT="38" ALIGN="MIDDLE" BORDER="0"
 SRC="img5.png"
 ALT="$A=(a_{ij}) \in \mathbb{R}^{n \times n}$"></SPAN> is a nonsingular sparse matrix;
for ease of presentation we assume <SPAN CLASS="MATH"><IMG
 WIDTH="17" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
 SRC="img3.png"
 ALT="$A$"></SPAN> has a symmetric sparsity
pattern.
</BIG></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">Let us consider as finest index space the set of row (column) indices of <SPAN CLASS="MATH"><IMG
 WIDTH="17" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
 SRC="img3.png"
 ALT="$A$"></SPAN>, i.e.,
<!-- MATH
 $\Omega = \{1, 2, \ldots, n\}$
 -->
<SPAN CLASS="MATH"><IMG
 WIDTH="132" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
 SRC="img6.png"
 ALT="$\Omega = \{1, 2, \ldots, n\}$"></SPAN>. 
Any algebraic multilevel preconditioners implemented in MLD2P4 generates
a hierarchy of index spaces and a corresponding hierarchy of matrices,
</BIG></BIG></BIG>
<BR><P></P>
<DIV ALIGN="CENTER" CLASS="mathdisplay">
<!-- MATH
 \begin{displaymath}
\Omega^1 \equiv \Omega \supset \Omega^2 \supset \ldots \supset \Omega^{nlev},
\quad A^1 \equiv A, A^2, \ldots, A^{nlev},
\end{displaymath}
 -->

<IMG
 WIDTH="398" HEIGHT="30" BORDER="0"
 SRC="img7.png"
 ALT="\begin{displaymath}\Omega^1 \equiv \Omega \supset \Omega^2 \supset \ldots \supset \Omega^{nlev},
\quad A^1 \equiv A, A^2, \ldots, A^{nlev}, \end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
by using the information contained in <SPAN CLASS="MATH"><IMG
 WIDTH="17" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
 SRC="img3.png"
 ALT="$A$"></SPAN>, without assuming any
knowledge of the geometry of the problem from which <SPAN CLASS="MATH"><IMG
 WIDTH="17" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
 SRC="img3.png"
 ALT="$A$"></SPAN> originates.
A vector space <!-- MATH
 $\mathbb{R}^{n_{k}}$
 -->
<SPAN CLASS="MATH"><IMG
 WIDTH="34" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
 SRC="img8.png"
 ALT="$\mathbb{R}^{n_{k}}$"></SPAN> is associated with <SPAN CLASS="MATH"><IMG
 WIDTH="25" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
 SRC="img9.png"
 ALT="$\Omega^k$"></SPAN>,
where <SPAN CLASS="MATH"><IMG
 WIDTH="23" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
 SRC="img10.png"
 ALT="$n_k$"></SPAN> is the size of <SPAN CLASS="MATH"><IMG
 WIDTH="25" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
 SRC="img9.png"
 ALT="$\Omega^k$"></SPAN>.
For all <SPAN CLASS="MATH"><IMG
 WIDTH="70" HEIGHT="34" ALIGN="MIDDLE" BORDER="0"
 SRC="img11.png"
 ALT="$k &lt; nlev$"></SPAN>, a restriction operator and a prolongation one are built,
which connect two levels <SPAN CLASS="MATH"><IMG
 WIDTH="14" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
 SRC="img12.png"
 ALT="$k$"></SPAN> and <SPAN CLASS="MATH"><IMG
 WIDTH="44" HEIGHT="34" ALIGN="MIDDLE" BORDER="0"
 SRC="img13.png"
 ALT="$k+1$"></SPAN>:
</BIG></BIG></BIG>
<BR><P></P>
<DIV ALIGN="CENTER" CLASS="mathdisplay">
<!-- MATH
 \begin{displaymath}
P^k \in \mathbb{R}^{n_k \times n_{k+1}}, \quad
    R^k \in \mathbb{R}^{n_{k+1}\times n_k};
\end{displaymath}
 -->

<IMG
 WIDTH="253" HEIGHT="30" BORDER="0"
 SRC="img14.png"
 ALT="\begin{displaymath}
P^k \in \mathbb{R}^{n_k \times n_{k+1}}, \quad
R^k \in \mathbb{R}^{n_{k+1}\times n_k};
\end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
the matrix <SPAN CLASS="MATH"><IMG
 WIDTH="43" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
 SRC="img15.png"
 ALT="$A^{k+1}$"></SPAN> is computed by using the previous operators according
to the Galerkin approach, i.e.,
</BIG></BIG></BIG>
<BR><P></P>
<DIV ALIGN="CENTER" CLASS="mathdisplay">
<!-- MATH
 \begin{displaymath}
A^{k+1}=R^kA^kP^k.
\end{displaymath}
 -->

<IMG
 WIDTH="129" HEIGHT="27" BORDER="0"
 SRC="img16.png"
 ALT="\begin{displaymath}
A^{k+1}=R^kA^kP^k.
\end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
In the current implementation of MLD2P4 we have <SPAN CLASS="MATH"><IMG
 WIDTH="95" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
 SRC="img17.png"
 ALT="$R^k=(P^k)^T$"></SPAN>
A smoother with iteration matrix <SPAN CLASS="MATH"><IMG
 WIDTH="32" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
 SRC="img18.png"
 ALT="$M^k$"></SPAN> is set up at each level <SPAN CLASS="MATH"><IMG
 WIDTH="70" HEIGHT="34" ALIGN="MIDDLE" BORDER="0"
 SRC="img11.png"
 ALT="$k &lt; nlev$"></SPAN>, and a solver
is set up at the coarsest level, so that they are ready for application 
(for example, setting up a solver based on the <SPAN CLASS="MATH"><IMG
 WIDTH="30" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
 SRC="img19.png"
 ALT="$LU$"></SPAN> factorization means computing
and storing the <SPAN CLASS="MATH"><IMG
 WIDTH="17" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
 SRC="img20.png"
 ALT="$L$"></SPAN> and <SPAN CLASS="MATH"><IMG
 WIDTH="18" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
 SRC="img21.png"
 ALT="$U$"></SPAN> factors). The construction of the hierarchy of AMG components
described so far corresponds to the so-called build phase of the preconditioner.
</BIG></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<DIV ALIGN="CENTER"><A NAME="fig:application_alg"></A><A NAME="524"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 1:</STRONG>
Application phase of a V-cycle preconditioner.</CAPTION>
<TR><TD>
<DIV ALIGN="CENTER">
<!-- MATH
 $\framebox{
\begin{minipage}{.85\textwidth}
\begin{tabbing}
\quad \=\quad \=\quad \=\quad \\[-3mm]
procedure V-cycle$\left(k,A^k,b^k,u^k\right)$\  \\[2mm]
\>if $\left(k \ne nlev \right)$\  then \\[1mm]
\>\> $u^k = u^k + M^k \left(b^k - A^k u^k\right)$\  \\[1mm]
\>\> $b^{k+1} = R^{k+1}\left(b^k - A^k u^k\right)$\  \\[1mm]
\>\> $u^{k+1} =$\  V-cycle$\left(k+1,A^{k+1},b^{k+1},0\right)$\  \\[1mm]
\>\> $u^k = u^k + P^{k+1} u^{k+1}$\  \\[1mm]
\>\> $u^k = u^k + M^k \left(b^k - A^k u^k\right)$\  \\[1mm]
\>else \\[1mm]
\>\> $u^k = \left(A^k\right)^{-1} b^k$\\[1mm]
\>endif \\[1mm]
\>return $u^k$\  \\[1mm]
end
\end{tabbing}
\end{minipage}
}$
 -->
<IMG
 WIDTH="333" HEIGHT="336" ALIGN="BOTTOM" BORDER="0"
 SRC="img22.png"
 ALT="\framebox{
\begin{minipage}{.85\textwidth}
\begin{tabbing}
\quad \=\quad \=\quad...
...[1mm]
\&gt;endif \\ [1mm]
\&gt;return $u^k$\ \\ [1mm]
end
\end{tabbing}\end{minipage}}">

</DIV></TD></TR>
</TABLE>
</DIV>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">The components produced in the build phase may be combined in several ways
to obtain different multilevel preconditioners;
this is  done in the application phase, i.e., in the computation of a vector
of type <SPAN CLASS="MATH"><IMG
 WIDTH="82" HEIGHT="21" ALIGN="BOTTOM" BORDER="0"
 SRC="img23.png"
 ALT="$w=B^{-1}v$"></SPAN>, where <SPAN CLASS="MATH"><IMG
 WIDTH="19" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
 SRC="img24.png"
 ALT="$B$"></SPAN> denotes the preconditioner, usually within an iteration
of a Krylov solver [<A
 HREF="node36.html#Saad_book">21</A>]. An example of such a combination, known as
V-cycle, is given in Figure&nbsp;<A HREF="#fig:application_alg">1</A>. In this case, a single iteration
of the same smoother is used before and after the the recursive call to the V-cycle (i.e.,
in the pre-smoothing and post-smoothing phases); however, different choices can be
performed. Other cycles can be defined; in MLD2P4, we implemented the standard V-cycle
and W-cycle&nbsp;[<A
 HREF="node36.html#Briggs2000">3</A>], and a version of the K-cycle described
in&nbsp;[<A
 HREF="node36.html#Notay2008">20</A>].  
</BIG></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
<A NAME="tex2html249"
  HREF="node14.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
<A NAME="tex2html245"
  HREF="node12.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
<A NAME="tex2html239"
  HREF="node12.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
<A NAME="tex2html247"
  HREF="node2.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>  
<BR>
<B> Next:</B> <A NAME="tex2html250"
  HREF="node14.html">Smoothed Aggregation</A>
<B> Up:</B> <A NAME="tex2html246"
  HREF="node12.html">Multigrid Background</A>
<B> Previous:</B> <A NAME="tex2html240"
  HREF="node12.html">Multigrid Background</A>
 &nbsp; <B>  <A NAME="tex2html248"
  HREF="node2.html">Contents</A></B> </DIV>
<!--End of Navigation Panel-->

</BODY>
</HTML>