Reference documentation for deal.II version GIT 49863513f1 20231002 19:40: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 
Standardized data struct to pipe additional parameters to the preconditioner:
ilu_fill:
This specifies the amount of additional fillin 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 986 of file trilinos_precondition.h.
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 491 of file trilinos_precondition.cc.
unsigned int TrilinosWrappers::PreconditionILU::AdditionalData::ilu_fill 
Additional fillin, see class documentation above.
Definition at line 999 of file trilinos_precondition.h.
double TrilinosWrappers::PreconditionILU::AdditionalData::ilu_atol 
The amount of perturbation to add to diagonal entries. See the class documentation above for details.
Definition at line 1005 of file trilinos_precondition.h.
double TrilinosWrappers::PreconditionILU::AdditionalData::ilu_rtol 
Scaling actor for diagonal entries. See the class documentation above for details.
Definition at line 1011 of file trilinos_precondition.h.
unsigned int TrilinosWrappers::PreconditionILU::AdditionalData::overlap 
Overlap between processors. See the class documentation for details.
Definition at line 1016 of file trilinos_precondition.h.