Reference documentation for deal.II version GIT 92344eb39a 20230323 02:40:02+00:00

#include <deal.II/lac/trilinos_precondition.h>
Public Member Functions  
AdditionalData (const double ilut_drop=0., const unsigned int ilut_fill=0, const double ilut_atol=0., const double ilut_rtol=1., const unsigned int overlap=0)  
Public Attributes  
double  ilut_drop 
unsigned int  ilut_fill 
double  ilut_atol 
double  ilut_rtol 
unsigned int  overlap 
Standardized data struct to pipe additional parameters to the preconditioner. The Trilinos ILUT decomposition allows for some fill in, so it actually is a threshold incomplete LU factorization. The amount of fillin, and hence, the amount of memory used by this preconditioner, is controlled by the parameters ilut_drop
and ilut_fill
, which specifies a threshold about which values should form the incomplete factorization and the level of additional fillin. When forming the preconditioner, for certain problems bad conditioning (or just bad luck) can cause the preconditioner to be very poorly conditioned. Hence it can help to add diagonal perturbations to the original matrix and form the preconditioner for this slightly better matrix. ilut_atol
is an absolute perturbation that is added to the diagonal before forming the prec, and ilu_rtol
is a scaling factor \(rtol \geq 1\). The last parameter specifies the overlap of the partitions when the preconditioner runs in parallel.
Definition at line 1100 of file trilinos_precondition.h.
TrilinosWrappers::PreconditionILUT::AdditionalData::AdditionalData  (  const double  ilut_drop = 0. , 
const unsigned int  ilut_fill = 0 , 

const double  ilut_atol = 0. , 

const double  ilut_rtol = 1. , 

const unsigned int  overlap = 0 

) 
Constructor. By default, no element will be dropped, the level of extra fillins is set to be zero (just use the matrix structure, do not generate any additional fillin except the one that results from nondropping large elements), the tolerance level are 0 and 1, respectively, and the overlap in case of a parallel execution is zero. This overlap in a blockapplication of the ILU in the parallel case makes the preconditioner a socalled additive Schwarz preconditioner.
Definition at line 553 of file trilinos_precondition.cc.
double TrilinosWrappers::PreconditionILUT::AdditionalData::ilut_drop 
This specifies the relative size of elements which should be dropped when forming an incomplete LU decomposition with threshold.
Definition at line 1122 of file trilinos_precondition.h.
unsigned int TrilinosWrappers::PreconditionILUT::AdditionalData::ilut_fill 
This specifies the amount of additional fillin elements besides the sparse matrix structure. When ilu_fill
is large, this means that many fillins will be added, so that the ILU 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.
Definition at line 1132 of file trilinos_precondition.h.
double TrilinosWrappers::PreconditionILUT::AdditionalData::ilut_atol 
This specifies the amount of an absolute perturbation that will be added to the diagonal of the matrix, which sometimes can help to get better preconditioners.
Definition at line 1139 of file trilinos_precondition.h.
double TrilinosWrappers::PreconditionILUT::AdditionalData::ilut_rtol 
This specifies the factor by which the diagonal of the matrix will be scaled, which sometimes can help to get better preconditioners.
Definition at line 1145 of file trilinos_precondition.h.
unsigned int TrilinosWrappers::PreconditionILUT::AdditionalData::overlap 
This determines how large the overlap of the local matrix portions on each processor in a parallel application should be.
Definition at line 1151 of file trilinos_precondition.h.