40#ifndef _Isorropia_EpetraOperator_hpp_
41#define _Isorropia_EpetraOperator_hpp_
44#include <Teuchos_RCP.hpp>
45#include <Teuchos_ParameterList.hpp>
56class Epetra_MultiVector;
58class Epetra_CrsMatrix;
59class Epetra_RowMatrix;
60class Epetra_LinearProblem;
105 Operator(Teuchos::RCP<const Epetra_CrsGraph> input_graph,
106 const Teuchos::ParameterList& paramlist,
int base);
123 Operator(Teuchos::RCP<const Epetra_BlockMap> input_map,
124 const Teuchos::ParameterList& paramlist,
int base);
147 Operator(Teuchos::RCP<const Epetra_CrsGraph> input_graph,
148 Teuchos::RCP<const Epetra_MultiVector> input_coords,
149 const Teuchos::ParameterList& paramlist,
int base);
171 Operator (Teuchos::RCP<const Epetra_CrsGraph> input_graph,
172 Teuchos::RCP<CostDescriber> costs,
173 const Teuchos::ParameterList& paramlist,
int base);
201 Operator (Teuchos::RCP<const Epetra_CrsGraph> input_graph,
202 Teuchos::RCP<CostDescriber> costs,
203 Teuchos::RCP<const Epetra_MultiVector> coords,
204 Teuchos::RCP<const Epetra_MultiVector> weights,
205 const Teuchos::ParameterList& paramlist,
int base);
223 Operator(Teuchos::RCP<const Epetra_RowMatrix> input_matrix,
224 const Teuchos::ParameterList& paramlist,
int base);
246 Operator(Teuchos::RCP<const Epetra_RowMatrix> input_matrix,
247 Teuchos::RCP<const Epetra_MultiVector> coords,
248 const Teuchos::ParameterList& paramlist,
int base);
270 Operator(Teuchos::RCP<const Epetra_RowMatrix> input_matrix,
271 Teuchos::RCP<CostDescriber> costs,
272 const Teuchos::ParameterList& paramlist,
int base);
301 Operator(Teuchos::RCP<const Epetra_RowMatrix> input_matrix,
302 Teuchos::RCP<CostDescriber> costs,
303 Teuchos::RCP<const Epetra_MultiVector> coords,
304 Teuchos::RCP<const Epetra_MultiVector> weights,
305 const Teuchos::ParameterList& paramlist,
int base);
324 Operator(Teuchos::RCP<const Epetra_MultiVector> coords,
325 const Teuchos::ParameterList& paramlist,
int base);
346 Operator(Teuchos::RCP<const Epetra_MultiVector> coords,
347 Teuchos::RCP<const Epetra_MultiVector> weights,
348 const Teuchos::ParameterList& paramlist,
int base);
363 virtual void compute(
bool force_compute) = 0 ;
400 const int*& array)
const;
404 void paramsToUpper(Teuchos::ParameterList &,
int &changed,
bool rmUnderscore=
true);
415 Teuchos::RCP<Isorropia::Epetra::CostDescriber>
costs_;
An implementation of the Partitioner interface that operates on Epetra matrices and linear systems.
Definition Isorropia_EpetraOperator.hpp:72
std::vector< int > properties_
Definition Isorropia_EpetraOperator.hpp:422
int numProperties() const
Return the number of different values used for "properties".
Definition Isorropia_EpetraOperator.hpp:371
int numberOfProperties_
Definition Isorropia_EpetraOperator.hpp:406
virtual ~Operator()
Destructor.
Teuchos::RCP< const Epetra_BlockMap > input_map_
Definition Isorropia_EpetraOperator.hpp:411
int numLocalProperties() const
Return the number of different values used for "properties" for this process only.
Definition Isorropia_EpetraOperator.hpp:375
Operator(Teuchos::RCP< const Epetra_CrsGraph > input_graph, const Teuchos::ParameterList ¶mlist, int base)
Constructor that accepts an Epetra_CrsGraph object.
Teuchos::RCP< const Epetra_CrsGraph > input_graph_
Definition Isorropia_EpetraOperator.hpp:412
int global_num_vertex_weights_
Definition Isorropia_EpetraOperator.hpp:426
std::vector< int > numberElemsByProperties_
Definition Isorropia_EpetraOperator.hpp:408
Operator(Teuchos::RCP< const Epetra_BlockMap > input_map, const Teuchos::ParameterList ¶mlist, int base)
Constructor that accepts an Epetra_BlockMap object.
std::vector< int > imports_
Definition Isorropia_EpetraOperator.hpp:421
virtual void elemsWithProperty(int property, int *elementList, int len) const
Fill user-allocated list (of length len) with the global element ids to be located in the given parti...
void stringToUpper(std::string &s, int &changed, bool rmUnderscore=false)
Teuchos::RCP< Isorropia::Epetra::CostDescriber > costs_
Definition Isorropia_EpetraOperator.hpp:415
virtual const int & operator[](int myElem) const
Return the new partition ID for a given element that resided locally in the old operation.
bool alreadyComputed() const
Query whether compute_operation() has already been called.
Definition Isorropia_EpetraOperator.hpp:367
int localNumberOfProperties_
Definition Isorropia_EpetraOperator.hpp:407
virtual int extractPropertiesView(int &size, const int *&array) const
Give access of the property array that is owned by the current processor.
int base_
Definition Isorropia_EpetraOperator.hpp:432
Operator(Teuchos::RCP< const Epetra_RowMatrix > input_matrix, Teuchos::RCP< CostDescriber > costs, Teuchos::RCP< const Epetra_MultiVector > coords, Teuchos::RCP< const Epetra_MultiVector > weights, const Teuchos::ParameterList ¶mlist, int base)
Constructor that accepts an Epetra_RowMatrix object, a CostDescriber, an Epetra_MultiVector object of...
Teuchos::RCP< Isorropia::Epetra::CostDescriber > & getCosts()
Get the cost object.
Definition Isorropia_EpetraOperator.hpp:361
Operator(Teuchos::RCP< const Epetra_CrsGraph > input_graph, Teuchos::RCP< CostDescriber > costs, const Teuchos::ParameterList ¶mlist, int base)
Constructor that accepts an Epetra_CrsGraph object, a CostDescriber, an Epetra_MultiVector object of ...
Operator(Teuchos::RCP< const Epetra_RowMatrix > input_matrix, Teuchos::RCP< CostDescriber > costs, const Teuchos::ParameterList ¶mlist, int base)
Constructor that accepts an Epetra_RowMatrix object and a CostDescriber.
void setParameters(const Teuchos::ParameterList ¶mlist)
setParameters() is an internal method which handles the parameters from a Teuchos::ParameterList obje...
Operator(Teuchos::RCP< const Epetra_RowMatrix > input_matrix, Teuchos::RCP< const Epetra_MultiVector > coords, const Teuchos::ParameterList ¶mlist, int base)
Constructor that accepts an Epetra_RowMatrix object and an Epetra_MultiVector object of coordinates.
Teuchos::ParameterList paramlist_
Definition Isorropia_EpetraOperator.hpp:418
Operator(Teuchos::RCP< const Epetra_CrsGraph > input_graph, Teuchos::RCP< CostDescriber > costs, Teuchos::RCP< const Epetra_MultiVector > coords, Teuchos::RCP< const Epetra_MultiVector > weights, const Teuchos::ParameterList ¶mlist, int base)
Constructor that accepts an Epetra_CrsGraph object, a CostDescriber, an Epetra_MultiVector object of ...
virtual int numElemsWithProperty(int property) const
Return the number of elements in a given partition.
void paramsToUpper(Teuchos::ParameterList &, int &changed, bool rmUnderscore=true)
Teuchos::RCP< Library > lib_
Definition Isorropia_EpetraOperator.hpp:430
Operator(Teuchos::RCP< const Epetra_RowMatrix > input_matrix, const Teuchos::ParameterList ¶mlist, int base)
Constructor that accepts an Epetra_RowMatrix object.
void computeNumberOfProperties()
int global_num_graph_edge_weights_
Definition Isorropia_EpetraOperator.hpp:427
Operator(Teuchos::RCP< const Epetra_MultiVector > coords, const Teuchos::ParameterList ¶mlist, int base)
Constructor that accepts an Epetra_MultiVector object and a ParameterList.
virtual void compute(bool force_compute)=0
Method which does the work of computing a new partitioning/coloring/ordering, depending on the child ...
int global_num_hg_edge_weights_
Definition Isorropia_EpetraOperator.hpp:428
Teuchos::RCP< const Epetra_MultiVector > input_coords_
Definition Isorropia_EpetraOperator.hpp:414
Operator(Teuchos::RCP< const Epetra_CrsGraph > input_graph, Teuchos::RCP< const Epetra_MultiVector > input_coords, const Teuchos::ParameterList ¶mlist, int base)
Constructor that accepts an Epetra_CrsGraph object and an Epetra_MultiVector object of coordinates.
Teuchos::RCP< const Epetra_RowMatrix > input_matrix_
Definition Isorropia_EpetraOperator.hpp:413
virtual int extractPropertiesCopy(int len, int &size, int *array) const
Copy a part of the property array.
bool operation_already_computed_
Definition Isorropia_EpetraOperator.hpp:424
Operator(Teuchos::RCP< const Epetra_MultiVector > coords, Teuchos::RCP< const Epetra_MultiVector > weights, const Teuchos::ParameterList ¶mlist, int base)
Constructor that accepts an Epetra_MultiVector object and a ParameterList.
int exportsSize_
Definition Isorropia_EpetraOperator.hpp:420
Teuchos::RCP< const Epetra_MultiVector > weights_
Definition Isorropia_EpetraOperator.hpp:416
Interface (abstract base class) for computing a new partitioning/coloring/ ordering and exploiting th...
Definition Isorropia_Operator.hpp:58
Isorropia is the namespace that contains general definitions that apply to all partitioners and that ...
Definition Isorropia_Epetra.hpp:60