deal.II version GIT relicensing-2076-g6b43d56a25 2024-11-02 12:30:00+00:00
|
#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 576 of file precondition.h.
using PreconditionRelaxation< MatrixType, PreconditionerType >::AdditionalData::EigenvalueAlgorithm = internal::EigenvalueAlgorithm |
Definition at line 580 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 597 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 603 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 157 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 165 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 171 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 178 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 184 of file precondition.h.
|
inherited |
Stores the preconditioner object that the Chebyshev is wrapped around.
Definition at line 189 of file precondition.h.
|
inherited |
Preconditioner.
Definition at line 194 of file precondition.h.