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 |
ilu_fill
, which specifies this as a double. 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. ilu_atol
is an absolute perturbation that is added to the diagonal before forming the prec, and ilu_rtol
is a scaling factor 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. By default, the level of extra fill-ins is set to be zero (just use the matrix structure, do not generate any additional fill-in), the tolerance level are 0 and 1, respectively, and the overlap in case of a parallel execution is zero. This overlap in a block-application of the ILU in the parallel case makes the preconditioner a so-called additive Schwarz preconditioner.
This specifies the amount of additional fill-in elements besides the sparse matrix structure. When ilu_fill
is large, this means that many fill-ins 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.
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.
This specifies the factor by which the diagonal of the matrix will be scaled, which sometimes can help to get better preconditioners.
This determines how large the overlap of the local matrix portions on each processor in a parallel application should be.