49 typedef MultiVector<SC,LO,GO,NO> MultiVector_Type;
50 typedef Teuchos::RCP<MultiVector_Type> MultiVectorPtr_Type;
51 typedef Teuchos::RCP<const MultiVector_Type> MultiVectorConstPtr_Type;
54 typedef Teuchos::RCP<BlockMultiVector_Type> BlockMultiVectorPtr_Type;
55 typedef Teuchos::RCP<const BlockMultiVector_Type> BlockMultiVectorConstPtr_Type;
58 typedef Teuchos::Comm<int> Comm_Type;
59 typedef Teuchos::RCP<Comm_Type> CommPtr_Type;
60 typedef Teuchos::RCP<const Comm_Type> CommConstPtr_Type;
64 typedef Teuchos::RCP<Map_Type> MapPtr_Type;
65 typedef Teuchos::RCP<const Map_Type> MapConstPtr_Type;
67 typedef Tpetra::Map<LO,GO,NO> TpetraMap_Type;
68 typedef Teuchos::RCP<TpetraMap_Type> TpetraMapPtr_Type;
69 typedef Teuchos::RCP<const TpetraMap_Type> TpetraMapConstPtr_Type;
70 typedef const TpetraMapConstPtr_Type TpetraMapConstPtrConst_Type;
72 typedef Tpetra::MultiVector<SC,LO,GO,NO> TpetraMultiVector_Type;
73 typedef Teuchos::RCP<TpetraMultiVector_Type> TpetraMultiVectorPtr_Type;
74 typedef Teuchos::RCP<const TpetraMultiVector_Type> TpetraMultiVectorConstPtr_Type;
75 typedef const TpetraMultiVectorConstPtr_Type TpetraMultiVectorConstPtrConst_Type;
77 typedef Tpetra::Import<LO,GO,NO> TpetraImport_Type;
78 typedef Teuchos::RCP<TpetraImport_Type> TpetraImportPtr_Type;
80 typedef Tpetra::Export<LO,GO,NO> TpetraExport_Type;
81 typedef Teuchos::RCP<TpetraExport_Type> TpetraExportPtr_Type;
110 MultiVector_Type&
operator= (
const MultiVector_Type& rhs) {
111 Tpetra::deep_copy<SC,LO,GO,NO>(*multiVector_,*rhs.getTpetraMultiVector());
157 LO getLocalLength()
const;
162 Teuchos::ArrayRCP< const SC >
getData(UN i)
const;
173 void print(Teuchos::EVerbosityLevel verbLevel=Teuchos::VERB_EXTREME)
const;
175 TpetraMultiVectorConstPtr_Type getTpetraMultiVector()
const;
177 TpetraMultiVectorPtr_Type getTpetraMultiVectorNonConst();
179 Teuchos::RCP< Thyra::MultiVectorBase<SC> > getThyraMultiVector( )
requires std::same_as<SC,
double>;
181 Teuchos::RCP<const Thyra::MultiVectorBase<SC> > getThyraMultiVectorConst( ) const requires std::same_as<SC,
double>;
183 void fromThyraMultiVector( Teuchos::RCP< Thyra::MultiVectorBase<SC> > thyraMV);
185 void norm2(const Teuchos::ArrayView<typename Teuchos::ScalarTraits<SC>::magnitudeType> &norms) const;
187 void normInf(const Teuchos::ArrayView<typename Teuchos::ScalarTraits<SC>::magnitudeType> &norms) const;
189 void dot(MultiVectorConstPtr_Type a, const Teuchos::ArrayView<typename Teuchos::ScalarTraits<SC>::magnitudeType> &dots) const;
192 void abs(MultiVectorConstPtr_Type a);
194 void update( const SC& alpha, const MultiVector_Type& A, const SC& beta );
197 void update( const SC& alpha, const MultiVector_Type& A, const SC& beta , const MultiVector_Type& B, const SC& gamma);
200 void multiply(Teuchos::ETransp transA, Teuchos::ETransp transB, const SC &alpha, MultiVectorConstPtr_Type &A, MultiVectorConstPtr_Type &B, const SC &beta);
202 void multiply(Teuchos::ETransp transA, Teuchos::ETransp transB, const SC &alpha, BlockMultiVectorConstPtr_Type &A, BlockMultiVectorConstPtr_Type &B, const SC &beta) requires std::same_as<SC,
double>;
204 void putScalar( const SC& alpha );
206 void scale( const SC& alpha );
208 void importFromVector( MultiVectorConstPtr_Type mvIn,
bool reuseImport = false, std::
string combineMode =
"Insert", std::
string type=
"Forward" );
210 void exportFromVector( MultiVectorConstPtr_Type mvIn,
bool reuseExport = false, std::
string combineMode =
"Insert", std::
string type=
"Forward" );
212 void writeMM(std::
string fileName=
"mv.mm") const;
214 void readMM(std::
string fileName) const;
216 MultiVectorConstPtr_Type getVector(
int i ) const;
218 MultiVectorPtr_Type sumColumns() const;
224 TpetraMultiVectorPtr_Type multiVector_;
225 MapConstPtr_Type map_;
226 TpetraImportPtr_Type importer_;
227 TpetraExportPtr_Type exporter_;