Fluid structure interaction suite
ParsedLAC::JacobiPreconditioner Class Reference

A parsed Jacobi preconditioner which uses parameter files to choose between different options. More...

#include <jacobi.h>

Inheritance diagram for ParsedLAC::JacobiPreconditioner:
[legend]

Public Member Functions

 JacobiPreconditioner (const std::string &name="", const double &omega=1, const double &min_diagonal=0, const unsigned int &n_sweeps=1)
 Constructor. More...
 
template<typename Matrix >
void initialize_preconditioner (const Matrix &matrix)
 Initialize the preconditioner using matrix. More...
 
- Public Member Functions inherited from ParameterAcceptor
 ParameterAcceptor (const std::string &section_name="")
 
unsigned int get_acceptor_id () const
 
virtual ~ParameterAcceptor () override
 
virtual void declare_parameters (ParameterHandler &prm)
 
virtual void parse_parameters (ParameterHandler &prm)
 
std::string get_section_name () const
 
std::vector< std::string > get_section_path () const
 
void add_parameter (const std::string &entry, ParameterType &parameter, const std::string &documentation="", ParameterHandler &prm_=prm, const Patterns::PatternBase &pattern=*Patterns::Tools::Convert< ParameterType >::to_pattern())
 
void enter_subsection (const std::string &subsection)
 
void leave_subsection ()
 
void enter_my_subsection (ParameterHandler &prm)
 
void leave_my_subsection (ParameterHandler &prm)
 
void serialize (Archive &ar, const unsigned int version)
 
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
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
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
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
- Public Member Functions inherited from Subscriptor
 Subscriptor ()
 
 Subscriptor (const Subscriptor &)
 
 Subscriptor (Subscriptor &&) noexcept
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
Subscriptoroperator= (Subscriptor &&) noexcept
 
void serialize (Archive &ar, const unsigned int version)
 
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
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
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
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
- Public Member Functions inherited from TrilinosWrappers::PreconditionJacobi
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
 
void serialize (Archive &ar, const unsigned int version)
 
Epetra_Operatortrilinos_operator () const
 
IndexSet locally_owned_domain_indices () const
 
IndexSet locally_owned_range_indices () const
 
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
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
Epetra_Operatortrilinos_operator () const
 
IndexSet locally_owned_domain_indices () const
 
IndexSet locally_owned_range_indices () const
 
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
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
- Public Member Functions inherited from TrilinosWrappers::PreconditionBase
 PreconditionBase ()
 
void clear ()
 
MPI_Comm get_mpi_communicator () const
 
void transpose ()
 
void serialize (Archive &ar, const unsigned int version)
 
Epetra_Operatortrilinos_operator () const
 
IndexSet locally_owned_domain_indices () const
 
IndexSet locally_owned_range_indices () const
 
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
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
Epetra_Operatortrilinos_operator () const
 
IndexSet locally_owned_domain_indices () const
 
IndexSet locally_owned_range_indices () const
 
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
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 

Private Member Functions

void add_parameters ()
 Declare preconditioner options. More...
 

Private Attributes

double omega
 This specifies the relaxation parameter in the Jacobi preconditioner. More...
 
double min_diagonal
 This specifies the minimum value the diagonal elements should have. More...
 
unsigned int n_sweeps
 Sets how many times the given operation should be applied during the vmult() operation. More...
 

Additional Inherited Members

- Public Types inherited from TrilinosWrappers::PreconditionJacobi
typedef ::types::global_dof_index size_type
 
- Public Types inherited from TrilinosWrappers::PreconditionBase
typedef ::types::global_dof_index size_type
 
- Static Public Member Functions inherited from ParameterAcceptor
static void initialize (const std::string &filename="", const std::string &output_filename="", const ParameterHandler::OutputStyle output_style_for_output_filename=ParameterHandler::Short, ParameterHandler &prm=ParameterAcceptor::prm, const ParameterHandler::OutputStyle output_style_for_filename=ParameterHandler::DefaultStyle)
 
static void initialize (std::istream &input_stream, ParameterHandler &prm=ParameterAcceptor::prm)
 
static void clear ()
 
static void parse_all_parameters (ParameterHandler &prm=ParameterAcceptor::prm)
 
static void declare_all_parameters (ParameterHandler &prm=ParameterAcceptor::prm)
 
static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
 
static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
 
- 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)
 
- Static Public Member Functions inherited from TrilinosWrappers::PreconditionJacobi
static ::ExceptionBaseExcNonMatchingMaps (std::string arg1)
 
static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
 
static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
 
- Static Public Member Functions inherited from TrilinosWrappers::PreconditionBase
static ::ExceptionBaseExcNonMatchingMaps (std::string arg1)
 
static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
 
static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
 
- Public Attributes inherited from ParameterAcceptor
boost::signals2::signal< void()> declare_parameters_call_back
 
boost::signals2::signal< void()> parse_parameters_call_back
 
- Static Public Attributes inherited from ParameterAcceptor
static ParameterHandler prm
 
- Protected Attributes inherited from ParameterAcceptor
const std::string section_name
 
std::vector< std::string > subsections
 
- Protected Attributes inherited from TrilinosWrappers::PreconditionJacobi
Teuchos::RCP< Epetra_Operatorpreconditioner
 
Epetra_MpiComm communicator
 
- Protected Attributes inherited from TrilinosWrappers::PreconditionBase
Teuchos::RCP< Epetra_Operatorpreconditioner
 
Epetra_MpiComm communicator
 

Detailed Description

A parsed Jacobi preconditioner which uses parameter files to choose between different options.

This object is a TrilinosWrappers::PreconditionJacobi which can be called in place of the preconditioner.

Definition at line 36 of file jacobi.h.

Constructor & Destructor Documentation

◆ JacobiPreconditioner()

ParsedLAC::JacobiPreconditioner::JacobiPreconditioner ( const std::string &  name = "",
const double &  omega = 1,
const double &  min_diagonal = 0,
const unsigned int &  n_sweeps = 1 
)

Constructor.

Build the preconditioner of a matrix using Jacobi.

Definition at line 24 of file jacobi.cc.

References add_parameters().

Member Function Documentation

◆ initialize_preconditioner()

template<typename Matrix >
void ParsedLAC::JacobiPreconditioner::initialize_preconditioner ( const Matrix &  matrix)

◆ add_parameters()

void ParsedLAC::JacobiPreconditioner::add_parameters ( )
private

Declare preconditioner options.

Definition at line 38 of file jacobi.cc.

References ParameterAcceptor::add_parameter(), min_diagonal, n_sweeps, and omega.

Referenced by JacobiPreconditioner().

Member Data Documentation

◆ omega

double ParsedLAC::JacobiPreconditioner::omega
private

This specifies the relaxation parameter in the Jacobi preconditioner.

Definition at line 69 of file jacobi.h.

Referenced by add_parameters(), and initialize_preconditioner().

◆ min_diagonal

double ParsedLAC::JacobiPreconditioner::min_diagonal
private

This specifies the minimum value the diagonal elements should have.

This might be necessary when the Jacobi preconditioner is used on matrices with zero diagonal elements. In that case, a straight- forward application would not be possible since we would divide by zero.

Definition at line 78 of file jacobi.h.

Referenced by add_parameters(), and initialize_preconditioner().

◆ n_sweeps

unsigned int ParsedLAC::JacobiPreconditioner::n_sweeps
private

Sets how many times the given operation should be applied during the vmult() operation.

Definition at line 84 of file jacobi.h.

Referenced by add_parameters(), and initialize_preconditioner().


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