![]() |
Reference documentation for deal.II version 8.1.0
|
#include <precondition_block.h>
Classes | |
class | const_iterator |
Public Types | |
typedef types::global_dof_index | size_type |
Public Member Functions | |
template<typename number2 > | |
void | vmult (Vector< number2 > &, const Vector< number2 > &) const |
template<typename number2 > | |
void | Tvmult (Vector< number2 > &, const Vector< number2 > &) const |
template<typename number2 > | |
void | vmult_add (Vector< number2 > &, const Vector< number2 > &) const |
template<typename number2 > | |
void | Tvmult_add (Vector< number2 > &, const Vector< number2 > &) const |
template<typename number2 > | |
void | step (Vector< number2 > &dst, const Vector< number2 > &rhs) const |
template<typename number2 > | |
void | Tstep (Vector< number2 > &dst, const Vector< number2 > &rhs) const |
const_iterator | begin () const |
const_iterator | end () const |
const_iterator | begin (const size_type r) const |
const_iterator | end (const size_type r) const |
![]() | |
Subscriptor () | |
Subscriptor (const Subscriptor &) | |
virtual | ~Subscriptor () |
Subscriptor & | operator= (const Subscriptor &) |
void | subscribe (const char *identifier=0) const |
void | unsubscribe (const char *identifier=0) const |
unsigned int | n_subscriptions () const |
void | list_subscribers () const |
DeclException3 (ExcInUse, int, char *, std::string &,<< "Object of class "<< arg2<< " is still used by "<< arg1<< " other objects.\n"<< "(Additional information: "<< arg3<< ")\n"<< "Note the entry in the Frequently Asked Questions of "<< "deal.II (linked to from http://www.dealii.org/) for "<< "more information on what this error means.") | |
DeclException2 (ExcNoSubscriber, char *, char *,<< "No subscriber with identifier \""<< arg2<< "\" did subscribe to this object of class "<< arg1) | |
template<class Archive > | |
void | serialize (Archive &ar, const unsigned int version) |
Private Types | |
typedef MATRIX::value_type | number |
![]() | |
typedef types::global_dof_index | size_type |
Private Member Functions | |
template<typename number2 > | |
void | do_vmult (Vector< number2 > &, const Vector< number2 > &, bool adding) const |
![]() | |
PreconditionBlock (bool store_diagonals=false) | |
~PreconditionBlock () | |
void | initialize (const MATRIX &A, const AdditionalData parameters) |
void | clear () |
bool | empty () const |
value_type | el (size_type i, size_type j) const |
void | invert_diagblocks () |
template<typename number2 > | |
void | forward_step (Vector< number2 > &dst, const Vector< number2 > &prev, const Vector< number2 > &src, const bool transpose_diagonal) const |
template<typename number2 > | |
void | backward_step (Vector< number2 > &dst, const Vector< number2 > &prev, const Vector< number2 > &src, const bool transpose_diagonal) const |
size_type | block_size () const |
unsigned int | n_blocks () const DEAL_II_DEPRECATED |
std::size_t | memory_consumption () const |
DeclException2 (ExcWrongBlockSize, int, int,<< "The blocksize "<< arg1<< " and the size of the matrix "<< arg2<< " do not match.") | |
DeclException0 (ExcInverseMatricesAlreadyExist) | |
void | initialize (const MATRIX &A, const std::vector< size_type > &permutation, const std::vector< size_type > &inverse_permutation, const AdditionalData parameters) |
void | set_permutation (const std::vector< size_type > &permutation, const std::vector< size_type > &inverse_permutation) |
void | invert_permuted_diagblocks (const std::vector< size_type > &permutation, const std::vector< size_type > &inverse_permutation) |
Friends | |
class | Accessor |
class | const_iterator |
Additional Inherited Members | |
![]() | |
size_type | blocksize |
SmartPointer< const MATRIX, PreconditionBlock< MATRIX, inverse_type > > | A |
double | relaxation |
std::vector< size_type > | permutation |
std::vector< size_type > | inverse_permutation |
Block Jacobi preconditioning. See PreconditionBlock for requirements on the matrix.
<float> and <double>
; others can be generated in application programs (see the section on Template instantiations in the manual).Definition at line 32 of file precondition_block.h.
|
private |
Define number type of matrix.
Definition at line 484 of file precondition_block.h.
typedef types::global_dof_index PreconditionBlockJacobi< MATRIX, inverse_type >::size_type |
Declare type for container size.
Definition at line 490 of file precondition_block.h.
void PreconditionBlockJacobi< MATRIX, inverse_type >::vmult | ( | Vector< number2 > & | dst, |
const Vector< number2 > & | src | ||
) | const |
Execute block Jacobi preconditioning.
This function will automatically use the inverse matrices if they exist, if not then BlockJacobi will need much time inverting the diagonal block matrices in each preconditioning step.
Definition at line 641 of file precondition_block.templates.h.
void PreconditionBlockJacobi< MATRIX, inverse_type >::Tvmult | ( | Vector< number2 > & | dst, |
const Vector< number2 > & | src | ||
) | const |
Same as vmult
, since Jacobi is symmetric.
Definition at line 651 of file precondition_block.templates.h.
void PreconditionBlockJacobi< MATRIX, inverse_type >::vmult_add | ( | Vector< number2 > & | dst, |
const Vector< number2 > & | src | ||
) | const |
Execute block Jacobi preconditioning, adding to dst
.
This function will automatically use the inverse matrices if they exist, if not then BlockJacobi will need much time inverting the diagonal block matrices in each preconditioning step.
Definition at line 661 of file precondition_block.templates.h.
void PreconditionBlockJacobi< MATRIX, inverse_type >::Tvmult_add | ( | Vector< number2 > & | dst, |
const Vector< number2 > & | src | ||
) | const |
Same as vmult_add
, since Jacobi is symmetric.
Definition at line 671 of file precondition_block.templates.h.
void PreconditionBlockJacobi< MATRIX, inverse_type >::step | ( | Vector< number2 > & | dst, |
const Vector< number2 > & | rhs | ||
) | const |
Perform one step of the Jacobi iteration.
Definition at line 681 of file precondition_block.templates.h.
void PreconditionBlockJacobi< MATRIX, inverse_type >::Tstep | ( | Vector< number2 > & | dst, |
const Vector< number2 > & | rhs | ||
) | const |
Perform one step of the Jacobi iteration.
Definition at line 696 of file precondition_block.templates.h.
const_iterator PreconditionBlockJacobi< MATRIX, inverse_type >::begin | ( | ) | const |
STL-like iterator with the first entry.
const_iterator PreconditionBlockJacobi< MATRIX, inverse_type >::end | ( | ) | const |
Final iterator.
const_iterator PreconditionBlockJacobi< MATRIX, inverse_type >::begin | ( | const size_type | r | ) | const |
STL-like iterator with the first entry of row r
.
const_iterator PreconditionBlockJacobi< MATRIX, inverse_type >::end | ( | const size_type | r | ) | const |
Final iterator of row r
.
|
private |
Actual implementation of the preconditioner.
Depending on adding
, the result of preconditioning is added to the destination vector.
Definition at line 566 of file precondition_block.templates.h.