Reference documentation for deal.II version 9.2.0
\(\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\}}\)
Public Types | Public Member Functions | List of all members
RelaxationBlockSOR< MatrixType, InverseNumberType, VectorType > Class Template Reference

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

Inheritance diagram for RelaxationBlockSOR< MatrixType, InverseNumberType, VectorType >:
[legend]

Public Types

using number = typename MatrixType::value_type
 

Public Member Functions

void step (VectorType &dst, const VectorType &rhs) const
 
void Tstep (VectorType &dst, const VectorType &rhs) const
 
void vmult (VectorType &dst, const VectorType &rhs) const
 
void Tvmult (VectorType &dst, const VectorType &rhs) 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)
 

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)
 
- Protected Types inherited from RelaxationBlock< MatrixType, typename MatrixType::value_type, Vector< double > >
using size_type = types::global_dof_index
 
- Protected Types inherited from PreconditionBlockBase< typename MatrixType::value_type >
enum  Inversion
 
using size_type = types::global_dof_index
 
- Protected Member Functions inherited from RelaxationBlock< MatrixType, typename MatrixType::value_type, Vector< double > >
void do_step (Vector< double > &dst, const Vector< double > &prev, const Vector< double > &src, const bool backward) const
 
void initialize (const MatrixType &A, const AdditionalData &parameters)
 
void clear ()
 
void invert_diagblocks ()
 
- Protected Member Functions inherited from PreconditionBlockBase< typename MatrixType::value_type >
 PreconditionBlockBase (bool store_diagonals=false, Inversion method=gauss_jordan)
 
 ~PreconditionBlockBase ()=default
 
void clear ()
 
void reinit (unsigned int nblocks, size_type blocksize, bool compress, Inversion method=gauss_jordan)
 
void inverses_computed (bool are_they)
 
bool same_diagonal () const
 
bool store_diagonals () const
 
bool inverses_ready () const
 
unsigned int size () const
 
void inverse_vmult (size_type i, Vector< number2 > &dst, const Vector< number2 > &src) const
 
void inverse_Tvmult (size_type i, Vector< number2 > &dst, const Vector< number2 > &src) const
 
FullMatrix< typename MatrixType::value_type > & inverse (size_type i)
 
const FullMatrix< typename MatrixType::value_type > & inverse (size_type i) const
 
Householder< typename MatrixType::value_type > & inverse_householder (size_type i)
 
const Householder< typename MatrixType::value_type > & inverse_householder (size_type i) const
 
LAPACKFullMatrix< typename MatrixType::value_type > & inverse_svd (size_type i)
 
const LAPACKFullMatrix< typename MatrixType::value_type > & inverse_svd (size_type i) const
 
FullMatrix< typename MatrixType::value_type > & diagonal (size_type i)
 
const FullMatrix< typename MatrixType::value_type > & diagonal (size_type i) const
 
void log_statistics () const
 
std::size_t memory_consumption () const
 
- Static Protected Member Functions inherited from PreconditionBlockBase< typename MatrixType::value_type >
static ::ExceptionBaseExcDiagonalsNotStored ()
 
static ::ExceptionBaseExcInverseNotAvailable ()
 
- Protected Attributes inherited from RelaxationBlock< MatrixType, typename MatrixType::value_type, Vector< double > >
SmartPointer< const MatrixType, RelaxationBlock< MatrixType, typename MatrixType::value_type, Vector< double > > > A
 
SmartPointer< const AdditionalData, RelaxationBlock< MatrixType, typename MatrixType::value_type, Vector< double > > > additional_data
 
- Protected Attributes inherited from PreconditionBlockBase< typename MatrixType::value_type >
Inversion inversion
 

Detailed Description

template<typename MatrixType, typename InverseNumberType = typename MatrixType::value_type, typename VectorType = Vector<double>>
class RelaxationBlockSOR< MatrixType, InverseNumberType, VectorType >

Block Gauss-Seidel method with possibly overlapping blocks.

This class implements the step() and Tstep() functions expected by the relaxation concept. They perform a multiplicative Schwarz method on the blocks provided in the block list of AdditionalData. Differing from PreconditionBlockSOR, these blocks may be of varying size, non-contiguous, and overlapping. On the other hand, this class does not implement the preconditioner interface expected by Solver objects.

Author
Guido Kanschat
Date
2010

Definition at line 389 of file relaxation_block.h.

Member Typedef Documentation

◆ number

template<typename MatrixType , typename InverseNumberType = typename MatrixType::value_type, typename VectorType = Vector<double>>
using RelaxationBlockSOR< MatrixType, InverseNumberType, VectorType >::number = typename MatrixType::value_type

Default constructor. Define number type of matrix.

Definition at line 402 of file relaxation_block.h.

Member Function Documentation

◆ step()

template<typename MatrixType , typename InverseNumberType = typename MatrixType::value_type, typename VectorType = Vector<double>>
void RelaxationBlockSOR< MatrixType, InverseNumberType, VectorType >::step ( VectorType dst,
const VectorType rhs 
) const

Perform one step of the SOR iteration.

◆ Tstep()

template<typename MatrixType , typename InverseNumberType = typename MatrixType::value_type, typename VectorType = Vector<double>>
void RelaxationBlockSOR< MatrixType, InverseNumberType, VectorType >::Tstep ( VectorType dst,
const VectorType rhs 
) const

Perform one step of the transposed SOR iteration.

◆ vmult()

template<typename MatrixType , typename InverseNumberType = typename MatrixType::value_type, typename VectorType = Vector<double>>
void RelaxationBlockSOR< MatrixType, InverseNumberType, VectorType >::vmult ( VectorType dst,
const VectorType rhs 
) const

Implements a vmult() operation, which for this class first sets the dst() vector to zero before calling the step() method.

◆ Tvmult()

template<typename MatrixType , typename InverseNumberType = typename MatrixType::value_type, typename VectorType = Vector<double>>
void RelaxationBlockSOR< MatrixType, InverseNumberType, VectorType >::Tvmult ( VectorType dst,
const VectorType rhs 
) const

Implements a transpose vmult operation, which for this class first sets the dst() vector to zero before calling the Tstep() method.


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