deal.II version GIT relicensing-2169-gec1b43f35b 2024-11-22 07:10:00+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
TrilinosWrappers::PreconditionIC::AdditionalData Struct Reference

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

Public Member Functions

 AdditionalData (const unsigned int ic_fill=0, const double ic_atol=0., const double ic_rtol=1., const unsigned int overlap=0)
 

Public Attributes

unsigned int ic_fill
 
double ic_atol
 
double ic_rtol
 
unsigned int overlap
 

Detailed Description

Standardized data struct to pipe additional parameters to the preconditioner. The Trilinos IC decomposition allows for some fill-in, so it actually is a threshold incomplete Cholesky factorization. The amount of fill-in, and hence, the amount of memory used by this preconditioner, is controlled by the parameter ic_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. ic_atol is an absolute perturbation that is added to the diagonal before forming the prec, and ic_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 860 of file trilinos_precondition.h.

Constructor & Destructor Documentation

◆ AdditionalData()

TrilinosWrappers::PreconditionIC::AdditionalData::AdditionalData ( const unsigned int  ic_fill = 0,
const double  ic_atol = 0.,
const double  ic_rtol = 1.,
const unsigned int  overlap = 0 
)

Constructor. By default, set the drop tolerance to 0, 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 IC in the parallel case makes the preconditioner a so-called additive Schwarz preconditioner.

Definition at line 440 of file trilinos_precondition.cc.

Member Data Documentation

◆ ic_fill

unsigned int TrilinosWrappers::PreconditionIC::AdditionalData::ic_fill

This specifies the amount of additional fill-in elements besides the sparse matrix structure. When ic_fill is large, this means that many fill-ins will be added, so that the IC preconditioner comes closer to a direct sparse Cholesky decomposition. Note, however, that this will drastically increase the memory requirement, especially when the preconditioner is used in 3d.

Definition at line 884 of file trilinos_precondition.h.

◆ ic_atol

double TrilinosWrappers::PreconditionIC::AdditionalData::ic_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 891 of file trilinos_precondition.h.

◆ ic_rtol

double TrilinosWrappers::PreconditionIC::AdditionalData::ic_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 897 of file trilinos_precondition.h.

◆ overlap

unsigned int TrilinosWrappers::PreconditionIC::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 903 of file trilinos_precondition.h.


The documentation for this struct was generated from the following files: