![]() |
deal.II version GIT relicensing-3075-gc235bd4825 2025-04-15 08:10:00+00:00
|
#include <deal.II/lac/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 |
Base class for PreconditionRelaxation::AdditionalData and PreconditionChebyshev::AdditionalData with relevant information for estimating the eigenvalues.
Definition at line 129 of file precondition.h.
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.