40 #ifndef _Isorropia_EpetraRedistributor_hpp_
41 #define _Isorropia_EpetraRedistributor_hpp_
45 #include <Teuchos_RCP.hpp>
46 #include <Teuchos_ParameterList.hpp>
50 class Epetra_BlockMap;
53 class Epetra_MultiVector;
54 class Epetra_CrsGraph;
55 class Epetra_CrsMatrix;
56 class Epetra_RowMatrix;
57 class Epetra_LinearProblem;
58 class Epetra_SrcDistObject;
59 class Epetra_DistObject;
82 Redistributor(Teuchos::RCP<Isorropia::Epetra::Partitioner> partitioner);
122 Epetra_DistObject& target);
140 Teuchos::RCP<Epetra_CrsGraph>
141 redistribute(
const Epetra_CrsGraph& input_graph,
bool callFillComplete=
true);
160 void redistribute(
const Epetra_CrsGraph& input_graph, Epetra_CrsGraph * &outputGraphPtr,
bool callFillComplete=
true);
178 Teuchos::RCP<Epetra_CrsMatrix>
179 redistribute(
const Epetra_CrsMatrix& input_matrix,
bool callFillComplete=
true);
198 void redistribute(
const Epetra_CrsMatrix& inputMatrix, Epetra_CrsMatrix * &outputMatrix,
bool callFillComplete=
true);
216 Teuchos::RCP<Epetra_CrsMatrix>
217 redistribute(
const Epetra_RowMatrix& input_matrix,
bool callFillComplete=
true);
237 redistribute(
const Epetra_RowMatrix& inputMatrix, Epetra_CrsMatrix * &outputMatrix,
bool callFillComplete=
true);
249 Teuchos::RCP<Epetra_Vector>
263 redistribute(
const Epetra_Vector& inputVector, Epetra_Vector * &outputVector);
276 Teuchos::RCP<Epetra_MultiVector>
292 redistribute(
const Epetra_MultiVector& inputVector, Epetra_MultiVector * &outputVector);
315 redistribute_reverse(
const Epetra_MultiVector& input_vector, Epetra_MultiVector& output_vector);