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
RelaxationBlockJacobi< MatrixType, InverseNumberType, VectorType > Class Template Reference

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

Inheritance diagram for RelaxationBlockJacobi< 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 RelaxationBlockJacobi< MatrixType, InverseNumberType, VectorType >

Block Jacobi (additive Schwarz) method with possibly overlapping blocks.

This class implements the step() and Tstep() functions expected by the relaxation concept. They perform an additive Schwarz method on the blocks provided in the block list of AdditionalData. Differing from PreconditionBlockJacobi, 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 291 of file relaxation_block.h.

Member Typedef Documentation

◆ number

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

Default constructor. Define number type of matrix.

Definition at line 304 of file relaxation_block.h.

Member Function Documentation

◆ step()

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

Perform one step of the Jacobi iteration.

◆ Tstep()

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

Perform one step of the Jacobi iteration.

◆ vmult()

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