40#ifndef _Isorropia_Epetra_hpp_
41#define _Isorropia_Epetra_hpp_
44#include <Teuchos_RCP.hpp>
45#include <Teuchos_ParameterList.hpp>
53class Epetra_MultiVector;
54class Epetra_RowMatrix;
56class Epetra_CrsMatrix;
57class Epetra_LinearProblem;
80 const Teuchos::ParameterList& paramlist);
93 const Teuchos::ParameterList& paramlist);
106 const Teuchos::ParameterList& paramlist);
112Epetra_LinearProblem *
119Epetra_LinearProblem *
121 const Teuchos::ParameterList& paramlist);
172 const Epetra_Vector &row_weights);
201 const Teuchos::ParameterList& paramlist);
238 const Teuchos::ParameterList& paramlist);
279 const Epetra_Vector &row_weights);
309 const Teuchos::ParameterList& paramlist);
345 const Teuchos::ParameterList& paramlist);
387 const Epetra_Vector &row_weights);
416 const Teuchos::ParameterList& paramlist);
451 const Teuchos::ParameterList& paramlist);
493 const Epetra_Vector &row_weights);
523 const Teuchos::ParameterList& paramlist);
558 const Teuchos::ParameterList& paramlist);
562 const Teuchos::ParameterList& paramlist);
566 const Epetra_MultiVector &weights,
567 const Teuchos::ParameterList& paramlist);
575 const Epetra_MultiVector &weights);
594Teuchos::RCP<Epetra_CrsMatrix>
596 const Epetra_Map& target_rowmap,
597 Epetra_Import* importer=0);
616Teuchos::RCP<Epetra_CrsMatrix>
618 const Epetra_Map& target_rowmap,
619 Epetra_Import* importer=0);
633Teuchos::RCP<Epetra_CrsGraph>
635 const Epetra_Map& target_rowmap,
636 Epetra_Import* importer=0);
650Teuchos::RCP<Epetra_MultiVector>
652 const Epetra_BlockMap& target_map,
653 Epetra_Import* importer=0);
667Teuchos::RCP<Epetra_Vector>
669 const Epetra_Map& target_map,
670 Epetra_Import* importer=0);
672#ifndef DOXYGEN_SHOULD_SKIP_THIS
678Epetra_MultiVector* create_row_weights_nnz(
const Epetra_RowMatrix& input_matrix);
684Epetra_MultiVector* create_row_weights_nnz(
const Epetra_CrsGraph& input_graph);
686Epetra_MultiVector* create_unit_weights(
const Epetra_MultiVector& input_coords);
714repartition(
const Epetra_BlockMap& input_map,
715 const Epetra_MultiVector& weights,
716 std::vector<int>& myNewElements,
718 std::vector<int>& imports);
728void gather_all_proc_global_offsets(
const Epetra_BlockMap& blkmap,
729 std::vector<int>& all_proc_offsets);
740double compute_imbalance(
int nprocs, std::vector<int> &offsets,
741 double *wgts,
double target);
#define __deprecated
Definition: Isorropia_ConfigDefs.hpp:94
Definition: Isorropia_EpetraCostDescriber.hpp:128
An implementation of the Partitioner interface that operates on Epetra matrices and linear systems.
Definition: Isorropia_EpetraPartitioner.hpp:122
Teuchos::RCP< Epetra_CrsMatrix > redistribute_rows(const Epetra_CrsMatrix &input_matrix, const Epetra_Map &target_rowmap, Epetra_Import *importer=0)
redistribute_rows() is an internal Isorropia function, not part of the API.
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' ...
__deprecated Teuchos::RCP< Epetra_CrsMatrix > create_balanced_copy(const Epetra_CrsMatrix &input_matrix)
create_target_map() is an internal function used by Isorropia.
Epetra_MultiVector * createBalancedCopy(const Epetra_MultiVector &input_vector)
createBalancedCopy() creates a copy with a more balanced map.
Isorropia is the namespace that contains general definitions that apply to all partitioners and that ...
Definition: Isorropia_Epetra.hpp:60