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);
Teuchos::RCP< Epetra_Map > target_map_
Definition: Isorropia_EpetraRedistributor.hpp:328
Abstract base class for classes which are constructed with a Partitioner instance, and define methods to redistribute their objects.
Definition: Isorropia_Redistributor.hpp:52
virtual ~Redistributor()
Destructor.
Epetra_Import & get_importer()
Definition: Isorropia_EpetraRedistributor.hpp:317
Redistributor(Teuchos::RCP< Isorropia::Epetra::Partitioner > partitioner)
This constructor calls the Isorropia::Epetra::Partitioner::partition method on the partitioner if it ...
void create_importer(const Epetra_BlockMap &src_map)
Create an importer object to be used in the redistribution.
Class which is constructed with a Partitioner instance, and provides several methods for redistributi...
Definition: Isorropia_EpetraRedistributor.hpp:72
Teuchos::RCP< Epetra_Import > importer_
Definition: Isorropia_EpetraRedistributor.hpp:327
void redistribute_reverse(const Epetra_Vector &input_vector, Epetra_Vector &output_vector)
Reverse redistribute an Epetra_Vector.
void redistribute(const Epetra_SrcDistObject &src, Epetra_DistObject &target)
Method to redistribute a Epetra_SrcDistObject into a Epetra_DistObject.
Teuchos::RCP< Isorropia::Epetra::Partitioner > partitioner_
Definition: Isorropia_EpetraRedistributor.hpp:326
An implementation of the Partitioner interface that operates on Epetra matrices and linear systems...
Definition: Isorropia_EpetraPartitioner.hpp:122