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"));
An implementation of the Matcher interface that operates on Epetra matrices and Graphs.
Definition Isorropia_EpetraMatcher.hpp:80
int recursive_path_finder(int, int)
int numThread_
Definition Isorropia_EpetraMatcher.hpp:94
int * mateV_
Definition Isorropia_EpetraMatcher.hpp:83
int E_
Definition Isorropia_EpetraMatcher.hpp:94
int * LU_
Definition Isorropia_EpetraMatcher.hpp:86
int Qst_
Definition Isorropia_EpetraMatcher.hpp:94
int * parent_
Definition Isorropia_EpetraMatcher.hpp:88
const Epetra_CrsMatrix * A_
Definition Isorropia_EpetraMatcher.hpp:95
int V_
Definition Isorropia_EpetraMatcher.hpp:94
int * CRS_indices_
Definition Isorropia_EpetraMatcher.hpp:91
int getNumberOfMatchedVertices()
int BFSInd_
Definition Isorropia_EpetraMatcher.hpp:94
bool finish_
Definition Isorropia_EpetraMatcher.hpp:93
int * mateU_
Definition Isorropia_EpetraMatcher.hpp:82
int choice_
Definition Isorropia_EpetraMatcher.hpp:94
void complete_nonperfect_permutation()
int construct_layered_graph()
int * Queue_
Definition Isorropia_EpetraMatcher.hpp:84
int Qend_
Definition Isorropia_EpetraMatcher.hpp:94
int avgDegU_
Definition Isorropia_EpetraMatcher.hpp:94
int U_
Definition Isorropia_EpetraMatcher.hpp:94
int k_star_
Definition Isorropia_EpetraMatcher.hpp:94
int * LV_
Definition Isorropia_EpetraMatcher.hpp:85
int augment_matching(int)
double * CRS_vals_
Definition Isorropia_EpetraMatcher.hpp:92
int matched_
Definition Isorropia_EpetraMatcher.hpp:94
int icm_
Definition Isorropia_EpetraMatcher.hpp:94
int * lookahead_
Definition Isorropia_EpetraMatcher.hpp:89
int * CRS_pointers_
Definition Isorropia_EpetraMatcher.hpp:90
int * unmatchedU_
Definition Isorropia_EpetraMatcher.hpp:87
Matcher(Teuchos::RCP< const Epetra_CrsMatrix >, const Teuchos::ParameterList ¶mlist=Teuchos::ParameterList("EmptyParameterList"))
Constructor.
void getMatchedRowsForColumnsCopy(int, int &, int *) const
Copies the matched rows corresponding to each column in a user given array.
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.
Matcher(const Epetra_CrsMatrix *, const Teuchos::ParameterList ¶mlist=Teuchos::ParameterList("EmptyParameterList"))
Constructor.
Teuchos::RCP< Epetra_CrsMatrix > applyColumnPermutation()
Applies the column permutation from matching and returns a new matrix.
virtual ~Matcher()
Destructor.
int match()
Provides the column map which is actually the complete column permutation.
Matcher(const Epetra_CrsGraph *, const Teuchos::ParameterList ¶mlist=Teuchos::ParameterList("EmptyParameterList"))
Constructor.
Matcher(Teuchos::RCP< const Epetra_CrsGraph >, const Teuchos::ParameterList ¶mlist=Teuchos::ParameterList("EmptyParameterList"))
Constructor.
Isorropia is the namespace that contains general definitions that apply to all partitioners and that ...
Definition Isorropia_Epetra.hpp:60