next up previous contents
Next: Getting Started Up: Multi-level Domain Decomposition Background Previous: Multi-level Schwarz Preconditioners   Contents


Smoothed Aggregation

In order to define the restriction operator $R_C$, which is used to compute the coarse-level matrix $A_C$, MLD2P4 uses the smoothed aggregation algorithm described in [1,25]. The basic idea of this algorithm is to build a coarse set of vertices $W_C$ by suitably grouping the vertices of $W$ into disjoint subsets (aggregates), and to define the coarse-to-fine space transfer operator $R_C^T$ by applying a suitable smoother to a simple piecewise constant prolongation operator, to improve the quality of the coarse-space correction.

Three main steps can be identified in the smoothed aggregation procedure:

  1. coarsening of the vertex set $W$, to obtain $W_C$;
  2. construction of the prolongator $R_C^T$;
  3. application of $R_C$ and $R_C^T$ to build $A_C$.

To perform the coarsening step, we have implemented the aggregation algorithm sketched in [4]. According to [25], a modification of this algorithm has been actually considered, in which each aggregate $N_r$ is made of vertices of $W$ that are strongly coupled to a certain root vertex $r \in W$, i.e.

\begin{displaymath}N_r = \left\{s \in W: \vert a_{rs}\vert > \theta \sqrt{\vert a_{rr}a_{ss}\vert} \right\}
\cup \left\{ r \right\} ,
\end{displaymath}

for a given $\theta \in [0,1]$. Since this algorithm has a sequential nature, a decoupled version of it has been chosen, where each processor $i$ independently applies the algorithm to the set of vertices $W_i^0$ assigned to it in the initial data distribution. This version is embarrassingly parallel, since it does not require any data communication. On the other hand, it may produce non-uniform aggregates near boundary vertices, i.e. near vertices adjacent to vertices in other processors, and is strongly dependent on the number of processors and on the initial partitioning of the matrix $A$. Nevertheless, this algorithm has been chosen for the implementation in MLD2P4, since it has been shown to produce good results in practice [3,4,24].

The prolongator $P_C=R_C^T$ is built starting from a tentative prolongator $P \in \Re^{n \times n_C}$, defined as

\begin{displaymath}
P=(p_{ij}), \quad p_{ij}=
\left\{ \begin{array}{ll}
1 & \qu...
...\in V^j_C \\
0 & \quad \mbox{otherwise}
\end{array} \right. .
\end{displaymath} (2)

$P_C$ is obtained by applying to $P$ a smoother $S \in \Re^{n \times n}$:
\begin{displaymath}
P_C = S P,
\end{displaymath} (3)

in order to remove oscillatory components from the range of the prolongator and hence to improve the convergence properties of the multi-level Schwarz method [1,23]. A simple choice for $S$ is the damped Jacobi smoother:
\begin{displaymath}
S = I - \omega D^{-1} A ,
\end{displaymath} (4)

where the value of $\omega$ can be chosen using some estimate of the spectral radius of $D^{-1}A$ [1].


next up previous contents
Next: Getting Started Up: Multi-level Domain Decomposition Background Previous: Multi-level Schwarz Preconditioners   Contents