deal.II version GIT relicensing-2167-g9622207b8f 2024-11-21 12:40:00+00:00
|
#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 |
Standardized data struct to pipe additional parameters to the preconditioner.
Definition at line 1213 of file trilinos_precondition.h.
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 637 of file trilinos_precondition.cc.
unsigned int TrilinosWrappers::PreconditionChebyshev::AdditionalData::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 1230 of file trilinos_precondition.h.
double TrilinosWrappers::PreconditionChebyshev::AdditionalData::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 1236 of file trilinos_precondition.h.
double TrilinosWrappers::PreconditionChebyshev::AdditionalData::eigenvalue_ratio |
This sets the ratio between the maximum and the minimum eigenvalue.
Definition at line 1241 of file trilinos_precondition.h.
double TrilinosWrappers::PreconditionChebyshev::AdditionalData::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 1247 of file trilinos_precondition.h.
double TrilinosWrappers::PreconditionChebyshev::AdditionalData::min_diagonal |
This sets a threshold below which the diagonal element will not be inverted in the Chebyshev algorithm.
Definition at line 1253 of file trilinos_precondition.h.
bool TrilinosWrappers::PreconditionChebyshev::AdditionalData::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.
Definition at line 1265 of file trilinos_precondition.h.