22.09.2013 Views

Chapter 1 parallel sparse solver - freeFEM.org

Chapter 1 parallel sparse solver - freeFEM.org

Chapter 1 parallel sparse solver - freeFEM.org

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

20 CHAPTER 1. PARALLEL SPARSE SOLVER<br />

dparm[0] HIPS PREC: Relative residual norm: Default=1e-9<br />

dparm[1] HIPS DROPTOL0: Numerical threshold in ILUT for interior domain<br />

(important : set 0.0 in HYBRID: Default=0.005)<br />

HIPS DROPTOL1 : Numerical threshold in ILUT for<br />

dparm[2]<br />

Schur preconditioner: Default=0.005<br />

dparm[3] HIPS DROPTOLE : Numerical threshold for coupling between the<br />

interior level and Schur: Default 0.005<br />

dparm[4] HIPS AMALG : Numerical threshold for coupling between the<br />

interior level and Schur: Default=0.005<br />

dparm[5] HIPS DROPS CHUR : Numerical threshold for coupling between the<br />

interior level and Schur: Default=0.005<br />

Table 1.12: Significations of dparams corresponding to HIPS interface<br />

1.3.3 Interfacing with HYPRE<br />

HYPRE ( High Level Preconditionner) is a suite of <strong>parallel</strong> preconditionner developped at Lawrence<br />

Livermore National Lab [19] . They are two main classes of preconditionners developped in<br />

HYPRE: AMG (Algebraic MultiGrid) and Parasails (Parallel Sparse Approximate Inverse).<br />

Suppose we want to solve Ax = b. At the heart of AMG is a series of progressively coarser(smaller)<br />

representations of the matrix A. Given an approximation ˆx to the solution x, consider solving the<br />

residual equation Ae = r to find the error e, where r = b − A ˆx. A fundamental principle of AMG<br />

is that it is an algebraically smooth error. To reduce the algebraically smooth errors further, they<br />

need to be represented by a smaller defect equation (coarse grid residual equation) Acec = rc,<br />

which is cheaper to solve. After solving this coarse equation, the solution is then interpolated in<br />

fine grid represented here by matrix A. The quality of AMG depends on the choice of coarsening<br />

and interpolating operators.<br />

The <strong>sparse</strong> approximate inverse approximates the inverse of a matrix A by a <strong>sparse</strong> matrix M.<br />

A technical idea to construct matrix M is to minimize the Frobenuis norm of the residual matrix<br />

I − MA. For more details on this preconditioner technic see [29].<br />

HYPRE implement three Krylov subspace <strong>solver</strong>s like GMRES, PCG and BiCGStab.<br />

Installation of HYPRE To install HYPRE, first download HYPRE package at [19], unpack and<br />

go to HYPRE/src source directory and do ./configure to configure Hypre. After this just type make<br />

all to create libHYPRE.a.<br />

Using HYPRE as interface to FreeFem++ Before calling HYPRE <strong>solver</strong> inside FreeFem++,<br />

you must compile file hypre FreeFem.cpp to create dynamic library hypre FreeFem.so. To do<br />

this, move to the directory src/<strong>solver</strong> of FreeFem++, edit file make f ile.inc to specify the following<br />

variables:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!