KASKADE 7 development version
Public Types | Public Member Functions | List of all members
Kaskade::ChebyshevPreconditioner< Operator > Class Template Reference

Preconditioner based on the Chebyshev semi-iteration. In order to provide a linear preconditioner the termination criterion based on relative descent in the energy-norm induced by the preconditioner is disabled here. Instead the preconditioner performs a fixed number of iterations thus yielding a linear preconditioner. More...

#include <chebyshev.hh>

Detailed Description

template<class Operator>
class Kaskade::ChebyshevPreconditioner< Operator >

Preconditioner based on the Chebyshev semi-iteration. In order to provide a linear preconditioner the termination criterion based on relative descent in the energy-norm induced by the preconditioner is disabled here. Instead the preconditioner performs a fixed number of iterations thus yielding a linear preconditioner.

Definition at line 159 of file chebyshev.hh.

Inheritance diagram for Kaskade::ChebyshevPreconditioner< Operator >:
Kaskade::ChebyshevSemiIteration< Operator, true >

Public Types

typedef Operator::Domain Domain
 
typedef Operator::Range Range
 

Public Member Functions

 ChebyshevPreconditioner (Operator const &A, size_t steps, size_t verbose=0)
 
virtual void pre (Domain &, Range &)
 
virtual void post (Domain &)
 
virtual void apply (Domain &x, Range const &y)
 
void initForMassMatrix_TetrahedralQ1Elements ()
 Init spectral bounds for the mass matrix arising from tetrahedral discretization of the domain and linear elements. More...
 
void setSteps (size_t steps)
 

Member Typedef Documentation

◆ Domain

typedef Operator::Domain Kaskade::ChebyshevSemiIteration< Operator, isPreconditioner >::Domain
inherited

Definition at line 56 of file chebyshev.hh.

◆ Range

typedef Operator::Range Kaskade::ChebyshevSemiIteration< Operator, isPreconditioner >::Range
inherited

Definition at line 57 of file chebyshev.hh.

Constructor & Destructor Documentation

◆ ChebyshevPreconditioner()

template<class Operator >
Kaskade::ChebyshevPreconditioner< Operator >::ChebyshevPreconditioner ( Operator const &  A,
size_t  steps,
size_t  verbose = 0 
)
inline

Definition at line 162 of file chebyshev.hh.

Member Function Documentation

◆ apply()

virtual void Kaskade::ChebyshevSemiIteration< Operator, isPreconditioner >::apply ( Domain x,
Range const &  y 
)
inlinevirtualinherited

Definition at line 68 of file chebyshev.hh.

◆ initForMassMatrix_TetrahedralQ1Elements()

void Kaskade::ChebyshevSemiIteration< Operator, isPreconditioner >::initForMassMatrix_TetrahedralQ1Elements ( )
inlineinherited

Init spectral bounds for the mass matrix arising from tetrahedral discretization of the domain and linear elements.

According to "Wathen: Realistic eigenvalue bounds for the Galerkin mass matrix" the spectrum of the preconditioned mass matrix is contained in \([\frac{1}{2},\frac{5}{2}]\). For chebyshev semi-iteration the bounds on the spectrum are in general given in the form \( [a-b,a+b] \) yielding the coefficients \(a=1.5,\ b=1\). See Wathen,Rees: "Chebyshev semi-iteration in preconditioning for problems including the mass matrix".

Definition at line 133 of file chebyshev.hh.

◆ post()

virtual void Kaskade::ChebyshevSemiIteration< Operator, isPreconditioner >::post ( Domain )
inlinevirtualinherited

Definition at line 66 of file chebyshev.hh.

◆ pre()

virtual void Kaskade::ChebyshevSemiIteration< Operator, isPreconditioner >::pre ( Domain ,
Range  
)
inlinevirtualinherited

Definition at line 65 of file chebyshev.hh.

◆ setSteps()

void Kaskade::ChebyshevSemiIteration< Operator, isPreconditioner >::setSteps ( size_t  steps)
inlineinherited

Definition at line 143 of file chebyshev.hh.


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