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