46 #ifndef ANASAZI_SPECIALIZED_EPETRA_ADAPTER_HPP
47 #define ANASAZI_SPECIALIZED_EPETRA_ADAPTER_HPP
50 #include "Anasaziepetra_DLLExportMacro.h"
56 #include "Teuchos_Assert.hpp"
59 #include "Epetra_MultiVector.h"
60 #include "Epetra_Vector.h"
61 #include "Epetra_Operator.h"
62 #include "Epetra_Map.h"
63 #include "Epetra_LocalMap.h"
65 #if defined(HAVE_ANASAZI_TPETRA) && defined(HAVE_ANASAZI_TSQR)
66 # include <Tpetra_ConfigDefs.hpp>
67 # if defined(HAVE_TPETRA_EPETRA)
68 # include <Epetra_TsqrAdaptor.hpp>
69 # endif // defined(HAVE_TPETRA_EPETRA)
70 #endif // defined(HAVE_ANASAZI_TPETRA) && defined(HAVE_ANASAZI_TSQR)
195 if ( Epetra_MV->Map().GlobalIndicesLongLong() )
196 return static_cast<ptrdiff_t>( Epetra_MV->GlobalLength64() );
198 return static_cast<ptrdiff_t
>( Epetra_MV->GlobalLength() );
222 #ifdef HAVE_ANASAZI_EXPERIMENTAL
230 #ifdef HAVE_ANASAZI_EXPERIMENTAL
239 "Anasazi::EpetraOpMultiVec::MvScale call to Epetra_MultiVector::Scale() returned a nonzero value.");
244 void MvScale (
const std::vector<double>& alpha );
253 void MvNorm ( std::vector<double> & normvec )
const;
270 "Anasazi::EpetraOpMultiVec::MvRandom call to Epetra_MultiVector::Random() returned a nonzero value.");
277 "Anasazi::EpetraOpMultiVec::MvInit call to Epetra_MultiVector::PutScalar() returned a nonzero value.");
296 void MvPrint( std::ostream& os )
const { Epetra_MV->Print( os ); }
304 #pragma warning(push)
305 #pragma warning(disable:4251)
318 #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...