46 #ifndef BELOS_ORTHOMANAGER_HPP 47 #define BELOS_ORTHOMANAGER_HPP 69 #include "Teuchos_ScalarTraits.hpp" 70 #include "Teuchos_RCP.hpp" 71 #include "Teuchos_SerialDenseMatrix.hpp" 72 #include "Teuchos_Array.hpp" 88 template <
class ScalarType,
class MV>
90 public Teuchos::ParameterListAcceptorDefaultBase
113 virtual void innerProd(
const MV &X,
const MV &Y, Teuchos::SerialDenseMatrix<int,ScalarType>& Z )
const = 0;
128 virtual void norm (
const MV& X, std::vector<
typename Teuchos::ScalarTraits<ScalarType>::magnitudeType>& normvec)
const = 0;
166 Teuchos::Array<Teuchos::RCP<Teuchos::SerialDenseMatrix<int,ScalarType> > > C,
167 Teuchos::ArrayView<Teuchos::RCP<const MV> > Q)
const = 0;
183 virtual int normalize ( MV &X, Teuchos::RCP<Teuchos::SerialDenseMatrix<int,ScalarType> > B )
const = 0;
188 Teuchos::Array<Teuchos::RCP<Teuchos::SerialDenseMatrix<int,ScalarType> > > C,
189 Teuchos::RCP<Teuchos::SerialDenseMatrix<int,ScalarType> > B,
190 Teuchos::ArrayView<Teuchos::RCP<const MV> > Q)
const = 0;
250 Teuchos::Array<Teuchos::RCP<Teuchos::SerialDenseMatrix<int,ScalarType> > > C,
251 Teuchos::RCP<Teuchos::SerialDenseMatrix<int,ScalarType> > B,
252 Teuchos::ArrayView<Teuchos::RCP<const MV> > Q)
const 264 virtual typename Teuchos::ScalarTraits< ScalarType >::magnitudeType
269 virtual typename Teuchos::ScalarTraits<ScalarType>::magnitudeType
280 virtual void setLabel(
const std::string& label) = 0;
284 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...