![]() |
Reference documentation for deal.II version 9.4.2
|
#include <deal.II/lac/trilinos_precondition.h>
Classes | |
| struct | AdditionalData |
Public Types | |
| using | size_type = ::types::global_dof_index |
Public Member Functions | |
| void | initialize (const SparseMatrix &matrix, const AdditionalData &additional_data=AdditionalData()) |
| void | clear () |
| MPI_Comm | get_mpi_communicator () const |
| void | transpose () |
| virtual void | vmult (MPI::Vector &dst, const MPI::Vector &src) const |
| virtual void | vmult (::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 (MPI::Vector &dst, const MPI::Vector &src) const |
| virtual void | Tvmult (::Vector< double > &dst, const ::Vector< double > &src) const |
| virtual void | Tvmult (::LinearAlgebra::distributed::Vector< double > &dst, const ::LinearAlgebra::distributed::Vector< double > &src) const |
Access to underlying Trilinos data | |
| Epetra_Operator & | trilinos_operator () const |
Partitioners | |
| IndexSet | locally_owned_domain_indices () const |
| IndexSet | locally_owned_range_indices () const |
| Teuchos::RCP< Epetra_Operator > | preconditioner |
| Epetra_MpiComm | communicator |
| std::shared_ptr< Epetra_Map > | vector_distributor |
| static ::ExceptionBase & | ExcNonMatchingMaps (std::string arg1) |
Subscriptor functionality | |
Classes derived from Subscriptor provide a facility to subscribe to this object. This is mostly used by the SmartPointer class. | |
| 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) |
| static ::ExceptionBase & | ExcInUse (int arg1, std::string arg2, std::string arg3) |
| static ::ExceptionBase & | ExcNoSubscriber (std::string arg1, std::string arg2) |
| using | map_value_type = decltype(counter_map)::value_type |
| using | map_iterator = decltype(counter_map)::iterator |
| std::atomic< unsigned int > | counter |
| std::map< std::string, unsigned int > | counter_map |
| std::vector< std::atomic< bool > * > | validity_pointers |
| const std::type_info * | object_info |
| static std::mutex | mutex |
| void | check_no_subscribers () const noexcept |
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 733 of file trilinos_precondition.h.