Belos  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members
Belos::GmresPolyOp< ScalarType, MV, OP > Class Template Reference

Belos's class for applying the GMRES polynomial operator that is used by the hybrid-GMRES linear solver. More...

#include <BelosGmresPolyOp.hpp>

Inheritance diagram for Belos::GmresPolyOp< ScalarType, MV, OP >:
Inheritance graph
[legend]

Public Member Functions

Constructor/Destructor
 GmresPolyOp (const Teuchos::RCP< LinearProblem< ScalarType, MV, OP > > &problem_in, const Teuchos::RCP< Teuchos::ParameterList > &params_in)
 Basic contstructor. More...
 
 GmresPolyOp (const Teuchos::RCP< LinearProblem< ScalarType, MV, OP > > &problem_in)
 Given no ParameterList, constructor creates no polynomial and only applies the given operator. More...
 
virtual ~GmresPolyOp ()
 Destructor. More...
 
Parameter processing method
void setParameters (const Teuchos::RCP< Teuchos::ParameterList > &params_in)
 Process the passed in parameters. More...
 
Polynomial creation method
void generateArnoldiPoly ()
 This routine takes the matrix, preconditioner, and vectors from the linear problem as well as the parameters to generate the Arnoldi polynomial. More...
 
void generateGmresPoly ()
 This routine takes the matrix, preconditioner, and vectors from the linear problem as well as the parameters to generate the Gmres polynomial. More...
 
- Public Member Functions inherited from Belos::Operator< ScalarType >
 Operator ()
 Default constructor (does nothing). More...
 
virtual ~Operator ()
 Virtual destructor, for memory safety of derived classes. More...
 
virtual bool HasApplyTranspose () const
 Whether this operator implements applying the transpose. More...
 

Operator application method

void ApplyPoly (const MV &x, MV &y) const
 This routine takes the MV x and applies the polynomial operator phi(OP) to it resulting in the MV y, which is returned. More...
 
void ApplyArnoldiPoly (const MV &x, MV &y) const
 
void ApplyGmresPoly (const MV &x, MV &y) const
 
void ApplyRootsPoly (const MV &x, MV &y) const
 
void Apply (const MultiVec< ScalarType > &x, MultiVec< ScalarType > &y, ETrans=NOTRANS) const
 This routine casts the MultiVec to GmresPolyMv to retrieve the MV. Then the above apply method is called. More...
 
int polyDegree () const
 

Detailed Description

template<class ScalarType, class MV, class OP>
class Belos::GmresPolyOp< ScalarType, MV, OP >

Belos's class for applying the GMRES polynomial operator that is used by the hybrid-GMRES linear solver.

This operator is used as the interface to the matrix polynomial (phi(A)), solution (X), and right-hand side (B) of the linear system phi(A)X = B. Furthermore, it is also the interface to left/right preconditioning of the linear system.

Author
Heidi Thornquist and Jennifer Loe

Definition at line 198 of file BelosGmresPolyOp.hpp.

Constructor & Destructor Documentation

template<class ScalarType , class MV , class OP >
Belos::GmresPolyOp< ScalarType, MV, OP >::GmresPolyOp ( const Teuchos::RCP< LinearProblem< ScalarType, MV, OP > > &  problem_in,
const Teuchos::RCP< Teuchos::ParameterList > &  params_in 
)
inline

Basic contstructor.

Definition at line 205 of file BelosGmresPolyOp.hpp.

template<class ScalarType , class MV , class OP >
Belos::GmresPolyOp< ScalarType, MV, OP >::GmresPolyOp ( const Teuchos::RCP< LinearProblem< ScalarType, MV, OP > > &  problem_in)
inline

Given no ParameterList, constructor creates no polynomial and only applies the given operator.

Definition at line 230 of file BelosGmresPolyOp.hpp.

template<class ScalarType , class MV , class OP >
virtual Belos::GmresPolyOp< ScalarType, MV, OP >::~GmresPolyOp ( )
inlinevirtual

Destructor.

Definition at line 238 of file BelosGmresPolyOp.hpp.

Member Function Documentation

template<class ScalarType , class MV , class OP >
void Belos::GmresPolyOp< ScalarType, MV, OP >::setParameters ( const Teuchos::RCP< Teuchos::ParameterList > &  params_in)

Process the passed in parameters.

Definition at line 357 of file BelosGmresPolyOp.hpp.

template<class ScalarType , class MV , class OP >
void Belos::GmresPolyOp< ScalarType, MV, OP >::generateArnoldiPoly ( )

This routine takes the matrix, preconditioner, and vectors from the linear problem as well as the parameters to generate the Arnoldi polynomial.

Definition at line 524 of file BelosGmresPolyOp.hpp.

template<class ScalarType , class MV , class OP >
void Belos::GmresPolyOp< ScalarType, MV, OP >::generateGmresPoly ( )

This routine takes the matrix, preconditioner, and vectors from the linear problem as well as the parameters to generate the Gmres polynomial.

Definition at line 424 of file BelosGmresPolyOp.hpp.

template<class ScalarType , class MV , class OP >
void Belos::GmresPolyOp< ScalarType, MV, OP >::ApplyPoly ( const MV &  x,
MV &  y 
) const

This routine takes the MV x and applies the polynomial operator phi(OP) to it resulting in the MV y, which is returned.

  \note It is expected that any problem with applying this operator to \c x will be

indicated by an std::exception being thrown.

Definition at line 895 of file BelosGmresPolyOp.hpp.

template<class ScalarType , class MV , class OP >
void Belos::GmresPolyOp< ScalarType, MV, OP >::ApplyArnoldiPoly ( const MV &  x,
MV &  y 
) const

Definition at line 1033 of file BelosGmresPolyOp.hpp.

template<class ScalarType , class MV , class OP >
void Belos::GmresPolyOp< ScalarType, MV, OP >::ApplyGmresPoly ( const MV &  x,
MV &  y 
) const

Definition at line 912 of file BelosGmresPolyOp.hpp.

template<class ScalarType , class MV , class OP >
void Belos::GmresPolyOp< ScalarType, MV, OP >::ApplyRootsPoly ( const MV &  x,
MV &  y 
) const

Definition at line 960 of file BelosGmresPolyOp.hpp.

template<class ScalarType , class MV , class OP >
void Belos::GmresPolyOp< ScalarType, MV, OP >::Apply ( const MultiVec< ScalarType > &  x,
MultiVec< ScalarType > &  y,
ETrans  = NOTRANS 
) const
inlinevirtual

This routine casts the MultiVec to GmresPolyMv to retrieve the MV. Then the above apply method is called.

Implements Belos::Operator< ScalarType >.

Definition at line 279 of file BelosGmresPolyOp.hpp.

template<class ScalarType , class MV , class OP >
int Belos::GmresPolyOp< ScalarType, MV, OP >::polyDegree ( ) const
inline

Definition at line 286 of file BelosGmresPolyOp.hpp.


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

Generated on Fri Aug 14 2020 10:48:34 for Belos by doxygen 1.8.5