40#ifndef _Isorropia_EpetraRedistributor_hpp_
41#define _Isorropia_EpetraRedistributor_hpp_
45#include <Teuchos_RCP.hpp>
46#include <Teuchos_ParameterList.hpp>
53class Epetra_MultiVector;
55class Epetra_CrsMatrix;
56class Epetra_RowMatrix;
57class Epetra_LinearProblem;
58class Epetra_SrcDistObject;
59class 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);
An implementation of the Partitioner interface that operates on Epetra matrices and linear systems.
Definition: Isorropia_EpetraPartitioner.hpp:122
Class which is constructed with a Partitioner instance, and provides several methods for redistributi...
Definition: Isorropia_EpetraRedistributor.hpp:72
Epetra_Import & get_importer()
Definition: Isorropia_EpetraRedistributor.hpp:317
Teuchos::RCP< Epetra_Import > importer_
Definition: Isorropia_EpetraRedistributor.hpp:327
virtual ~Redistributor()
Destructor.
Teuchos::RCP< Epetra_Map > target_map_
Definition: Isorropia_EpetraRedistributor.hpp:328
Teuchos::RCP< Isorropia::Epetra::Partitioner > partitioner_
Definition: Isorropia_EpetraRedistributor.hpp:326
Abstract base class for classes which are constructed with a Partitioner instance,...
Definition: Isorropia_Redistributor.hpp:52
void create_importer(const Epetra_BlockMap &src_map)
Create an importer object to be used in the redistribution.
void redistribute(const Epetra_SrcDistObject &src, Epetra_DistObject &target)
Method to redistribute a Epetra_SrcDistObject into a Epetra_DistObject.
void redistribute_reverse(const Epetra_Vector &input_vector, Epetra_Vector &output_vector)
Reverse redistribute an Epetra_Vector.
void redistribute_reverse(const Epetra_MultiVector &input_vector, Epetra_MultiVector &output_vector)
Reverse redistribute an Epetra_MultiVector.
void redistribute(const Epetra_CrsGraph &input_graph, Epetra_CrsGraph *&outputGraphPtr, bool callFillComplete=true)
Method to accept a Epetra_CrsGraph object, and return a redistributed Epetra_CrsGraph object.
void redistribute(const Epetra_MultiVector &inputVector, Epetra_MultiVector *&outputVector)
Method to accept a Epetra_MultiVector object, and return a redistributed Epetra_MultiVector object.
Redistributor(Epetra_Map *target_map)
This constructor sets the target map for the redistribution.
void redistribute(const Epetra_RowMatrix &inputMatrix, Epetra_CrsMatrix *&outputMatrix, bool callFillComplete=true)
Method to accept a Epetra_RowMatrix object, and return a redistributed Epetra_CrsMatrix object.
Redistributor(Isorropia::Epetra::Partitioner *partitioner)
This constructor calls the Isorropia::Epetra::Partitioner::partition method on the partitioner if it ...
void redistribute(const Epetra_CrsMatrix &inputMatrix, Epetra_CrsMatrix *&outputMatrix, bool callFillComplete=true)
Method to accept a Epetra_CrsMatrix object, and return a redistributed Epetra_CrsMatrix object.
void redistribute(const Epetra_Vector &inputVector, Epetra_Vector *&outputVector)
Method to accept a Epetra_Vector object, and return a redistributed Epetra_Vector object.
Redistributor(Teuchos::RCP< Epetra_Map > target_map)
This constructor sets the target map for the redistribution.
Teuchos::RCP< Epetra_CrsGraph > redistribute(const Epetra_CrsGraph &input_graph, bool callFillComplete=true)
Method to accept a Epetra_CrsGraph object, and return a redistributed Epetra_CrsGraph object.
Teuchos::RCP< Epetra_MultiVector > redistribute(const Epetra_MultiVector &input_vector)
Method to accept a Epetra_MultiVector object, and return a redistributed Epetra_MultiVector object.
Teuchos::RCP< Epetra_CrsMatrix > redistribute(const Epetra_RowMatrix &input_matrix, bool callFillComplete=true)
Method to accept a Epetra_RowMatrix object, and return a redistributed Epetra_CrsMatrix object.
Teuchos::RCP< Epetra_CrsMatrix > redistribute(const Epetra_CrsMatrix &input_matrix, bool callFillComplete=true)
Method to accept a Epetra_CrsMatrix object, and return a redistributed Epetra_CrsMatrix object.
Teuchos::RCP< Epetra_Vector > redistribute(const Epetra_Vector &input_vector)
Method to accept a Epetra_Vector object, and return a redistributed Epetra_Vector object.
Redistributor(Teuchos::RCP< Isorropia::Epetra::Partitioner > partitioner)
This constructor calls the Isorropia::Epetra::Partitioner::partition method on the partitioner if it ...
Isorropia is the namespace that contains general definitions that apply to all partitioners and that ...
Definition: Isorropia_Epetra.hpp:60