40 #ifndef _Isorropia_TpetraOperator_hpp_ 41 #define _Isorropia_TpetraOperator_hpp_ 44 #include <Teuchos_RCP.hpp> 45 #include <Teuchos_ParameterList.hpp> 49 #ifdef HAVE_ISORROPIA_TPETRA 52 #include <Tpetra_CrsGraph_decl.hpp> 64 template <class Node = ::Tpetra::Map<int,int>::node_type>
84 Operator(Teuchos::RCP<const ::Tpetra::CrsGraph<int,int,Node> > input_graph,
85 const Teuchos::ParameterList& paramlist,
int base);
95 void setParameters(
const Teuchos::ParameterList& paramlist);
97 virtual void compute(
bool force_compute) = 0 ;
101 bool alreadyComputed()
const 103 return operation_already_computed_;
106 int numProperties()
const {
107 return (numberOfProperties_);
110 int numLocalProperties()
const {
111 return (localNumberOfProperties_);
117 virtual const int& operator[](
int myElem)
const;
121 virtual int numElemsWithProperty(
int property)
const;
126 virtual void elemsWithProperty(
int property,
130 virtual int extractPropertiesCopy(
int len,
134 virtual int extractPropertiesView(
int& size,
135 const int*& array)
const;
139 void paramsToUpper(Teuchos::ParameterList &,
int &changed,
bool rmUnderscore=
true);
140 void stringToUpper(std::string &s,
int &changed,
bool rmUnderscore=
false);
141 int numberOfProperties_;
142 int localNumberOfProperties_;
143 std::vector<int> numberElemsByProperties_;
146 Teuchos::RCP<const ::Tpetra::CrsGraph<int,int,Node> > input_graph_;
147 Teuchos::RCP<const ::Tpetra::Map<int,int,Node> > input_map_;
149 Teuchos::RCP<const ::Tpetra::RowMatrix<double,int,int,Node> > input_matrix_;
150 Teuchos::RCP<const ::Tpetra::MultiVector<double,int,int,Node> > input_coords_;
151 Teuchos::RCP<Isorropia::Tpetra::CostDescriber<Node> > costs_;
152 Teuchos::RCP<const ::Tpetra::MultiVector<double,int,int,Node> > weights_;
155 Teuchos::ParameterList paramlist_;
158 std::vector<int> imports_;
159 std::vector<int> properties_;
161 bool operation_already_computed_;
163 int global_num_vertex_weights_;
164 int global_num_graph_edge_weights_;
165 int global_num_hg_edge_weights_;
167 Teuchos::RCP<Library<Node> > lib_;
171 void computeNumberOfProperties();
Isorropia is the namespace that contains general definitions that apply to all partitioners and that ...
Definition: Isorropia_Epetra.hpp:60
Interface (abstract base class) for computing a new partitioning/coloring/ ordering and exploiting th...
Definition: Isorropia_Operator.hpp:58