|
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.
1.8.5