Belos Package Browser (Single Doxygen Collection)
Development
|
Belos's class for applying the GMRES polynomial operator that is used by the hybrid-GMRES linear solver. More...
#include <BelosGmresPolyOp.hpp>
Constructor/Destructor | |
GmresPolyOp (const Teuchos::RCP< LinearProblem< ScalarType, MV, OP > > &problem_in, const Teuchos::RCP< Teuchos::ParameterList > ¶ms_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 > ¶ms_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... | |
Operator application method | |
typedef int | OT |
typedef MultiVecTraits < ScalarType, MV > | MVT |
typedef Teuchos::ScalarTraits < ScalarType > | SCT |
typedef Teuchos::ScalarTraits < ScalarType >::magnitudeType | MagnitudeType |
typedef Teuchos::ScalarTraits < MagnitudeType > | MCT |
std::string | polyUpdateLabel_ |
Teuchos::RCP< LinearProblem < ScalarType, MV, OP > > | problem_ |
Teuchos::RCP < Teuchos::ParameterList > | params_ |
Teuchos::RCP< const OP > | LP_ |
Teuchos::RCP< const OP > | RP_ |
Teuchos::RCP< OutputManager < ScalarType > > | printer_ |
Teuchos::RCP< std::ostream > | outputStream_ = Teuchos::rcp(outputStream_default_,false) |
Teuchos::RCP< MatOrthoManager < ScalarType, MV, OP > > | ortho_ |
MagnitudeType | polyTol_ = DefaultSolverParameters::polyTol |
int | maxDegree_ = maxDegree_default_ |
int | verbosity_ = verbosity_default_ |
bool | randomRHS_ = randomRHS_default_ |
std::string | label_ = label_default_ |
std::string | polyType_ = polyType_default_ |
std::string | orthoType_ = orthoType_default_ |
int | dim_ = 0 |
bool | damp_ = damp_default_ |
bool | addRoots_ = addRoots_default_ |
Teuchos::RCP< MV > | V_ |
Teuchos::RCP< MV > | wL_ |
Teuchos::RCP< MV > | wR_ |
Teuchos::SerialDenseMatrix< OT, ScalarType > | H_ |
Teuchos::SerialDenseMatrix< OT, ScalarType > | y_ |
Teuchos::SerialDenseVector< OT, ScalarType > | r0_ |
bool | autoDeg = false |
Teuchos::SerialDenseMatrix< OT, ScalarType > | pCoeff_ |
Teuchos::SerialDenseMatrix< OT, MagnitudeType > | theta_ |
static constexpr int | maxDegree_default_ = 25 |
static constexpr int | verbosity_default_ = Belos::Errors |
static constexpr bool | randomRHS_default_ = true |
static constexpr const char * | label_default_ = "Belos" |
static constexpr const char * | polyType_default_ = "Roots" |
static constexpr const char * | orthoType_default_ = "DGKS" |
static constexpr std::ostream * | outputStream_default_ = &std::cout |
static constexpr bool | damp_default_ = false |
static constexpr bool | addRoots_default_ = true |
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 |
void | SortModLeja (Teuchos::SerialDenseMatrix< OT, MagnitudeType > &thetaN, std::vector< int > &index) const |
void | ComputeAddedRoots () |
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.
Definition at line 195 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 292 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 293 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 294 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 295 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 296 of file BelosGmresPolyOp.hpp.
|
inline |
Basic contstructor.
Definition at line 202 of file BelosGmresPolyOp.hpp.
|
inline |
Given no ParameterList, constructor creates no polynomial and only applies the given operator.
Definition at line 227 of file BelosGmresPolyOp.hpp.
|
inlinevirtual |
Destructor.
Definition at line 235 of file BelosGmresPolyOp.hpp.
void Belos::GmresPolyOp< ScalarType, MV, OP >::setParameters | ( | const Teuchos::RCP< Teuchos::ParameterList > & | params_in | ) |
Process the passed in parameters.
Definition at line 354 of file BelosGmresPolyOp.hpp.
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 518 of file BelosGmresPolyOp.hpp.
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 418 of file BelosGmresPolyOp.hpp.
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 888 of file BelosGmresPolyOp.hpp.
void Belos::GmresPolyOp< ScalarType, MV, OP >::ApplyArnoldiPoly | ( | const MV & | x, |
MV & | y | ||
) | const |
Definition at line 1026 of file BelosGmresPolyOp.hpp.
void Belos::GmresPolyOp< ScalarType, MV, OP >::ApplyGmresPoly | ( | const MV & | x, |
MV & | y | ||
) | const |
Definition at line 905 of file BelosGmresPolyOp.hpp.
void Belos::GmresPolyOp< ScalarType, MV, OP >::ApplyRootsPoly | ( | const MV & | x, |
MV & | y | ||
) | const |
Definition at line 953 of file BelosGmresPolyOp.hpp.
|
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 276 of file BelosGmresPolyOp.hpp.
|
inline |
Definition at line 283 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 806 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 727 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 290 of file BelosGmresPolyOp.hpp.
|
staticprivate |
Definition at line 299 of file BelosGmresPolyOp.hpp.
|
staticprivate |
Definition at line 300 of file BelosGmresPolyOp.hpp.
|
staticprivate |
Definition at line 301 of file BelosGmresPolyOp.hpp.
|
staticprivate |
Definition at line 302 of file BelosGmresPolyOp.hpp.
|
staticprivate |
Definition at line 303 of file BelosGmresPolyOp.hpp.
|
staticprivate |
Definition at line 304 of file BelosGmresPolyOp.hpp.
|
staticprivate |
Definition at line 305 of file BelosGmresPolyOp.hpp.
|
staticprivate |
Definition at line 306 of file BelosGmresPolyOp.hpp.
|
staticprivate |
Definition at line 307 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 310 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 311 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 312 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 312 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 315 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 316 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 319 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 322 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 323 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 324 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 325 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 326 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 327 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 328 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 329 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 330 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 331 of file BelosGmresPolyOp.hpp.
|
mutableprivate |
Definition at line 334 of file BelosGmresPolyOp.hpp.
|
mutableprivate |
Definition at line 334 of file BelosGmresPolyOp.hpp.
|
mutableprivate |
Definition at line 334 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 335 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 335 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 336 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 339 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 340 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 343 of file BelosGmresPolyOp.hpp.