41 typedef MultiVector<SC,LO,GO,NO> MultiVector_Type;
42 typedef Teuchos::RCP<MultiVector_Type> MultiVectorPtr_Type;
43 typedef Teuchos::RCP<const MultiVector_Type> MultiVectorConstPtr_Type;
46 typedef Teuchos::RCP<BlockMultiVector_Type> BlockMultiVectorPtr_Type;
47 typedef Teuchos::RCP<const BlockMultiVector_Type> BlockMultiVectorConstPtr_Type;
61 typedef Teuchos::Comm<int> Comm_Type;
62 typedef Teuchos::RCP<Comm_Type> CommPtr_Type;
63 typedef Teuchos::RCP<const Comm_Type> CommConstPtr_Type;
67 typedef Teuchos::RCP<Map_Type> MapPtr_Type;
68 typedef Teuchos::RCP<const Map_Type> MapConstPtr_Type;
70 typedef Tpetra::Map<LO,GO,NO> TpetraMap_Type;
71 typedef Teuchos::RCP<TpetraMap_Type> TpetraMapPtr_Type;
72 typedef Teuchos::RCP<const TpetraMap_Type> TpetraMapConstPtr_Type;
73 typedef const TpetraMapConstPtr_Type TpetraMapConstPtrConst_Type;
75 typedef Tpetra::MultiVector<SC,LO,GO,NO> TpetraMultiVector_Type;
76 typedef Teuchos::RCP<TpetraMultiVector_Type> TpetraMultiVectorPtr_Type;
77 typedef Teuchos::RCP<const TpetraMultiVector_Type> TpetraMultiVectorConstPtr_Type;
78 typedef const TpetraMultiVectorConstPtr_Type TpetraMultiVectorConstPtrConst_Type;
80 typedef Tpetra::Import<LO,GO,NO> TpetraImport_Type;
81 typedef Teuchos::RCP<TpetraImport_Type> TpetraImportPtr_Type;
83 typedef Tpetra::Export<LO,GO,NO> TpetraExport_Type;
84 typedef Teuchos::RCP<TpetraExport_Type> TpetraExportPtr_Type;
113 MultiVector_Type&
operator= (
const MultiVector_Type& rhs) {
114 Tpetra::deep_copy<SC,LO,GO,NO>(*multiVector_,*rhs.getTpetraMultiVector());
160 LO getLocalLength()
const;
165 Teuchos::ArrayRCP< const SC >
getData(UN i)
const;
176 void print(Teuchos::EVerbosityLevel verbLevel=Teuchos::VERB_EXTREME)
const;
178 TpetraMultiVectorConstPtr_Type getTpetraMultiVector()
const;
180 TpetraMultiVectorPtr_Type getTpetraMultiVectorNonConst();
182 Teuchos::RCP< Thyra::MultiVectorBase<SC> > getThyraMultiVector( );
184 Teuchos::RCP<const Thyra::MultiVectorBase<SC> > getThyraMultiVectorConst( )
const;
186 void fromThyraMultiVector( Teuchos::RCP< Thyra::MultiVectorBase<SC> > thyraMV);
188 void norm2(
const Teuchos::ArrayView<
typename Teuchos::ScalarTraits<SC>::magnitudeType> &norms)
const;
190 void normInf(
const Teuchos::ArrayView<
typename Teuchos::ScalarTraits<SC>::magnitudeType> &norms)
const;
192 void dot(MultiVectorConstPtr_Type a,
const Teuchos::ArrayView<
typename Teuchos::ScalarTraits<SC>::magnitudeType> &dots)
const;
195 void abs(MultiVectorConstPtr_Type a);
197 void update(
const SC& alpha,
const MultiVector_Type& A,
const SC& beta );
200 void update(
const SC& alpha,
const MultiVector_Type& A,
const SC& beta ,
const MultiVector_Type& B,
const SC& gamma);
203 void multiply(Teuchos::ETransp transA, Teuchos::ETransp transB,
const SC &alpha, MultiVectorConstPtr_Type &A, MultiVectorConstPtr_Type &B,
const SC &beta);
205 void multiply(Teuchos::ETransp transA, Teuchos::ETransp transB,
const SC &alpha, BlockMultiVectorConstPtr_Type &A, BlockMultiVectorConstPtr_Type &B,
const SC &beta);
207 void putScalar(
const SC& alpha );
209 void scale(
const SC& alpha );
211 void importFromVector( MultiVectorConstPtr_Type mvIn,
bool reuseImport =
false, std::string combineMode =
"Insert", std::string type=
"Forward" );
213 void exportFromVector( MultiVectorConstPtr_Type mvIn,
bool reuseExport =
false, std::string combineMode =
"Insert", std::string type=
"Forward" );
215 void writeMM(std::string fileName=
"mv.mm")
const;
217 void readMM(std::string fileName)
const;
219 MultiVectorConstPtr_Type getVector(
int i )
const;
221 MultiVectorPtr_Type sumColumns()
const;
227 TpetraMultiVectorPtr_Type multiVector_;
228 MapConstPtr_Type map_;
229 TpetraImportPtr_Type importer_;
230 TpetraExportPtr_Type exporter_;