![]() |
deal.II version 9.7.0
|
#include <deal.II/lac/precondition.h>
Base class for PreconditionRelaxation::AdditionalData and PreconditionChebyshev::AdditionalData with relevant information for estimating the eigenvalues.
Definition at line 129 of file precondition.h.

Public Member Functions | |
| EigenvalueAlgorithmAdditionalData (const double smoothing_range, const unsigned int eig_cg_n_iterations, const double eig_cg_residual, const double max_eigenvalue, const EigenvalueAlgorithm eigenvalue_algorithm) | |
| EigenvalueAlgorithmAdditionalData< PreconditionerType > & | operator= (const EigenvalueAlgorithmAdditionalData< PreconditionerType > &other_data) |
Public Attributes | |
| 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 |
| internal::EigenvalueAlgorithmAdditionalData< PreconditionerType >::EigenvalueAlgorithmAdditionalData | ( | const double | smoothing_range, |
| const unsigned int | eig_cg_n_iterations, | ||
| const double | eig_cg_residual, | ||
| const double | max_eigenvalue, | ||
| const EigenvalueAlgorithm | eigenvalue_algorithm ) |
Constructor.
| EigenvalueAlgorithmAdditionalData< PreconditionerType > & internal::EigenvalueAlgorithmAdditionalData< PreconditionerType >::operator= | ( | const EigenvalueAlgorithmAdditionalData< PreconditionerType > & | other_data | ) |
Copy assignment operator.
| double internal::EigenvalueAlgorithmAdditionalData< PreconditionerType >::smoothing_range |
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 159 of file precondition.h.
| unsigned int internal::EigenvalueAlgorithmAdditionalData< PreconditionerType >::eig_cg_n_iterations |
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 167 of file precondition.h.
| double internal::EigenvalueAlgorithmAdditionalData< PreconditionerType >::eig_cg_residual |
Tolerance for iterations performed for finding the maximum eigenvalue by the eigenvalue algorithm (Lanczos or power iteration).
Definition at line 173 of file precondition.h.
| double internal::EigenvalueAlgorithmAdditionalData< PreconditionerType >::max_eigenvalue |
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 180 of file precondition.h.
| ::AffineConstraints<double> internal::EigenvalueAlgorithmAdditionalData< PreconditionerType >::constraints |
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 186 of file precondition.h.
| EigenvalueAlgorithm internal::EigenvalueAlgorithmAdditionalData< PreconditionerType >::eigenvalue_algorithm |
Stores the preconditioner object that the Chebyshev is wrapped around.
Definition at line 191 of file precondition.h.
| std::shared_ptr<PreconditionerType> internal::EigenvalueAlgorithmAdditionalData< PreconditionerType >::preconditioner |
Preconditioner.
Definition at line 196 of file precondition.h.