Isorropia::Epetra::Redistributor Class Reference

Class which is constructed with a Partitioner instance, and provides several methods for redistributing Epetra objects given the partitioning computed by the Partitioner object. More...

#include <Isorropia_EpetraRedistributor.hpp>

Inheritance diagram for Isorropia::Epetra::Redistributor:

Inheritance graph
[legend]
Collaboration diagram for Isorropia::Epetra::Redistributor:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Redistributor (Teuchos::RCP< Isorropia::Epetra::Partitioner > partitioner)
 This constructor calls the Isorropia::Epetra::Partitioner::partition method on the partitioner if it has not already been called.
virtual ~Redistributor ()
 Destructor.
void redistribute (const Epetra_SrcDistObject &src, Epetra_DistObject &target)
 Method to redistribute a Epetra_SrcDistObject into a Epetra_DistObject.
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_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_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_Vector > redistribute (const Epetra_Vector &input_vector)
 Method to accept a Epetra_Vector object, and return a redistributed Epetra_Vector 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.
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.

Private Member Functions

void create_importer (const Epetra_BlockMap &src_map)
 Create an importer object to be used in the redistribution.

Private Attributes

Teuchos::RCP< Isorropia::Epetra::Partitionerpartitioner_
Teuchos::RCP< Epetra_Import > importer_
Teuchos::RCP< Epetra_Map > target_map_
bool created_importer_

Detailed Description

Class which is constructed with a Partitioner instance, and provides several methods for redistributing Epetra objects given the partitioning computed by the Partitioner object.


Constructor & Destructor Documentation

Isorropia::Epetra::Redistributor::Redistributor ( Teuchos::RCP< Isorropia::Epetra::Partitioner partitioner  ) 

This constructor calls the Isorropia::Epetra::Partitioner::partition method on the partitioner if it has not already been called.

Parameters:
[in] partitioner this input partitioner determines the new partitioning to be created when Isorropia::Epetra::Redistributor::redistribute is called

virtual Isorropia::Epetra::Redistributor::~Redistributor (  )  [virtual]

Destructor.

Reimplemented from Isorropia::Redistributor.


Member Function Documentation

void Isorropia::Epetra::Redistributor::redistribute ( const Epetra_SrcDistObject &  src,
Epetra_DistObject &  target 
)

Method to redistribute a Epetra_SrcDistObject into a Epetra_DistObject.

The caller is required to have constructed the target object using the correct target map.

Teuchos::RCP<Epetra_CrsGraph> Isorropia::Epetra::Redistributor::redistribute ( const Epetra_CrsGraph &  input_graph,
bool  callFillComplete = true 
)

Method to accept a Epetra_CrsGraph object, and return a redistributed Epetra_CrsGraph object.

Parameters:
[in] input_graph the graph for which we want a new graph that is distributed according to the partitioner with which this Redistributor was created.
[in] callFillComplete The new graph is FillComplete'd if callFillComplete is true. In that case, the range map is set to equal the row map. The domain map will equal the range map, unless the input_graph has different domain and range maps, in which case the range map is preserved. By default callFillComplete is true.
Returns:
a reference counted pointer to the new redistributed graph

Teuchos::RCP<Epetra_CrsMatrix> Isorropia::Epetra::Redistributor::redistribute ( const Epetra_CrsMatrix &  input_matrix,
bool  callFillComplete = true 
)

Method to accept a Epetra_CrsMatrix object, and return a redistributed Epetra_CrsMatrix object.

Parameters:
[in] input_matrix the matrix for which we want a new matrix that is distributed according to the partitioner with which this Redistributor was created.
[in] callFillComplete The new matrix is FillComplete'd if callFillComplete is true. In that case, the range map is set to equal the row map. The domain map will equal the range map, unless the input_matrix has different domain and range maps, in which case the range map is preserved. By default callFillComplete is true.
Returns:
a reference counted pointer to the new redistributed matrix

Teuchos::RCP<Epetra_CrsMatrix> Isorropia::Epetra::Redistributor::redistribute ( const Epetra_RowMatrix &  input_matrix,
bool  callFillComplete = true 
)

Method to accept a Epetra_RowMatrix object, and return a redistributed Epetra_CrsMatrix object.

Parameters:
[in] input_matrix the row matrix for which we want a new matrix that is distributed according to the partitioner with which this Redistributor was created.
[in] callFillComplete The new matrix is FillComplete'd if callFillComplete is true. In that case, the range map is set to equal the row map. The domain map will equal the range map, unless the input_matrix has different domain and range maps, in which case the range map is preserved. By default callFillComplete is true.
Returns:
a reference counted pointer to the new redistributed matrix

Teuchos::RCP<Epetra_Vector> Isorropia::Epetra::Redistributor::redistribute ( const Epetra_Vector &  input_vector  ) 

Method to accept a Epetra_Vector object, and return a redistributed Epetra_Vector object.

Parameters:
[in] input_vector the vector for which we want a new vector that is distributed according to the partitioner with which this Redistributor was created.
Returns:
a reference counted pointer to the new redistributed vector

Teuchos::RCP<Epetra_MultiVector> Isorropia::Epetra::Redistributor::redistribute ( const Epetra_MultiVector &  input_vector  ) 

Method to accept a Epetra_MultiVector object, and return a redistributed Epetra_MultiVector object.

Parameters:
[in] input_vector the multi vector for which we want a new multi vector that is distributed according to the partitioner with which this Redistributor was created.
Returns:
a reference counted pointer to the new redistributed multi vector

void Isorropia::Epetra::Redistributor::redistribute_reverse ( const Epetra_Vector &  input_vector,
Epetra_Vector &  output_vector 
)

Reverse redistribute an Epetra_Vector.

Parameters:
[in] input_vector a vector that is distributed according to the partitioner that was used to create this Redistributor
[out] output_vector a copy of the input_vector which has been redistributed according to the reverse of the partitioner that was used to create this Redistributor

void Isorropia::Epetra::Redistributor::redistribute_reverse ( const Epetra_MultiVector &  input_vector,
Epetra_MultiVector &  output_vector 
)

Reverse redistribute an Epetra_MultiVector.

Parameters:
[in] input_vector a multi vector that is distributed according to the partitioner that was used to create this Redistributor
[out] output_vector a copy of the input_vector which has been redistributed according to the reverse of the partitioner that was used to create this Redistributor

void Isorropia::Epetra::Redistributor::create_importer ( const Epetra_BlockMap &  src_map  )  [private]

Create an importer object to be used in the redistribution.

Parameters:
[in] src_map the map describing the pattern of the import operation


Member Data Documentation

Teuchos::RCP<Isorropia::Epetra::Partitioner> Isorropia::Epetra::Redistributor::partitioner_ [private]

Teuchos::RCP<Epetra_Import> Isorropia::Epetra::Redistributor::importer_ [private]

Teuchos::RCP<Epetra_Map> Isorropia::Epetra::Redistributor::target_map_ [private]

bool Isorropia::Epetra::Redistributor::created_importer_ [private]


The documentation for this class was generated from the following file: