Reference documentation for deal.II version Git a5ed68a04a 2019-09-22 06:50:58 -0600
\(\newcommand{\dealcoloneq}{\mathrel{\vcenter{:}}=}\)
Public Types | Public Member Functions | List of all members
RelaxationBlockSSOR< MatrixType, InverseNumberType, VectorType > Class Template Reference

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

Inheritance diagram for RelaxationBlockSSOR< 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, InverseNumberType, VectorType >
using size_type = types::global_dof_index
 
- Protected Types inherited from PreconditionBlockBase< InverseNumberType >
enum  Inversion
 
using size_type = types::global_dof_index
 
- Protected Member Functions inherited from RelaxationBlock< MatrixType, InverseNumberType, VectorType >
void do_step (VectorType &dst, const VectorType &prev, const VectorType &src, const bool backward) const
 
void initialize (const MatrixType &A, const AdditionalData &parameters)
 
void clear ()
 
void invert_diagblocks ()
 
- Protected Member Functions inherited from PreconditionBlockBase< InverseNumberType >
 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< InverseNumberType > & inverse (size_type i)
 
const FullMatrix< InverseNumberType > & inverse (size_type i) const
 
Householder< InverseNumberType > & inverse_householder (size_type i)
 
const Householder< InverseNumberType > & inverse_householder (size_type i) const
 
LAPACKFullMatrix< InverseNumberType > & inverse_svd (size_type i)
 
const LAPACKFullMatrix< InverseNumberType > & inverse_svd (size_type i) const
 
FullMatrix< InverseNumberType > & diagonal (size_type i)
 
const FullMatrix< InverseNumberType > & diagonal (size_type i) const
 
void log_statistics () const
 
std::size_t memory_consumption () const
 
- Static Protected Member Functions inherited from PreconditionBlockBase< InverseNumberType >
static ::ExceptionBaseExcDiagonalsNotStored ()
 
static ::ExceptionBaseExcInverseNotAvailable ()
 
- Protected Attributes inherited from RelaxationBlock< MatrixType, InverseNumberType, VectorType >
SmartPointer< const MatrixType, RelaxationBlock< MatrixType, InverseNumberType, VectorType > > A
 
SmartPointer< const AdditionalData, RelaxationBlock< MatrixType, InverseNumberType, VectorType > > additional_data
 
- Protected Attributes inherited from PreconditionBlockBase< InverseNumberType >
Inversion inversion
 

Detailed Description

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

Symmetric 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 in symmetric fashion. Differing from PreconditionBlockSSOR, 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 485 of file relaxation_block.h.

Member Typedef Documentation

◆ number

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

Define number type of matrix.

Definition at line 493 of file relaxation_block.h.

Member Function Documentation

◆ step()

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

Perform one step of the SSOR iteration.

◆ Tstep()

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

Perform one step of the transposed SSOR iteration.

◆ vmult()

template<typename MatrixType , typename InverseNumberType = typename MatrixType::value_type, typename VectorType = Vector<double>>
void RelaxationBlockSSOR< 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 RelaxationBlockSSOR< 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: