Reference documentation for deal.II version Git 2276b94619 2020-02-28 10:11:55 +0100

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

## Public Member Functions

AdditionalData (const unsigned int degree=1, const double max_eigenvalue=10., const double eigenvalue_ratio=30., const double min_eigenvalue=1., const double min_diagonal=1e-12, const bool nonzero_starting=false)

## Public Attributes

unsigned int degree

double max_eigenvalue

double eigenvalue_ratio

double min_eigenvalue

double min_diagonal

bool nonzero_starting

## Detailed Description

Standardized data struct to pipe additional parameters to the preconditioner.

Definition at line 1253 of file trilinos_precondition.h.

## Constructor & Destructor Documentation

 PreconditionChebyshev< MatrixType, VectorType, PreconditionerType >::AdditionalData::AdditionalData ( const unsigned int degree = 1, const double max_eigenvalue = 10., const double eigenvalue_ratio = 30., const double min_eigenvalue = 1., const double min_diagonal = 1e-12, const bool nonzero_starting = false )

Constructor.

Definition at line 661 of file trilinos_precondition.cc.

## ◆ degree

This determines the degree of the Chebyshev polynomial. The degree of the polynomial gives the number of matrix-vector products to be performed for one application of the vmult() operation.

Definition at line 1270 of file trilinos_precondition.h.

## ◆ max_eigenvalue

This sets the maximum eigenvalue of the matrix, which needs to be set properly for appropriate performance of the Chebyshev preconditioner.

Definition at line 1276 of file trilinos_precondition.h.

## ◆ eigenvalue_ratio

This sets the ratio between the maximum and the minimum eigenvalue.

Definition at line 1281 of file trilinos_precondition.h.

## ◆ min_eigenvalue

This sets the minimum eigenvalue, which is an optional parameter only used internally for checking whether we use an identity matrix.

Definition at line 1287 of file trilinos_precondition.h.

## ◆ min_diagonal

This sets a threshold below which the diagonal element will not be inverted in the Chebyshev algorithm.

Definition at line 1293 of file trilinos_precondition.h.

## ◆ nonzero_starting

When this flag is set to true, it enables the method vmult(dst, src) to use non-zero data in the vector dst, appending to it the Chebyshev corrections. This can be useful in some situations (e.g. when used for high-frequency error smoothing), but not the way the solver classes expect a preconditioner to work (where one ignores the content in dst for the preconditioner application). The user should really know what they are doing when touching this flag.