40 #ifndef _Isorropia_EpetraMatcher_hpp_
41 #define _Isorropia_EpetraMatcher_hpp_
45 #include <Epetra_SerialComm.h>
46 #include <Epetra_Map.h>
47 #include <Epetra_CrsMatrix.h>
48 #include <Epetra_Import.h>
50 #ifdef ISORROPIA_HAVE_OMP
65 #define MIN(a,b) ((a)<(b)?(a):(b))
94 int U_,
V_,
E_,
avgDegU_,
k_star_,
icm_,
BFSInd_,
numThread_,
Qst_,
Qend_,
matched_,
choice_;
95 const Epetra_CrsMatrix *
A_;
97 #ifdef ISORROPIA_HAVE_OMP
98 omp_lock_t *scannedV_;
123 Matcher(
const Epetra_CrsMatrix*,
const Teuchos::ParameterList&
124 paramlist=Teuchos::ParameterList(
"EmptyParameterList"));
134 Matcher(Teuchos::RCP<const Epetra_CrsMatrix>,
const Teuchos::ParameterList&
135 paramlist=Teuchos::ParameterList(
"EmptyParameterList"));
145 Matcher(
const Epetra_CrsGraph *,
const Teuchos::ParameterList& paramlist=Teuchos::ParameterList(
"EmptyParameterList"));
155 Matcher(Teuchos::RCP<const Epetra_CrsGraph>,
const Teuchos::ParameterList& paramlist=Teuchos::ParameterList(
"EmptyParameterList"));
const Epetra_CrsMatrix * A_
Definition: Isorropia_EpetraMatcher.hpp:95
int * LV_
Definition: Isorropia_EpetraMatcher.hpp:85
int icm_
Definition: Isorropia_EpetraMatcher.hpp:94
int * lookahead_
Definition: Isorropia_EpetraMatcher.hpp:89
int * mateV_
Definition: Isorropia_EpetraMatcher.hpp:83
int recursive_path_finder(int, int)
int * Queue_
Definition: Isorropia_EpetraMatcher.hpp:84
int U_
Definition: Isorropia_EpetraMatcher.hpp:94
int augment_matching(int)
int * parent_
Definition: Isorropia_EpetraMatcher.hpp:88
void complete_nonperfect_permutation()
bool finish_
Definition: Isorropia_EpetraMatcher.hpp:93
Teuchos::RCP< Epetra_CrsMatrix > applyColumnPermutation()
Applies the column permutation from matching and returns a new matrix.
virtual ~Matcher()
Destructor.
int * LU_
Definition: Isorropia_EpetraMatcher.hpp:86
int getNumberOfMatchedVertices()
int V_
Definition: Isorropia_EpetraMatcher.hpp:94
void getMatchedColumnsForRowsCopy(int, int &, int *) const
Copies the matched columns corresponding to each row in a user given array.
Teuchos::RCP< Epetra_CrsMatrix > applyRowPermutation()
Applies the row permutation from matching and returns a new matrix.
int Qend_
Definition: Isorropia_EpetraMatcher.hpp:94
int Qst_
Definition: Isorropia_EpetraMatcher.hpp:94
int choice_
Definition: Isorropia_EpetraMatcher.hpp:94
void getMatchedRowsForColumnsCopy(int, int &, int *) const
Copies the matched rows corresponding to each column in a user given array.
int * unmatchedU_
Definition: Isorropia_EpetraMatcher.hpp:87
int avgDegU_
Definition: Isorropia_EpetraMatcher.hpp:94
int match()
Provides the column map which is actually the complete column permutation.
Matcher(const Epetra_CrsMatrix *, const Teuchos::ParameterList ¶mlist=Teuchos::ParameterList("EmptyParameterList"))
Constructor.
An implementation of the Matcher interface that operates on Epetra matrices and Graphs.
Definition: Isorropia_EpetraMatcher.hpp:80
int E_
Definition: Isorropia_EpetraMatcher.hpp:94
int construct_layered_graph()
int * CRS_indices_
Definition: Isorropia_EpetraMatcher.hpp:91
int k_star_
Definition: Isorropia_EpetraMatcher.hpp:94
double * CRS_vals_
Definition: Isorropia_EpetraMatcher.hpp:92
int matched_
Definition: Isorropia_EpetraMatcher.hpp:94
int * mateU_
Definition: Isorropia_EpetraMatcher.hpp:82
int BFSInd_
Definition: Isorropia_EpetraMatcher.hpp:94
int * CRS_pointers_
Definition: Isorropia_EpetraMatcher.hpp:90
int numThread_
Definition: Isorropia_EpetraMatcher.hpp:94