Reference documentation for deal.II version 9.2.0
|
#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 (pointwise) SOR preconditioner for Trilinos matrices. This preconditioner works both in serial and in parallel, depending on the matrix it is based on.
The AdditionalData data structure allows to set preconditioner options. For the SOR preconditioner, these options are the damping/relaxation parameter omega
, a min_diagonal
argument that can be used to make the preconditioner work even if the matrix contains some zero elements on the diagonal, and a parameter overlap
that determines if and how much overlap there should be between the matrix partitions on the various MPI processes. The default settings are 1 for the relaxation parameter, 0 for the diagonal augmentation and 0 for the overlap.
Note that a parallel application of the SOR preconditioner is actually a block-Jacobi preconditioner with block size equal to the local matrix size. Spoken more technically, this parallel operation is an additive Schwarz method with an SOR approximate solve as inner solver, based on the outer parallel partitioning.
Definition at line 452 of file trilinos_precondition.h.