46 #ifndef BELOS_ORTHOMANAGER_HPP 47 #define BELOS_ORTHOMANAGER_HPP 65 #include "Teuchos_ScalarTraits.hpp" 66 #include "Teuchos_RCP.hpp" 67 #include "Teuchos_SerialDenseMatrix.hpp" 68 #include "Teuchos_Array.hpp" 84 template <
class ScalarType,
class MV>
107 virtual void innerProd(
const MV &X,
const MV &Y, Teuchos::SerialDenseMatrix<int,ScalarType>& Z )
const = 0;
122 virtual void norm (
const MV& X, std::vector<
typename Teuchos::ScalarTraits<ScalarType>::magnitudeType>& normvec)
const = 0;
160 Teuchos::Array<Teuchos::RCP<Teuchos::SerialDenseMatrix<int,ScalarType> > > C,
161 Teuchos::ArrayView<Teuchos::RCP<const MV> > Q)
const = 0;
177 virtual int normalize ( MV &X, Teuchos::RCP<Teuchos::SerialDenseMatrix<int,ScalarType> > B )
const = 0;
182 Teuchos::Array<Teuchos::RCP<Teuchos::SerialDenseMatrix<int,ScalarType> > > C,
183 Teuchos::RCP<Teuchos::SerialDenseMatrix<int,ScalarType> > B,
184 Teuchos::ArrayView<Teuchos::RCP<const MV> > Q)
const = 0;
244 Teuchos::Array<Teuchos::RCP<Teuchos::SerialDenseMatrix<int,ScalarType> > > C,
245 Teuchos::RCP<Teuchos::SerialDenseMatrix<int,ScalarType> > B,
246 Teuchos::ArrayView<Teuchos::RCP<const MV> > Q)
const 258 virtual typename Teuchos::ScalarTraits< ScalarType >::magnitudeType
263 virtual typename Teuchos::ScalarTraits<ScalarType>::magnitudeType
274 virtual void setLabel(
const std::string& label) = 0;
278 virtual const std::string&
getLabel()
const = 0;
Collection of types and exceptions used within the Belos solvers.
OrthoError(const std::string &what_arg)
virtual void project(MV &X, Teuchos::Array< Teuchos::RCP< Teuchos::SerialDenseMatrix< int, ScalarType > > > C, Teuchos::ArrayView< Teuchos::RCP< const MV > > Q) const =0
Project X against the (orthogonal) entries of Q.
virtual int projectAndNormalizeImpl(MV &X, Teuchos::Array< Teuchos::RCP< Teuchos::SerialDenseMatrix< int, ScalarType > > > C, Teuchos::RCP< Teuchos::SerialDenseMatrix< int, ScalarType > > B, Teuchos::ArrayView< Teuchos::RCP< const MV > > Q) const =0
virtual void setLabel(const std::string &label)=0
This method sets the label used by the timers in the orthogonalization manager.
OrthoManager()
Default constructor.
virtual int normalize(MV &X, Teuchos::RCP< Teuchos::SerialDenseMatrix< int, ScalarType > > B) const =0
This method takes a multivector X and attempts to compute an orthonormal basis for ...
virtual Teuchos::ScalarTraits< ScalarType >::magnitudeType orthogError(const MV &X1, const MV &X2) const =0
This method computes the error in orthogonality of two multivectors.
virtual void innerProd(const MV &X, const MV &Y, Teuchos::SerialDenseMatrix< int, ScalarType > &Z) const =0
Provides the inner product defining the orthogonality concepts.
virtual const std::string & getLabel() const =0
This method returns the label being used by the timers in the orthogonalization manager.
Belos's templated virtual class for providing routines for orthogonalization and orthonormzalition of...
Exception thrown to signal error in an orthogonalization manager method.
int projectAndNormalize(MV &X, Teuchos::Array< Teuchos::RCP< Teuchos::SerialDenseMatrix< int, ScalarType > > > C, Teuchos::RCP< Teuchos::SerialDenseMatrix< int, ScalarType > > B, Teuchos::ArrayView< Teuchos::RCP< const MV > > Q) const
Project X against the Q[i] and normalize X.
BelosError(const std::string &what_arg)
virtual Teuchos::ScalarTraits< ScalarType >::magnitudeType orthonormError(const MV &X) const =0
This method computes the error in orthonormality of a multivector.
virtual ~OrthoManager()
Destructor.
virtual void norm(const MV &X, std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > &normvec) const =0
Compute the norm(s) of the column(s) of X.
Parent class to all Belos exceptions.
Belos header file which uses auto-configuration information to include necessary C++ headers...