40 #ifndef _Isorropia_EpetraPartitioner_hpp_
41 #define _Isorropia_EpetraPartitioner_hpp_
93 #include <Teuchos_RCP.hpp>
94 #include <Teuchos_ParameterList.hpp>
102 class Epetra_BlockMap;
105 class Epetra_MultiVector;
106 class Epetra_CrsGraph;
107 class Epetra_CrsMatrix;
108 class Epetra_RowMatrix;
109 class Epetra_LinearProblem;
127 Partitioner(Teuchos::RCP<const Epetra_CrsGraph> inputGraph,
128 const Teuchos::ParameterList& paramlist=Teuchos::ParameterList(
"EmptyParameterList"),
129 bool compute_partitioning_now=
true);
135 const Teuchos::ParameterList& paramlist=Teuchos::ParameterList(
"EmptyParameterList"),
136 bool compute_partitioning_now=
true);
141 Partitioner(Teuchos::RCP<const Epetra_CrsGraph> inputGraph,
142 Teuchos::RCP<CostDescriber> costs,
143 const Teuchos::ParameterList& paramlist=Teuchos::ParameterList(
"EmptyParameterList"),
144 bool compute_partitioning_now=
true);
151 const Teuchos::ParameterList& paramlist=Teuchos::ParameterList(
"EmptyParameterList"),
152 bool compute_partitioning_now=
true);
157 Partitioner(Teuchos::RCP<const Epetra_RowMatrix> inputMatrix,
158 const Teuchos::ParameterList& paramlist=Teuchos::ParameterList(
"EmptyParameterList"),
159 bool compute_partitioning_now=
true);
165 const Teuchos::ParameterList& paramlist=Teuchos::ParameterList(
"EmptyParameterList"),
166 bool compute_partitioning_now=
true);
171 Partitioner(Teuchos::RCP<const Epetra_RowMatrix> inputMatrix,
172 Teuchos::RCP<CostDescriber> costs,
173 const Teuchos::ParameterList& paramlist=Teuchos::ParameterList(
"EmptyParameterList"),
174 bool compute_partitioning_now=
true);
181 const Teuchos::ParameterList& paramlist=Teuchos::ParameterList(
"EmptyParameterList"),
182 bool compute_partitioning_now=
true);
187 Partitioner(Teuchos::RCP<const Epetra_MultiVector> coords,
188 const Teuchos::ParameterList& paramlist=Teuchos::ParameterList(
"EmptyParameterList"),
189 bool compute_partitioning_now=
true);
195 const Teuchos::ParameterList& paramlist=Teuchos::ParameterList(
"EmptyParameterList"),
196 bool compute_partitioning_now=
true);
201 Partitioner(Teuchos::RCP<const Epetra_MultiVector> coords,
202 Teuchos::RCP<const Epetra_MultiVector> weights,
203 const Teuchos::ParameterList& paramlist=Teuchos::ParameterList(
"EmptyParameterList"),
204 bool compute_partitioning_now=
true);
209 const Epetra_MultiVector *weights,
210 const Teuchos::ParameterList& paramlist=Teuchos::ParameterList(
"EmptyParameterList"),
211 bool compute_partitioning_now=
true);
215 Partitioner(Teuchos::RCP<const Epetra_BlockMap> inputMap,
216 const Teuchos::ParameterList& paramlist=Teuchos::ParameterList(
"EmptyParameterList"),
217 bool compute_partitioning_now=
true);
222 const Teuchos::ParameterList& paramlist=Teuchos::ParameterList(
"EmptyParameterList"),
223 bool compute_partitioning_now=
true);
227 Partitioner(Teuchos::RCP<const Epetra_CrsGraph> inputGraph,
228 Teuchos::RCP<const Epetra_MultiVector> coords,
229 const Teuchos::ParameterList& paramlist=Teuchos::ParameterList(
"EmptyParameterList"),
230 bool compute_partitioning_now=
true);
235 const Epetra_MultiVector *coords,
236 const Teuchos::ParameterList& paramlist=Teuchos::ParameterList(
"EmptyParameterList"),
237 bool compute_partitioning_now=
true);
242 Partitioner(Teuchos::RCP<const Epetra_CrsGraph> inputGraph,
243 Teuchos::RCP<CostDescriber> costs,
244 Teuchos::RCP<const Epetra_MultiVector> coords,
245 Teuchos::RCP<const Epetra_MultiVector> weights,
246 const Teuchos::ParameterList& paramlist=Teuchos::ParameterList(
"EmptyParameterList"),
247 bool compute_partitioning_now=
true);
253 const Epetra_MultiVector *coords,
254 const Epetra_MultiVector *weights,
255 const Teuchos::ParameterList& paramlist=Teuchos::ParameterList(
"EmptyParameterList"),
256 bool compute_partitioning_now=
true);
260 Partitioner(Teuchos::RCP<const Epetra_RowMatrix> inputMatrix,
261 Teuchos::RCP<const Epetra_MultiVector> coords,
262 const Teuchos::ParameterList& paramlist=Teuchos::ParameterList(
"EmptyParameterList"),
263 bool compute_partitioning_now=
true);
268 const Epetra_MultiVector *coords,
269 const Teuchos::ParameterList& paramlist=Teuchos::ParameterList(
"EmptyParameterList"),
270 bool compute_partitioning_now=
true);
274 Partitioner(Teuchos::RCP<const Epetra_RowMatrix> inputMatrix,
275 Teuchos::RCP<CostDescriber> costs,
276 Teuchos::RCP<const Epetra_MultiVector> coords,
277 Teuchos::RCP<const Epetra_MultiVector> weights,
278 const Teuchos::ParameterList& paramlist=Teuchos::ParameterList(
"EmptyParameterList"),
279 bool compute_partitioning_now=
true);
285 const Epetra_MultiVector *coords,
286 const Epetra_MultiVector *weights,
287 const Teuchos::ParameterList& paramlist=Teuchos::ParameterList(
"EmptyParameterList"),
288 bool compute_partitioning_now=
true);
312 void setPartSizes(
int len,
int *global_part_id,
float *part_size);
331 void partition(
bool force_repartitioning=
false);
335 virtual void compute(
bool forceRecomputing=
false);