Reference documentation for deal.II version 9.1.1
\(\newcommand{\dealcoloneq}{\mathrel{\vcenter{:}}=}\)
Classes | Public Types | Public Member Functions | Private Attributes | List of all members

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

Inheritance diagram for PreconditionRichardson:
[legend]

Classes

class  AdditionalData
 

Public Types

using size_type = types::global_dof_index
 

Public Member Functions

 PreconditionRichardson ()
 
void initialize (const AdditionalData &parameters)
 
template<typename MatrixType >
void initialize (const MatrixType &matrix, const AdditionalData &parameters)
 
template<class VectorType >
void vmult (VectorType &, const VectorType &) const
 
template<class VectorType >
void Tvmult (VectorType &, const VectorType &) const
 
template<class VectorType >
void vmult_add (VectorType &, const VectorType &) const
 
template<class VectorType >
void Tvmult_add (VectorType &, const VectorType &) const
 
void clear ()
 
size_type m () const
 
size_type n () const
 
- Public Member Functions inherited from Subscriptor
 Subscriptor ()
 
 Subscriptor (const Subscriptor &)
 
 Subscriptor (Subscriptor &&) noexcept
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
Subscriptoroperator= (Subscriptor &&) noexcept
 
void subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
void unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
unsigned int n_subscriptions () const
 
template<typename StreamType >
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Private Attributes

double relaxation
 
size_type n_rows
 
size_type n_columns
 

Additional Inherited Members

- Static Public Member Functions inherited from Subscriptor
static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
 
static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
 

Detailed Description

Preconditioning with Richardson's method. This preconditioner just scales the vector with a constant relaxation factor provided by the AdditionalData object.

In Krylov-space methods, this preconditioner should not have any effect. Using SolverRichardson, the two relaxation parameters will be just multiplied. Still, this class is useful in multigrid smoother objects (MGSmootherRelaxation).

Author
Guido Kanschat, 2005; extension for full compatibility with LinearOperator class: Jean-Paul Pelteret, 2015

Definition at line 197 of file precondition.h.

Member Typedef Documentation

◆ size_type

Declare type for container size.

Definition at line 203 of file precondition.h.

Constructor & Destructor Documentation

◆ PreconditionRichardson()

PreconditionRichardson::PreconditionRichardson ( )

Constructor, sets the relaxation parameter, domain and range sizes to their default.

Member Function Documentation

◆ initialize() [1/2]

void PreconditionRichardson::initialize ( const AdditionalData parameters)

Change the relaxation parameter.

◆ initialize() [2/2]

template<typename MatrixType >
void PreconditionRichardson::initialize ( const MatrixType &  matrix,
const AdditionalData parameters 
)

Change the relaxation parameter in a way consistent with other preconditioners. The matrix argument is ignored and here just for compatibility with more complex preconditioners.

◆ vmult()

template<class VectorType >
void PreconditionRichardson::vmult ( VectorType &  ,
const VectorType &   
) const

Apply preconditioner.

◆ Tvmult()

template<class VectorType >
void PreconditionRichardson::Tvmult ( VectorType &  ,
const VectorType &   
) const

Apply transpose preconditioner. Since this is the identity, this function is the same as vmult().

◆ vmult_add()

template<class VectorType >
void PreconditionRichardson::vmult_add ( VectorType &  ,
const VectorType &   
) const

Apply preconditioner, adding to the previous value.

◆ Tvmult_add()

template<class VectorType >
void PreconditionRichardson::Tvmult_add ( VectorType &  ,
const VectorType &   
) const

Apply transpose preconditioner, adding. Since this is the identity, this function is the same as vmult_add().

◆ clear()

void PreconditionRichardson::clear ( )
inline

This function is only present to provide the interface of a preconditioner to be handed to a smoother. This does nothing.

Definition at line 278 of file precondition.h.

◆ m()

size_type PreconditionRichardson::m ( ) const

Return the dimension of the codomain (or range) space. Note that the matrix is of dimension \(m \times n\).

Note
This function should only be called if the preconditioner has been initialized.

◆ n()

size_type PreconditionRichardson::n ( ) const

Return the dimension of the domain space. Note that the matrix is of dimension \(m \times n\).

Note
This function should only be called if the preconditioner has been initialized.

Member Data Documentation

◆ relaxation

double PreconditionRichardson::relaxation
private

The relaxation parameter multiplied with the vectors.

Definition at line 305 of file precondition.h.

◆ n_rows

size_type PreconditionRichardson::n_rows
private

The dimension of the range space.

Definition at line 310 of file precondition.h.

◆ n_columns

size_type PreconditionRichardson::n_columns
private

The dimension of the domain space.

Definition at line 315 of file precondition.h.


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