14#ifndef ANASAZI_SPECIALIZED_EPETRA_ADAPTER_HPP 
   15#define ANASAZI_SPECIALIZED_EPETRA_ADAPTER_HPP 
   18#include "Anasaziepetra_DLLExportMacro.h" 
   24#include "Teuchos_Assert.hpp" 
   25#include "Teuchos_SerialDenseMatrix.hpp" 
   26#include "Teuchos_RCP.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> 
   78    EpetraOpMultiVec(
const Teuchos::RCP<Epetra_Operator> &Op, 
const Epetra_BlockMap& Map_in, 
const int numvecs);
 
   90    EpetraOpMultiVec(
const Teuchos::RCP<Epetra_Operator> &Op, 
const Epetra_BlockMap& Map_in, 
double * array, 
const int numvecs, 
const int stride=0);
 
   99    EpetraOpMultiVec(
const Teuchos::RCP<Epetra_Operator> &Op, Epetra_DataAccess CV, 
const Epetra_MultiVector& P_vec, 
const std::vector<int>& index);
 
  155    Teuchos::RCP<Epetra_MultiVector> GetEpetraMultiVector() { 
return Epetra_MV; }
 
  163       if ( Epetra_MV->Map().GlobalIndicesLongLong() )
 
  164          return static_cast<ptrdiff_t
>( Epetra_MV->GlobalLength64() );       
 
  166          return static_cast<ptrdiff_t
>( Epetra_MV->GlobalLength() ); 
 
 
  179                           const Teuchos::SerialDenseMatrix<int,double>& B, 
 
  189    void MvTransMv ( 
double alpha, 
const MultiVec<double>& A, Teuchos::SerialDenseMatrix<int,double>& B 
 
  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 ); }
 
  273#pragma warning(disable:4251) 
  275    Teuchos::RCP<Epetra_Operator> Epetra_OP;
 
  276    Teuchos::RCP<Epetra_MultiVector> Epetra_MV;
 
  277    Teuchos::RCP<Epetra_MultiVector> Epetra_MV_Temp;
 
 
Anasazi header file which uses auto-configuration information to include necessary C++ headers.
 
Declarations of Anasazi multi-vector and operator classes using Epetra_MultiVector and Epetra_Operato...
 
Interface for multivectors used by Anasazi' linear solvers.
 
Templated virtual class for creating operators that can interface with the Anasazi::OperatorTraits cl...
 
Types and exceptions used within Anasazi solvers and interfaces.
 
An exception class parent to all Anasazi exceptions.
 
EpetraMultiVecAccessor is an interfaceto allow any Anasazi::MultiVec implementation that is based on ...
 
Specialized adapter class for Anasazi::MultiVec that uses Epetra_MultiVector and Epetra_Operator to d...
 
void MvScale(double alpha)
Scale each element of the vectors in *this with alpha.
 
void MvPrint(std::ostream &os) const
Print *this EpetraOpMultiVec.
 
ptrdiff_t GetGlobalLength() const
The number of rows in the multivector.
 
const Epetra_MultiVector * GetEpetraMultiVec() const
Return the pointer to the Epetra_MultiVector object.
 
virtual ~EpetraOpMultiVec()
Destructor.
 
void MvInit(double alpha)
Replace each element of the vectors in *this with alpha.
 
void MvRandom()
Fill the vectors in *this with random numbers.
 
int GetNumberVecs() const
Obtain the vector length of *this.
 
Epetra_MultiVector * GetEpetraMultiVec()
Return the pointer to the Epetra_MultiVector object.
 
EpetraSpecializedMultiVecFailure is thrown when a return value from an Epetra call on an Epetra_Multi...
 
Interface for multivectors used by Anasazi's linear solvers.
 
Namespace Anasazi contains the classes, structs, enums and utilities used by the Anasazi package.
 
ConjType
Enumerated types used to specify conjugation arguments.