deal.II version GIT relicensing-6834-g5b78e6bcdf 2026-10-01 11:20:01+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | List of all members
PreconditionRelaxation< MatrixType, PreconditionerType >::AdditionalData Class Reference

#include <deal.II/lac/precondition.h>

Detailed Description

template<typename MatrixType = SparseMatrix<double>, typename PreconditionerType = IdentityMatrix>
class PreconditionRelaxation< MatrixType, PreconditionerType >::AdditionalData

Class for parameters.

Definition at line 585 of file precondition.h.

Inheritance diagram for PreconditionRelaxation< MatrixType, PreconditionerType >::AdditionalData:
[legend]

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, const double safety_factor=1.2)
 

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
 
double safety_factor
 
std::shared_ptr< PreconditionerType > preconditioner
 

Member Typedef Documentation

◆ EigenvalueAlgorithm

template<typename MatrixType = SparseMatrix<double>, typename PreconditionerType = IdentityMatrix>
using PreconditionRelaxation< MatrixType, PreconditionerType >::AdditionalData::EigenvalueAlgorithm = internal::EigenvalueAlgorithm

Definition at line 589 of file precondition.h.

Constructor & Destructor Documentation

◆ AdditionalData()

template<typename MatrixType = SparseMatrix<double>, typename PreconditionerType = IdentityMatrix>
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,
const double  safety_factor = 1.2 
)

Constructor.

Member Data Documentation

◆ relaxation

template<typename MatrixType = SparseMatrix<double>, typename PreconditionerType = IdentityMatrix>
double PreconditionRelaxation< MatrixType, PreconditionerType >::AdditionalData::relaxation

Relaxation parameter.

Definition at line 607 of file precondition.h.

◆ n_iterations

template<typename MatrixType = SparseMatrix<double>, typename PreconditionerType = IdentityMatrix>
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 613 of file precondition.h.

◆ smoothing_range

template<typename PreconditionerType >
double internal::EigenvalueAlgorithmAdditionalData< PreconditionerType >::smoothing_range
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.

◆ eig_cg_n_iterations

template<typename PreconditionerType >
unsigned int internal::EigenvalueAlgorithmAdditionalData< PreconditionerType >::eig_cg_n_iterations
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.

◆ eig_cg_residual

template<typename PreconditionerType >
double internal::EigenvalueAlgorithmAdditionalData< PreconditionerType >::eig_cg_residual
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.

◆ max_eigenvalue

template<typename PreconditionerType >
double internal::EigenvalueAlgorithmAdditionalData< PreconditionerType >::max_eigenvalue
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.

◆ constraints

template<typename PreconditionerType >
::AffineConstraints<double> internal::EigenvalueAlgorithmAdditionalData< PreconditionerType >::constraints
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.

◆ eigenvalue_algorithm

template<typename PreconditionerType >
EigenvalueAlgorithm internal::EigenvalueAlgorithmAdditionalData< PreconditionerType >::eigenvalue_algorithm
inherited

Stores the preconditioner object that the Chebyshev is wrapped around.

Definition at line 190 of file precondition.h.

◆ safety_factor

template<typename PreconditionerType >
double internal::EigenvalueAlgorithmAdditionalData< PreconditionerType >::safety_factor
inherited

Safety factor that is multiplied to the estimated maximum eigenvalue before it is used in the preconditioner. This should be larger than 1 (default: 1.2) to ensure that the maximum eigenvalue is not underestimated.

Definition at line 198 of file precondition.h.

◆ preconditioner

template<typename PreconditionerType >
std::shared_ptr<PreconditionerType> internal::EigenvalueAlgorithmAdditionalData< PreconditionerType >::preconditioner
inherited

Preconditioner.

Definition at line 203 of file precondition.h.


The documentation for this class was generated from the following file: