Reference documentation for deal.II version 9.1.1
|
#include <deal.II/lac/trilinos_precondition.h>
Classes | |
struct | AdditionalData |
Public Member Functions | |
void | initialize (const SparseMatrix &matrix, const AdditionalData &additional_data=AdditionalData()) |
Public Member Functions inherited from TrilinosWrappers::PreconditionBase | |
PreconditionBase () | |
PreconditionBase (const PreconditionBase &) | |
~PreconditionBase () override=default | |
void | clear () |
MPI_Comm | get_mpi_communicator () const |
void | transpose () |
virtual void | vmult (MPI::Vector &dst, const MPI::Vector &src) const |
virtual void | Tvmult (MPI::Vector &dst, const MPI::Vector &src) const |
virtual void | vmult (::Vector< double > &dst, const ::Vector< double > &src) const |
virtual void | Tvmult (::Vector< double > &dst, const ::Vector< double > &src) const |
virtual void | vmult (::LinearAlgebra::distributed::Vector< double > &dst, const ::LinearAlgebra::distributed::Vector< double > &src) const |
virtual void | Tvmult (::LinearAlgebra::distributed::Vector< double > &dst, const ::LinearAlgebra::distributed::Vector< double > &src) const |
Epetra_Operator & | trilinos_operator () const |
IndexSet | locally_owned_domain_indices () const |
IndexSet | locally_owned_range_indices () const |
Public Member Functions inherited from Subscriptor | |
Subscriptor () | |
Subscriptor (const Subscriptor &) | |
Subscriptor (Subscriptor &&) noexcept | |
virtual | ~Subscriptor () |
Subscriptor & | operator= (const Subscriptor &) |
Subscriptor & | operator= (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 | |
Public Types inherited from TrilinosWrappers::PreconditionBase | |
using | size_type = ::types::global_dof_index |
Static Public Member Functions inherited from TrilinosWrappers::PreconditionBase | |
static ::ExceptionBase & | ExcNonMatchingMaps (std::string arg1) |
Static Public Member Functions inherited from Subscriptor | |
static ::ExceptionBase & | ExcInUse (int arg1, std::string arg2, std::string arg3) |
static ::ExceptionBase & | ExcNoSubscriber (std::string arg1, std::string arg2) |
Protected Attributes inherited from TrilinosWrappers::PreconditionBase | |
Teuchos::RCP< Epetra_Operator > | preconditioner |
Epetra_MpiComm | communicator |
std::shared_ptr< Epetra_Map > | vector_distributor |
A wrapper class for a block SOR preconditioner for Trilinos matrices. As opposed to PreconditionSOR where each row is treated separately, this scheme collects block of a given size and inverts a full matrix for all these rows simultaneously. Trilinos allows to select several strategies for selecting which rows form a block, including "linear" (i.e., divide the local range of the matrix in slices of the block size), "greedy" or "metis".
The AdditionalData data structure allows to set preconditioner options.
Note that a parallel application of this preconditioner is actually a block-Jacobi preconditioner with (outer) block size equal to the local matrix size. Spoken more technically, this parallel operation is an additive Schwarz method with a block SOR approximate solve as inner solver, based on the outer parallel partitioning.
Definition at line 749 of file trilinos_precondition.h.
void PreconditionBlockSOR< MatrixType, inverse_type >::initialize | ( | const SparseMatrix & | matrix, |
const AdditionalData & | additional_data = AdditionalData() |
||
) |
Take the sparse matrix the preconditioner object should be built of, and additional flags (damping parameter, overlap in parallel computations etc.) if there are any.
Definition at line 413 of file trilinos_precondition.cc.