00001 #ifndef GENSQP_YUEPETRAVECTOR_H
00002 #define GENSQP_YUEPETRAVECTOR_H
00003
00004 #include "GenSQP_Vector.hpp"
00005 #include "Epetra_MultiVector.h"
00006
00007
00018 namespace GenSQP {
00019
00020 class YUEpetraVector : public Vector {
00021
00022 private:
00023
00024 Teuchos::RefCountPtr<Epetra_MultiVector> y_epetra_vec_;
00025 Teuchos::RefCountPtr<Epetra_MultiVector> u_epetra_vec_;
00026
00027 public:
00028
00029 YUEpetraVector( const Teuchos::RefCountPtr<Epetra_MultiVector> &y_epetra_vec,
00030 const Teuchos::RefCountPtr<Epetra_MultiVector> &u_epetra_vec );
00031
00034
00035 double innerProd( const Vector &x ) const;
00036
00037 void linComb( const double &alpha, const Vector &x, const double &beta );
00038
00039 void Scale( const double &alpha );
00040
00041 void Set( const double &alpha );
00042
00043 void Set( const double &alpha, const Vector &x );
00044
00045 Teuchos::RefCountPtr<Vector> createVector() const;
00046
00048
00051 Teuchos::RefCountPtr<const Epetra_MultiVector> getYVector() const;
00052
00055 Teuchos::RefCountPtr<const Epetra_MultiVector> getUVector() const;
00056
00057
00058 };
00059
00060 }
00061
00062 #endif