![]() |
Reference documentation for deal.II version 9.6.0
|
#include <deal.II/lac/precondition.h>
Public Types | |
using | EigenvalueAlgorithm = internal::EigenvalueAlgorithm |
Public Member Functions | |
AdditionalData (const double relaxation=1., const unsigned int n_iterations=1, const double smoothing_range=0., const unsigned int eig_cg_n_iterations=8, const double eig_cg_residual=1e-2, const double max_eigenvalue=1, const EigenvalueAlgorithm eigenvalue_algorithm=EigenvalueAlgorithm::lanczos) | |
Public Attributes | |
double | relaxation |
unsigned int | n_iterations |
double | smoothing_range |
unsigned int | eig_cg_n_iterations |
double | eig_cg_residual |
double | max_eigenvalue |
::AffineConstraints< double > | constraints |
EigenvalueAlgorithm | eigenvalue_algorithm |
std::shared_ptr< PreconditionerType > | preconditioner |
Class for parameters.
Definition at line 577 of file precondition.h.
using PreconditionRelaxation< MatrixType, PreconditionerType >::AdditionalData::EigenvalueAlgorithm = internal::EigenvalueAlgorithm |
Definition at line 581 of file precondition.h.
PreconditionRelaxation< MatrixType, PreconditionerType >::AdditionalData::AdditionalData | ( | const double | relaxation = 1., |
const unsigned int | n_iterations = 1, | ||
const double | smoothing_range = 0., | ||
const unsigned int | eig_cg_n_iterations = 8, | ||
const double | eig_cg_residual = 1e-2, | ||
const double | max_eigenvalue = 1, | ||
const EigenvalueAlgorithm | eigenvalue_algorithm = EigenvalueAlgorithm::lanczos ) |
Constructor.
double PreconditionRelaxation< MatrixType, PreconditionerType >::AdditionalData::relaxation |
Relaxation parameter.
Definition at line 598 of file precondition.h.
unsigned int PreconditionRelaxation< MatrixType, PreconditionerType >::AdditionalData::n_iterations |
Number of smoothing steps to be performed in an invocation of vmult() or step().
Definition at line 604 of file precondition.h.
|
inherited |
This sets the range between the largest eigenvalue in the matrix and the smallest eigenvalue to be treated. If the parameter is set to a number less than 1, an estimate for the largest and for the smallest eigenvalue will be calculated internally. For a smoothing range larger than one, the preconditioner will act in the interval \([\lambda_\mathrm{max}/ \tt{smoothing\_range}, \lambda_\mathrm{max}]\), where \(\lambda_\mathrm{max}\) is an estimate of the maximum eigenvalue of the matrix. A choice of smoothing_range
between 5 and 20 is useful in case the preconditioner is used as a smoother in multigrid.
Definition at line 158 of file precondition.h.
|
inherited |
Maximum number of CG iterations performed for finding the maximum eigenvalue. If set to zero, no computations are performed. Instead, the user must supply a largest eigenvalue via the variable PreconditionRelaxation::AdditionalData::max_eigenvalue.
Definition at line 166 of file precondition.h.
|
inherited |
Tolerance for iterations performed for finding the maximum eigenvalue by the eigenvalue algorithm (Lanczos or power iteration).
Definition at line 172 of file precondition.h.
|
inherited |
Maximum eigenvalue to work with. Only in effect if eig_cg_n_iterations
is set to zero, otherwise this parameter is ignored.
Definition at line 179 of file precondition.h.
|
inherited |
Constraints to be used for the operator given. This variable is used to zero out the correct entries when creating an initial guess.
Definition at line 185 of file precondition.h.
|
inherited |
Stores the preconditioner object that the Chebyshev is wrapped around.
Definition at line 190 of file precondition.h.
|
inherited |
Preconditioner.
Definition at line 195 of file precondition.h.