40 #ifndef _Isorropia_EpetraOperator_hpp_
41 #define _Isorropia_EpetraOperator_hpp_
44 #include <Teuchos_RCP.hpp>
45 #include <Teuchos_ParameterList.hpp>
53 class Epetra_BlockMap;
56 class Epetra_MultiVector;
57 class Epetra_CrsGraph;
58 class Epetra_CrsMatrix;
59 class Epetra_RowMatrix;
60 class 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 ;
382 virtual const int&
operator[](
int myElem)
const;
400 const int*& array)
const;
404 void paramsToUpper(Teuchos::ParameterList &,
int &changed,
bool rmUnderscore=
true);
405 void stringToUpper(std::string &s,
int &changed,
bool rmUnderscore=
false);
415 Teuchos::RCP<Isorropia::Epetra::CostDescriber>
costs_;
Teuchos::RCP< Isorropia::Epetra::CostDescriber > & getCosts()
Get the cost object.
Definition: Isorropia_EpetraOperator.hpp:361
Operator(Teuchos::RCP< const Epetra_CrsGraph > input_graph, const Teuchos::ParameterList ¶mlist, int base)
Constructor that accepts an Epetra_CrsGraph object.
int global_num_hg_edge_weights_
Definition: Isorropia_EpetraOperator.hpp:428
int global_num_vertex_weights_
Definition: Isorropia_EpetraOperator.hpp:426
virtual int extractPropertiesCopy(int len, int &size, int *array) const
Copy a part of the property array.
An implementation of the Partitioner interface that operates on Epetra matrices and linear systems...
Definition: Isorropia_EpetraOperator.hpp:72
std::vector< int > numberElemsByProperties_
Definition: Isorropia_EpetraOperator.hpp:408
int exportsSize_
Definition: Isorropia_EpetraOperator.hpp:420
Teuchos::RCP< Isorropia::Epetra::CostDescriber > costs_
Definition: Isorropia_EpetraOperator.hpp:415
Teuchos::ParameterList paramlist_
Definition: Isorropia_EpetraOperator.hpp:418
virtual ~Operator()
Destructor.
Teuchos::RCP< const Epetra_MultiVector > input_coords_
Definition: Isorropia_EpetraOperator.hpp:414
Teuchos::RCP< const Epetra_BlockMap > input_map_
Definition: Isorropia_EpetraOperator.hpp:411
std::vector< int > properties_
Definition: Isorropia_EpetraOperator.hpp:422
int localNumberOfProperties_
Definition: Isorropia_EpetraOperator.hpp:407
Teuchos::RCP< const Epetra_MultiVector > weights_
Definition: Isorropia_EpetraOperator.hpp:416
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...
int numLocalProperties() const
Return the number of different values used for "properties" for this process only.
Definition: Isorropia_EpetraOperator.hpp:375
bool alreadyComputed() const
Query whether compute_operation() has already been called.
Definition: Isorropia_EpetraOperator.hpp:367
int base_
Definition: Isorropia_EpetraOperator.hpp:432
Teuchos::RCP< const Epetra_CrsGraph > input_graph_
Definition: Isorropia_EpetraOperator.hpp:412
virtual int numElemsWithProperty(int property) const
Return the number of elements in a given partition.
void stringToUpper(std::string &s, int &changed, bool rmUnderscore=false)
int global_num_graph_edge_weights_
Definition: Isorropia_EpetraOperator.hpp:427
Interface (abstract base class) for computing a new partitioning/coloring/ ordering and exploiting th...
Definition: Isorropia_Operator.hpp:58
int numProperties() const
Return the number of different values used for "properties".
Definition: Isorropia_EpetraOperator.hpp:371
virtual int extractPropertiesView(int &size, const int *&array) const
Give access of the property array that is owned by the current processor.
std::vector< int > imports_
Definition: Isorropia_EpetraOperator.hpp:421
Teuchos::RCP< Library > lib_
Definition: Isorropia_EpetraOperator.hpp:430
int numberOfProperties_
Definition: Isorropia_EpetraOperator.hpp:406
void computeNumberOfProperties()
bool operation_already_computed_
Definition: Isorropia_EpetraOperator.hpp:424
void paramsToUpper(Teuchos::ParameterList &, int &changed, bool rmUnderscore=true)
virtual void compute(bool force_compute)=0
Method which does the work of computing a new partitioning/coloring/ordering, depending on the child ...
virtual const int & operator[](int myElem) const
Return the new partition ID for a given element that resided locally in the old operation.
void setParameters(const Teuchos::ParameterList ¶mlist)
setParameters() is an internal method which handles the parameters from a Teuchos::ParameterList obje...
Teuchos::RCP< const Epetra_RowMatrix > input_matrix_
Definition: Isorropia_EpetraOperator.hpp:413