|
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::rcpFromRef(std::cout) |
| 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 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 163 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 260 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 261 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 262 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 263 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 264 of file BelosGmresPolyOp.hpp.
|
inline |
Basic contstructor.
Definition at line 170 of file BelosGmresPolyOp.hpp.
|
inline |
Given no ParameterList, constructor creates no polynomial and only applies the given operator.
Definition at line 195 of file BelosGmresPolyOp.hpp.
|
inlinevirtual |
Destructor.
Definition at line 203 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 321 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 485 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 385 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 859 of file BelosGmresPolyOp.hpp.
| void Belos::GmresPolyOp< ScalarType, MV, OP >::ApplyArnoldiPoly | ( | const MV & | x, |
| MV & | y | ||
| ) | const |
Definition at line 997 of file BelosGmresPolyOp.hpp.
| void Belos::GmresPolyOp< ScalarType, MV, OP >::ApplyGmresPoly | ( | const MV & | x, |
| MV & | y | ||
| ) | const |
Definition at line 876 of file BelosGmresPolyOp.hpp.
| void Belos::GmresPolyOp< ScalarType, MV, OP >::ApplyRootsPoly | ( | const MV & | x, |
| MV & | y | ||
| ) | const |
Definition at line 924 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 244 of file BelosGmresPolyOp.hpp.
|
inline |
Definition at line 251 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 777 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 698 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 258 of file BelosGmresPolyOp.hpp.
|
staticprivate |
Definition at line 267 of file BelosGmresPolyOp.hpp.
|
staticprivate |
Definition at line 268 of file BelosGmresPolyOp.hpp.
|
staticprivate |
Definition at line 269 of file BelosGmresPolyOp.hpp.
|
staticprivate |
Definition at line 270 of file BelosGmresPolyOp.hpp.
|
staticprivate |
Definition at line 271 of file BelosGmresPolyOp.hpp.
|
staticprivate |
Definition at line 272 of file BelosGmresPolyOp.hpp.
|
staticprivate |
Definition at line 273 of file BelosGmresPolyOp.hpp.
|
staticprivate |
Definition at line 274 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 277 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 278 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 279 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 279 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 282 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 283 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 286 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 289 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 290 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 291 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.
|
private |
Definition at line 297 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 298 of file BelosGmresPolyOp.hpp.
|
mutableprivate |
Definition at line 301 of file BelosGmresPolyOp.hpp.
|
mutableprivate |
Definition at line 301 of file BelosGmresPolyOp.hpp.
|
mutableprivate |
Definition at line 301 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 302 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 302 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 303 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 306 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 307 of file BelosGmresPolyOp.hpp.
|
private |
Definition at line 310 of file BelosGmresPolyOp.hpp.
1.8.5