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

More...

#include <jacobiPreconditioner.hh>

Detailed Description

template<class Operator>
class Kaskade::JacobiPreconditioner< Operator >

A simple single-level Jacobi preconditioner.

Template Parameters
Operatorsatisfying the Dune::AssembledLinearOperator concept. Specializations exist for NumaBCRSMatrix and for AssembledGalerkinOperator.

Definition at line 212 of file jacobiPreconditioner.hh.

Inheritance diagram for Kaskade::JacobiPreconditioner< Operator >:
Kaskade::JacobiPreconditionerDetail::JacobiPreconditionerBase< Operator::matrix_type, Operator::domain_type, Operator::range_type > Kaskade::SymmetricPreconditioner< Operator::domain_type, Operator::range_type >

Public Types

using matrix_type = Operator::matrix_type
 
using domain_type = Operator::domain_type
 
using range_type = Operator::range_type
 

Public Member Functions

 JacobiPreconditioner (Operator const &op, double w=1.0)
 Constructor. More...
 
virtual Dune::SolverCategory::Category category () const override
 returns the category of the operator More...
 
virtual void apply (domain_type &x, range_type const &b)
 
virtual field_type applyDp (domain_type &x, range_type const &y)
 
virtual bool requiresInitializedInput () const
 Returns true if the target vector x has to be initialized to zero before calling apply or applyDp. More...
 
virtual void pre (Operator::domain_type &, Operator::range_type &)
 Preconditioner preparation. More...
 
virtual void post (Operator::domain_type &x)
 Preconditioner cleanup. More...
 

Static Public Attributes

static int const category
 

Related Functions

(Note that these are not member functions.)

template<class Operator >
auto makeJacobiPreconditioner (Operator const &op, double w=1.0)
 DEPRECATED, use JacobiPreconditioner(A) directly. More...
 

Member Typedef Documentation

◆ domain_type

using Kaskade::JacobiPreconditionerDetail::JacobiPreconditionerBase< Operator::matrix_type , Operator::domain_type , Operator::range_type >::domain_type = Operator::domain_type
inherited

Definition at line 162 of file jacobiPreconditioner.hh.

◆ matrix_type

using Kaskade::JacobiPreconditionerDetail::JacobiPreconditionerBase< Operator::matrix_type , Operator::domain_type , Operator::range_type >::matrix_type = Operator::matrix_type
inherited

Definition at line 161 of file jacobiPreconditioner.hh.

◆ range_type

using Kaskade::JacobiPreconditionerDetail::JacobiPreconditionerBase< Operator::matrix_type , Operator::domain_type , Operator::range_type >::range_type = Operator::range_type
inherited

Definition at line 163 of file jacobiPreconditioner.hh.

Constructor & Destructor Documentation

◆ JacobiPreconditioner()

template<class Operator >
Kaskade::JacobiPreconditioner< Operator >::JacobiPreconditioner ( Operator const &  op,
double  w = 1.0 
)
inline

Constructor.

Parameters
opthe linear operator to be preconditioned
wthe step size or damping factor. For use as a smoother in multigrid, choose \( w < 1 \), e.g., in 1D w=0.5, in 2D w=0.67, and in 3D w=0.7.

Definition at line 227 of file jacobiPreconditioner.hh.

Member Function Documentation

◆ apply()

virtual void Kaskade::JacobiPreconditionerDetail::JacobiPreconditionerBase< Operator::matrix_type , Operator::domain_type , Operator::range_type >::apply ( domain_type x,
range_type const &  b 
)
inlinevirtualinherited

Definition at line 187 of file jacobiPreconditioner.hh.

◆ applyDp()

virtual field_type Kaskade::JacobiPreconditionerDetail::JacobiPreconditionerBase< Operator::matrix_type , Operator::domain_type , Operator::range_type >::applyDp ( domain_type x,
range_type const &  y 
)
inlinevirtualinherited

◆ category()

virtual Dune::SolverCategory::Category Kaskade::SymmetricPreconditioner< Operator::domain_type , Operator::range_type >::category ( ) const
inlineoverridevirtualinherited

returns the category of the operator

From the Dune doxygen documentation it is unclear what this is supposed to mean. We return a dummy here.

Definition at line 242 of file symmetricOperators.hh.

◆ post()

virtual void Kaskade::SymmetricPreconditioner< Operator::domain_type , Operator::range_type >::post ( Operator::domain_type &  x)
inlinevirtualinherited

Preconditioner cleanup.

The provided default implementation does nothing.

Definition at line 225 of file symmetricOperators.hh.

◆ pre()

virtual void Kaskade::SymmetricPreconditioner< Operator::domain_type , Operator::range_type >::pre ( Operator::domain_type &  ,
Operator::range_type &   
)
inlinevirtualinherited

Preconditioner preparation.

The provided default implementation does nothing.

Definition at line 218 of file symmetricOperators.hh.

◆ requiresInitializedInput()

virtual bool Kaskade::JacobiPreconditionerDetail::JacobiPreconditionerBase< Operator::matrix_type , Operator::domain_type , Operator::range_type >::requiresInitializedInput ( ) const
inlinevirtualinherited

Returns true if the target vector x has to be initialized to zero before calling apply or applyDp.

Implements Kaskade::SymmetricPreconditioner< Operator::domain_type, Operator::range_type >.

Definition at line 194 of file jacobiPreconditioner.hh.

Member Data Documentation

◆ category

int const Kaskade::JacobiPreconditionerDetail::JacobiPreconditionerBase< Operator::matrix_type , Operator::domain_type , Operator::range_type >::category
staticinherited

Definition at line 159 of file jacobiPreconditioner.hh.


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