53 #ifndef AMESOS2_EPETRA_MULTIVEC_ADAPTER_DECL_HPP 54 #define AMESOS2_EPETRA_MULTIVEC_ADAPTER_DECL_HPP 56 #include <Teuchos_RCP.hpp> 57 #include <Teuchos_Array.hpp> 58 #include <Teuchos_as.hpp> 60 #include <Tpetra_DefaultPlatform.hpp> 61 #include <Tpetra_Vector.hpp> 62 #include <Tpetra_Map.hpp> 64 #include <Epetra_MultiVector.h> 66 #include "Amesos2_MultiVecAdapter_decl.hpp" 81 typedef double scalar_t;
82 typedef int local_ordinal_t;
83 typedef int global_ordinal_t;
84 typedef size_t global_size_t;
85 typedef Tpetra::DefaultPlatform::DefaultPlatformType::NodeType node_t;
86 typedef Epetra_MultiVector multivec_t;
88 friend Teuchos::RCP<MultiVecAdapter<multivec_t> > createMultiVecAdapter<>(Teuchos::RCP<multivec_t>);
89 friend Teuchos::RCP<const MultiVecAdapter<multivec_t> > createConstMultiVecAdapter<>(Teuchos::RCP<const multivec_t>);
92 static const char* name;
114 bool isLocallyIndexed()
const;
116 bool isGloballyIndexed()
const;
125 Teuchos::RCP<const Tpetra::Map<local_ordinal_t, global_ordinal_t, node_t> >
129 const Teuchos::RCP<const Teuchos::Comm<int> > getComm()
const;
133 size_t getLocalLength()
const;
137 size_t getLocalNumVectors()
const;
141 global_size_t getGlobalLength()
const;
145 size_t getGlobalNumVectors()
const;
149 size_t getStride()
const;
153 bool isConstantStride()
const;
157 Teuchos::RCP<const Tpetra::Vector<scalar_t,local_ordinal_t,global_ordinal_t,node_t> >
158 getVector(
size_t j )
const;
168 Teuchos::RCP<Tpetra::Vector<scalar_t,local_ordinal_t,global_ordinal_t,node_t> >
169 getVectorNonConst(
size_t j );
177 void get1dCopy(
const Teuchos::ArrayView<scalar_t>& A,
180 const Tpetra::Map<local_ordinal_t,
182 node_t> > distribution_map )
const;
202 Teuchos::ArrayRCP<scalar_t> get1dViewNonConst(
bool local =
false );
215 void put1dData(
const Teuchos::ArrayView<const scalar_t>& new_data,
218 const Tpetra::Map<local_ordinal_t,
220 node_t> > source_map );
225 std::string description()
const;
229 void describe( Teuchos::FancyOStream& os,
230 const Teuchos::EVerbosityLevel verbLevel = Teuchos::Describable::verbLevel_default)
const;
236 Teuchos::RCP<multivec_t>
mv_;
238 mutable Teuchos::RCP<Epetra_Import> importer_;
239 mutable Teuchos::RCP<Epetra_Export> exporter_;
241 mutable Teuchos::RCP<const Epetra_BlockMap> mv_map_;
248 #endif // AMESOS2_EPETRA_MULTIVEC_ADAPTER_DECL_HPP Teuchos::RCP< multivec_t > mv_
The multi-vector this adapter wraps.
Definition: Amesos2_EpetraMultiVecAdapter_decl.hpp:236
Definition: Amesos2_AbstractConcreteMatrixAdapter.hpp:48
A templated MultiVector class adapter for Amesos2.
Definition: Amesos2_MultiVecAdapter_decl.hpp:175