40 #ifndef _Isorropia_Tpetra_hpp_ 41 #define _Isorropia_Tpetra_hpp_ 44 #include <Teuchos_RCP.hpp> 45 #include <Teuchos_ParameterList.hpp> 49 #ifdef HAVE_ISORROPIA_TPETRA 50 #include <Tpetra_MultiVector_decl.hpp> 51 #include <Tpetra_CrsGraph_decl.hpp> 52 #include <Tpetra_CrsMatrix_decl.hpp> 53 #include <Kokkos_DefaultNode.hpp> 61 #ifdef HAVE_ISORROPIA_TPETRA 67 template <
typename Node>
68 ::Tpetra::MultiVector<double,int,int,Node> *
74 template <
typename Node>
75 ::Tpetra::MultiVector<double,int,int,Node> *
77 const Teuchos::ParameterList& paramlist);
82 template <
typename Node>
83 ::Tpetra::CrsGraph<int,int,Node> *
89 template <
typename Node>
90 ::Tpetra::CrsGraph<int,int,Node> *
92 const Teuchos::ParameterList& paramlist);
97 template <
typename Node>
98 ::Tpetra::CrsMatrix<double,int,int,Node> *
104 template <
typename Node>
105 ::Tpetra::CrsMatrix<double,int,int,Node> *
107 const Teuchos::ParameterList& paramlist);
126 template <
typename Node>
127 Teuchos::RCP< ::Tpetra::CrsMatrix<double,int,int,Node> >
129 const ::Tpetra::Map<int,int,Node>& target_rowmap,
130 ::Tpetra::Import<int,int,Node> * importer=0);
149 template <
typename Node>
150 Teuchos::RCP< ::Tpetra::CrsMatrix<double,int,int,Node> >
152 const ::Tpetra::Map<int,int,Node>& target_rowmap,
153 ::Tpetra::Import<int,int,Node> * importer=0);
167 template <
typename Node>
168 Teuchos::RCP< ::Tpetra::CrsGraph<int,int,Node> >
170 const ::Tpetra::Map<int,int,Node>& target_rowmap,
171 ::Tpetra::Import<int,int,Node> * importer=0);
185 template <
typename Node>
186 Teuchos::RCP< ::Tpetra::MultiVector<double,int,int,Node> >
187 redistribute(const ::Tpetra::MultiVector<double,int,int,Node>& input,
188 const ::Tpetra::Map<int,int,Node> & target_map,
189 ::Tpetra::Import<int,int,Node> * importer=0);
203 template <
typename Node>
204 Teuchos::RCP< ::Tpetra::Vector<double,int,int,Node> >
205 redistribute(const ::Tpetra::Vector<double,int,int,Node>& input,
206 const ::Tpetra::Map<int,int,Node>& target_map,
207 ::Tpetra::Import<int,int,Node> * importer=0);
209 #ifndef DOXYGEN_SHOULD_SKIP_THIS 215 template <
typename Node>
216 ::Tpetra::MultiVector<double,int,int,Node>* create_row_weights_nnz(const ::Tpetra::RowMatrix<int,int,Node> & input_matrix);
222 template <
typename Node>
223 ::Tpetra::MultiVector<double,int,int,Node>* create_row_weights_nnz(const ::Tpetra::CrsGraph<int,int,Node> & input_graph);
225 template <
typename Node>
226 ::Tpetra::MultiVector<double,int,int,Node>* create_unit_weights(const ::Tpetra::MultiVector<double,int,int,Node>& input_coords);
253 template <
typename Node>
254 int repartition(const ::Tpetra::Map<int,int,Node> & input_map,
255 const ::Tpetra::MultiVector<double,int,int,Node>& weights,
256 std::vector<int>& myNewElements,
258 std::vector<int>& imports);
268 template <
typename Node>
269 void gather_all_proc_global_offsets(const ::Tpetra::Map<int,int,Node> & blkmap,
270 std::vector<int>& all_proc_offsets);
281 double compute_imbalance(
int nprocs, std::vector<int> &offsets,
282 double *wgts,
double target);
284 #endif //DOXYGEN_SHOULD_SKIP_THIS 285 #endif //HAVE_ISORROPIA_TPETRA
Isorropia is the namespace that contains general definitions that apply to all partitioners and that ...
Definition: Isorropia_Epetra.hpp:60
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' ...
Epetra_MultiVector * createBalancedCopy(const Epetra_MultiVector &input_vector)
createBalancedCopy() creates a copy with a more balanced map.