Reference documentation for deal.II version 9.1.1
\(\newcommand{\dealcoloneq}{\mathrel{\vcenter{:}}=}\)
Classes | Public Member Functions | Private Attributes | List of all members

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

Inheritance diagram for TrilinosWrappers::PreconditionAMGMueLu:
[legend]

Classes

struct  AdditionalData
 

Public Member Functions

 PreconditionAMGMueLu ()
 
virtual ~PreconditionAMGMueLu () override=default
 
void initialize (const SparseMatrix &matrix, const AdditionalData &additional_data=AdditionalData())
 
void initialize (const Epetra_CrsMatrix &matrix, const AdditionalData &additional_data=AdditionalData())
 
void initialize (const SparseMatrix &matrix, Teuchos::ParameterList &muelu_parameters)
 
void initialize (const Epetra_CrsMatrix &matrix, Teuchos::ParameterList &muelu_parameters)
 
template<typename number >
void initialize (const ::SparseMatrix< number > &deal_ii_sparse_matrix, const AdditionalData &additional_data=AdditionalData(), const double drop_tolerance=1e-13, const ::SparsityPattern *use_this_sparsity=nullptr)
 
void clear ()
 
size_type memory_consumption () const
 
- 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 ()
 
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)
 

Private Attributes

std::shared_ptr< SparseMatrixtrilinos_matrix
 

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 ::ExceptionBaseExcNonMatchingMaps (std::string arg1)
 
- 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 Attributes inherited from TrilinosWrappers::PreconditionBase
Teuchos::RCP< Epetra_Operator > preconditioner
 
Epetra_MpiComm communicator
 
std::shared_ptr< Epetra_Map > vector_distributor
 

Detailed Description

This class implements an algebraic multigrid (AMG) preconditioner based on the Trilinos MueLu implementation, which is a black-box preconditioner that works well for many PDE-based linear problems. The interface of PreconditionerAMGMueLu is the same as the interface of PreconditionerAMG except for the higher_order_elements parameter which does not exist in PreconditionerAMGMueLu.

Note
This class requires Trilinos 11.14 or higher. At the moment 64bit-indices are not supported.
Warning
This interface should not be considered as stable.
Author
Bruno Turcksin, 2014

Definition at line 1734 of file trilinos_precondition.h.

Constructor & Destructor Documentation

◆ PreconditionAMGMueLu()

TrilinosWrappers::PreconditionAMGMueLu::PreconditionAMGMueLu ( )

Constructor.

Definition at line 56 of file trilinos_precondition_muelu.cc.

◆ ~PreconditionAMGMueLu()

virtual TrilinosWrappers::PreconditionAMGMueLu::~PreconditionAMGMueLu ( )
overridevirtualdefault

Destructor.

Member Function Documentation

◆ initialize() [1/5]

void TrilinosWrappers::PreconditionAMGMueLu::initialize ( const SparseMatrix matrix,
const AdditionalData additional_data = AdditionalData() 
)

Let Trilinos compute a multilevel hierarchy for the solution of a linear system with the given matrix. The function uses the matrix format specified in TrilinosWrappers::SparseMatrix.

Definition at line 73 of file trilinos_precondition_muelu.cc.

◆ initialize() [2/5]

void TrilinosWrappers::PreconditionAMGMueLu::initialize ( const Epetra_CrsMatrix &  matrix,
const AdditionalData additional_data = AdditionalData() 
)

Let Trilinos compute a multilevel hierarchy for the solution of a linear system with the given matrix. As opposed to the other initialize function above, this function uses an object of type Epetra_CrsMatrixCrs.

Definition at line 82 of file trilinos_precondition_muelu.cc.

◆ initialize() [3/5]

void TrilinosWrappers::PreconditionAMGMueLu::initialize ( const SparseMatrix matrix,
Teuchos::ParameterList &  muelu_parameters 
)

Let Trilinos compute a multilevel hierarchy for the solution of a linear system with the given matrix. The function uses the matrix format specified in TrilinosWrappers::SparseMatrix.

This function is similar to the one above, but allows the user to set most of the options of the Trilinos ML preconditioner. In order to find out about all the options for ML, we refer to the ML documentation page. Not all ML options have a corresponding MueLu option.

Definition at line 186 of file trilinos_precondition_muelu.cc.

◆ initialize() [4/5]

void TrilinosWrappers::PreconditionAMGMueLu::initialize ( const Epetra_CrsMatrix &  matrix,
Teuchos::ParameterList &  muelu_parameters 
)

Let Trilinos compute a multilevel hierarchy for the solution of a linear system with the given matrix. As opposed to the other initialize function above, this function uses an object of type Epetra_CrsMatrix.

Definition at line 195 of file trilinos_precondition_muelu.cc.

◆ initialize() [5/5]

template<typename number >
void TrilinosWrappers::PreconditionAMGMueLu::initialize ( const ::SparseMatrix< number > &  deal_ii_sparse_matrix,
const AdditionalData additional_data = AdditionalData(),
const double  drop_tolerance = 1e-13,
const ::SparsityPattern use_this_sparsity = nullptr 
)

Let Trilinos compute a multilevel hierarchy for the solution of a linear system with the given matrix. This function takes a deal.ii matrix and copies the content into a Trilinos matrix, so the function can be considered rather inefficient.

Definition at line 208 of file trilinos_precondition_muelu.cc.

◆ clear()

void TrilinosWrappers::PreconditionAMGMueLu::clear ( )

Destroys the preconditioner, leaving an object like just after having called the constructor.

Definition at line 240 of file trilinos_precondition_muelu.cc.

◆ memory_consumption()

PreconditionAMGMueLu::size_type TrilinosWrappers::PreconditionAMGMueLu::memory_consumption ( ) const

Prints an estimate of the memory consumption of this class.

Definition at line 249 of file trilinos_precondition_muelu.cc.

Member Data Documentation

◆ trilinos_matrix

std::shared_ptr<SparseMatrix> TrilinosWrappers::PreconditionAMGMueLu::trilinos_matrix
private

A copy of the deal.II matrix into Trilinos format.

Definition at line 1954 of file trilinos_precondition.h.


The documentation for this class was generated from the following files: