Reference documentation for deal.II version GIT 6bdf9a4b6c 2022-08-12 19:20:02+00:00

#include <deal.II/lac/trilinos_precondition.h>

## Public Member Functions

AdditionalData (const unsigned int ilu_fill=0, const double ilu_atol=0., const double ilu_rtol=1., const unsigned int overlap=0)

## Public Attributes

unsigned int ilu_fill

double ilu_atol

double ilu_rtol

unsigned int overlap

## Detailed Description

Standardized data struct to pipe additional parameters to the preconditioner:

• ilu_fill: This specifies the amount of additional fill-in elements besides the original sparse matrix structure. If $$k$$ is fill, the sparsity pattern of $$A^{k+1}$$ is used for the storage of the result of the Gaussian elimination. This is known as ILU( $$k$$) in the literature. When fill is large, the preconditioner comes closer to a (direct) sparse LU decomposition. Note, however, that this will drastically increase the memory requirement, especially when the preconditioner is used in 3D.

• ilu_atol and ilu_rtol: These two parameters allow perturbation of the diagonal of the matrix, which sometimes can help to get better preconditioners especially in the case of bad conditioning. Before factorization, the diagonal entry $$a_{ii}$$ is replaced by $$\alpha sign(a_{ii}) + \beta a_{ii}$$, where $$\alpha\geq 0$$ is the absolute threshold ilu_atol and $$\beta\geq 1$$ is the relative threshold ilu_rtol. The default values ( $$\alpha = 0$$, $$\beta = 1$$) therefore use the original, unmodified diagonal entry. Suggested values are in the order of $$10^{-5}$$ to $$10^{-2}$$ for ilu_atol and 1.01 for ilu_rtol.

• overlap: This determines how large the overlap of the local matrix portions on each processor in a parallel application should be. An overlap of 0 corresponds to a block diagonal decomposition on each processor, an overlap of 1 will additionally include a row j if there is a nonzero entry in column j in one of the own rows. Higher overlap numbers work accordingly in a recursive fashion. Increasing overlap will increase communication and storage cost. According to the IFPACK documentation, an overlap of 1 is often effective and values of more than 3 are rarely needed.

Definition at line 1002 of file trilinos_precondition.h.

## Constructor & Destructor Documentation

 TrilinosWrappers::PreconditionILU::AdditionalData::AdditionalData ( const unsigned int ilu_fill = 0, const double ilu_atol = 0., const double ilu_rtol = 1., const unsigned int overlap = 0 )

Constructor with default values for all parameters.

Definition at line 502 of file trilinos_precondition.cc.

## ◆ ilu_fill

Additional fill-in, see class documentation above.

Definition at line 1015 of file trilinos_precondition.h.

## ◆ ilu_atol

The amount of perturbation to add to diagonal entries. See the class documentation above for details.

Definition at line 1021 of file trilinos_precondition.h.

## ◆ ilu_rtol

Scaling actor for diagonal entries. See the class documentation above for details.

Definition at line 1027 of file trilinos_precondition.h.