40 #ifndef _Isorropia_TpetraRedistributor_hpp_ 41 #define _Isorropia_TpetraRedistributor_hpp_ 45 #include <Teuchos_RCP.hpp> 46 #include <Teuchos_ParameterList.hpp> 48 #ifdef HAVE_ISORROPIA_TPETRA 51 #include <Kokkos_DefaultNode.hpp> 70 template <typename Node = ::Tpetra::Map<int, int>::node_type >
81 Redistributor(Teuchos::RCP<Isorropia::Tpetra::Partitioner<Node> > partitioner);
90 Redistributor(Isorropia::Tpetra::Partitioner<Node> *partitioner);
95 virtual ~Redistributor();
114 Teuchos::RCP< ::Tpetra::CrsGraph<int,int,Node> >
115 redistribute(const ::Tpetra::CrsGraph<int,int,Node>& input_graph,
bool callFillComplete=
true);
134 void redistribute(const ::Tpetra::CrsGraph<int,int,Node>& input_graph,
135 ::Tpetra::CrsGraph<int,int,Node> * &outputGraphPtr,
bool callFillComplete=
true);
153 Teuchos::RCP< ::Tpetra::CrsMatrix<double,int,int,Node> >
154 redistribute(const ::Tpetra::CrsMatrix<double,int,int,Node>& input_matrix,
bool callFillComplete=
true);
173 void redistribute(const ::Tpetra::CrsMatrix<double,int,int,Node>& inputMatrix,
174 ::Tpetra::CrsMatrix<double,int,int,Node> * &outputMatrix,
bool callFillComplete=
true);
186 Teuchos::RCP< ::Tpetra::Vector<double,int,int,Node> >
187 redistribute(const ::Tpetra::Vector<double,int,int,Node>& input_vector);
200 redistribute(const ::Tpetra::Vector<double,int,int,Node>& inputVector,
201 ::Tpetra::Vector<double,int,int,Node> * &outputVector);
214 Teuchos::RCP< ::Tpetra::MultiVector<double,int,int,Node> >
215 redistribute(const ::Tpetra::MultiVector<double,int,int,Node>& input_vector);
229 void redistribute(const ::Tpetra::MultiVector<double,int,int,Node>& inputVector,
230 ::Tpetra::MultiVector<double,int,int,Node> * &outputVector);
242 redistribute_reverse(const ::Tpetra::Vector<double,int,int,Node> & input_vector, ::Tpetra::Vector<double,int,int,Node>& output_vector);
253 redistribute_reverse(const ::Tpetra::MultiVector<double,int,int,Node>& input_vector, ::Tpetra::MultiVector<double,int,int,Node>& output_vector);
259 void create_importer(const ::Tpetra::Map<int,int,Node>& src_map);
261 Teuchos::RCP<Isorropia::Tpetra::Partitioner<Node> > partitioner_;
262 Teuchos::RCP< ::Tpetra::Import<int,int,Node> > importer_;
263 Teuchos::RCP< ::Tpetra::Map<int,int,Node> > target_map_;
265 bool created_importer_;
273 #endif //HAVE_ISORROPIA_TPETRA Isorropia is the namespace that contains general definitions that apply to all partitioners and that ...
Definition: Isorropia_Epetra.hpp:60
Abstract base class for classes which are constructed with a Partitioner instance, and define methods to redistribute their objects.
Definition: Isorropia_Redistributor.hpp:52
Contains functionality used for partitioning Tpetra matrices, maps, multivectors, etc...
Teuchos::RCP< Epetra_MultiVector > redistribute(const Epetra_MultiVector &input, const Epetra_BlockMap &target_map, Epetra_Import *importer=0)
Return a new Epetra_MultiVector object constructed with target_map, and with the contents of 'input' ...