10#ifndef BELOS_GMRES_ITERATION_HPP
11#define BELOS_GMRES_ITERATION_HPP
30 template <
class ScalarType,
class MV,
class DM = DefaultDenseMatrix<
int,ScalarType>>
39 Teuchos::RCP<const MV>
V;
42 Teuchos::RCP<const MV>
Z;
50 Teuchos::RCP<const DM>
H;
53 Teuchos::RCP<const DM>
R;
56 Teuchos::RCP<const DM>
z;
60 H(Teuchos::null),
R(Teuchos::null),
72 template <
class ScalarType,
class MV,
class DM = DefaultDenseMatrix<
int,ScalarType>>
75 typedef Teuchos::ScalarTraits<ScalarType>
SCT;
84 std::vector<Teuchos::RCP<const MV> >
V;
90 std::vector<Teuchos::RCP<const DM> >
H;
92 std::vector<Teuchos::RCP<const DM> >
R;
94 std::vector<Teuchos::RCP<const DM> >
Z;
96 std::vector<Teuchos::RCP<const std::vector<ScalarType> > >
sn;
97 std::vector<Teuchos::RCP<const std::vector<MagnitudeType> > >
cs;
162template<
class ScalarType,
class MV,
class OP,
class DM = DefaultDenseMatrix<
int,ScalarType>>
220 virtual void setSize(
int blockSize,
int numBlocks) = 0;
Belos header file which uses auto-configuration information to include necessary C++ headers.
Pure virtual base class which describes the basic interface to the linear solver iteration.
Collection of types and exceptions used within the Belos solvers.
BelosError(const std::string &what_arg)
virtual int getCurSubspaceDim() const =0
Get the dimension of the search subspace used to generate the current solution to the linear problem.
virtual GmresIterationState< ScalarType, MV, DM > getState() const =0
Get the current state of the linear solver.
virtual void updateLSQR(int dim=-1)=0
Method for updating QR factorization of upper Hessenberg matrix.
virtual void setSize(int blockSize, int numBlocks)=0
Set the blocksize and number of blocks to be used by the iterative solver in solving this linear prob...
virtual void initializeGmres(GmresIterationState< ScalarType, MV, DM > &newstate)=0
Initialize the solver to an iterate, providing a complete state.
virtual int getMaxSubspaceDim() const =0
Get the maximum dimension allocated for the search subspace.
GmresIterationInitFailure(const std::string &what_arg)
GmresIterationLAPACKFailure(const std::string &what_arg)
GmresIterationOrthoFailure(const std::string &what_arg)
Iteration()
Default Constructor.
PseudoBlockGmresIterOrthoFailure(const std::string &what_arg)
Structure to contain pointers to GmresIteration state variables.
Teuchos::RCP< const MV > Z
The current preconditioned Krylov basis (only used in flexible GMRES).
Teuchos::RCP< const DM > z
The current right-hand side of the least squares system RY = Z.
Teuchos::RCP< const DM > R
The current upper-triangular matrix from the QR reduction of H.
Teuchos::RCP< const DM > H
The current Hessenberg matrix.
int curDim
The current dimension of the reduction.
Teuchos::RCP< const MV > V
The current Krylov basis.
int curDim
The current dimension of the reduction.
std::vector< Teuchos::RCP< const std::vector< ScalarType > > > sn
The current Given's rotation coefficients.
SCT::magnitudeType MagnitudeType
PseudoBlockGmresIterState()
std::vector< Teuchos::RCP< const DM > > R
The current upper-triangular matrix from the QR reduction of H.
std::vector< Teuchos::RCP< const DM > > Z
The current right-hand side of the least squares system RY = Z.
Teuchos::ScalarTraits< ScalarType > SCT
std::vector< Teuchos::RCP< const DM > > H
The current Hessenberg matrix.
std::vector< Teuchos::RCP< const std::vector< MagnitudeType > > > cs
std::vector< Teuchos::RCP< const MV > > V
The current Krylov basis.