40 #ifndef _Isorropia_Epetra_hpp_
41 #define _Isorropia_Epetra_hpp_
44 #include <Teuchos_RCP.hpp>
45 #include <Teuchos_ParameterList.hpp>
50 class Epetra_BlockMap;
53 class Epetra_MultiVector;
54 class Epetra_RowMatrix;
55 class Epetra_CrsGraph;
56 class Epetra_CrsMatrix;
57 class Epetra_LinearProblem;
80 const Teuchos::ParameterList& paramlist);
93 const Teuchos::ParameterList& paramlist);
106 const Teuchos::ParameterList& paramlist);
112 Epetra_LinearProblem *
119 Epetra_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);
594 Teuchos::RCP<Epetra_CrsMatrix>
596 const Epetra_Map& target_rowmap,
597 Epetra_Import* importer=0);
616 Teuchos::RCP<Epetra_CrsMatrix>
618 const Epetra_Map& target_rowmap,
619 Epetra_Import* importer=0);
633 Teuchos::RCP<Epetra_CrsGraph>
635 const Epetra_Map& target_rowmap,
636 Epetra_Import* importer=0);
650 Teuchos::RCP<Epetra_MultiVector>
652 const Epetra_BlockMap& target_map,
653 Epetra_Import* importer=0);
667 Teuchos::RCP<Epetra_Vector>
669 const Epetra_Map& target_map,
670 Epetra_Import* importer=0);
672 #ifndef DOXYGEN_SHOULD_SKIP_THIS
678 Epetra_MultiVector* create_row_weights_nnz(
const Epetra_RowMatrix& input_matrix);
684 Epetra_MultiVector* create_row_weights_nnz(
const Epetra_CrsGraph& input_graph);
686 Epetra_MultiVector* create_unit_weights(
const Epetra_MultiVector& input_coords);
714 repartition(
const Epetra_BlockMap& input_map,
715 const Epetra_MultiVector& weights,
716 std::vector<int>& myNewElements,
718 std::vector<int>& imports);
728 void gather_all_proc_global_offsets(
const Epetra_BlockMap& blkmap,
729 std::vector<int>& all_proc_offsets);
740 double compute_imbalance(
int nprocs, std::vector<int> &offsets,
741 double *wgts,
double target);
743 #endif //DOXYGEN_SHOULD_SKIP_THIS