14 #ifndef ANASAZI_SPECIALIZED_EPETRA_ADAPTER_HPP
15 #define ANASAZI_SPECIALIZED_EPETRA_ADAPTER_HPP
18 #include "Anasaziepetra_DLLExportMacro.h"
24 #include "Teuchos_Assert.hpp"
27 #include "Epetra_MultiVector.h"
28 #include "Epetra_Vector.h"
29 #include "Epetra_Operator.h"
30 #include "Epetra_Map.h"
31 #include "Epetra_LocalMap.h"
33 #if defined(HAVE_ANASAZI_TPETRA) && defined(HAVE_ANASAZI_TSQR)
34 # include <Tpetra_ConfigDefs.hpp>
35 # if defined(HAVE_TPETRA_EPETRA)
36 # include <Epetra_TsqrAdaptor.hpp>
37 # endif // defined(HAVE_TPETRA_EPETRA)
38 #endif // defined(HAVE_ANASAZI_TPETRA) && defined(HAVE_ANASAZI_TSQR)
163 if ( Epetra_MV->Map().GlobalIndicesLongLong() )
164 return static_cast<ptrdiff_t>( Epetra_MV->GlobalLength64() );
166 return static_cast<ptrdiff_t
>( Epetra_MV->GlobalLength() );
190 #ifdef HAVE_ANASAZI_EXPERIMENTAL
198 #ifdef HAVE_ANASAZI_EXPERIMENTAL
207 "Anasazi::EpetraOpMultiVec::MvScale call to Epetra_MultiVector::Scale() returned a nonzero value.");
212 void MvScale (
const std::vector<double>& alpha );
221 void MvNorm ( std::vector<double> & normvec )
const;
238 "Anasazi::EpetraOpMultiVec::MvRandom call to Epetra_MultiVector::Random() returned a nonzero value.");
245 "Anasazi::EpetraOpMultiVec::MvInit call to Epetra_MultiVector::PutScalar() returned a nonzero value.");
264 void MvPrint( std::ostream& os )
const { Epetra_MV->Print( os ); }
272 #pragma warning(push)
273 #pragma warning(disable:4251)
286 #endif // end of file ANASAZI_SPECIALIZED_EPETRA_ADAPTER_HPP
EpetraMultiVecAccessor is an interfaceto allow any Anasazi::MultiVec implementation that is based on ...
EpetraSpecializedMultiVecFailure is thrown when a return value from an Epetra call on an Epetra_Multi...
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
ptrdiff_t GetGlobalLength() const
The number of rows in the multivector.
void MvInit(double alpha)
Replace each element of the vectors in *this with alpha.
virtual ~EpetraOpMultiVec()
Destructor.
int GetNumberVecs() const
Obtain the vector length of *this.
An exception class parent to all Anasazi exceptions.
Interface for multivectors used by Anasazi' linear solvers.
ConjType
Enumerated types used to specify conjugation arguments.
void MvScale(double alpha)
Scale each element of the vectors in *this with alpha.
Specialized adapter class for Anasazi::MultiVec that uses Epetra_MultiVector and Epetra_Operator to d...
const Epetra_MultiVector * GetEpetraMultiVec() const
Return the pointer to the Epetra_MultiVector object.
Anasazi header file which uses auto-configuration information to include necessary C++ headers...
void MvPrint(std::ostream &os) const
Print *this EpetraOpMultiVec.
Epetra_MultiVector * GetEpetraMultiVec()
Return the pointer to the Epetra_MultiVector object.
Templated virtual class for creating operators that can interface with the Anasazi::OperatorTraits cl...
Types and exceptions used within Anasazi solvers and interfaces.
void MvRandom()
Fill the vectors in *this with random numbers.
Interface for multivectors used by Anasazi's linear solvers.
Declarations of Anasazi multi-vector and operator classes using Epetra_MultiVector and Epetra_Operato...