43 #ifndef IFPACK_LINEPARTITIONER_H
44 #define IFPACK_LINEPARTITIONER_H
46 #if defined(Ifpack_SHOW_DEPRECATED_WARNINGS)
48 #warning "The Ifpack package is deprecated"
52 #include "Ifpack_ConfigDefs.h"
53 #include "Ifpack_Partitioner.h"
54 #include "Ifpack_OverlappingPartitioner.h"
55 #include "Ifpack_Graph_Epetra_RowMatrix.h"
56 #include "Teuchos_ParameterList.hpp"
102 typedef enum {COORDINATES=0, MATRIX_ENTRIES,} LINE_MODE;
143 mymode = List.get(
"partitioner: line mode",mymode);
144 if(mymode==
"coordinates") mode_=COORDINATES;
145 else if(mymode==
"matrix entries") mode_=MATRIX_ENTRIES;
147 threshold_ = List.get(
"partitioner: line detection threshold",threshold_);
148 if(threshold_ < 0.0) IFPACK_CHK_ERR(-1);
149 if(mode_==COORDINATES && threshold_ > 1.0) IFPACK_CHK_ERR(-1);
152 NumEqns_ = List.get(
"partitioner: PDE equations",NumEqns_);
153 if(NumEqns_ < 1 ) IFPACK_CHK_ERR(-2);
155 xcoord_ = List.get(
"partitioner: x-coordinates",xcoord_);
156 ycoord_ = List.get(
"partitioner: y-coordinates",ycoord_);
157 zcoord_ = List.get(
"partitioner: z-coordinates",zcoord_);
158 if(mode_==COORDINATES && !xcoord_ && !ycoord_ && !zcoord_) IFPACK_CHK_ERR(-3);
169 int Compute_Blocks_AutoLine(
int * blockIndices)
const;
170 void local_automatic_line_search(
int NumEqns,
int * blockIndices,
int last,
int next,
int LineID,
double tol,
int *itemp,
double * dtemp)
const;
173 Teuchos::RCP<const Ifpack_Graph> GraphWrapper_;
188 #endif // IFPACK_LINEPARTITIONER_H
virtual ~Ifpack_LinePartitioner()
Destructor.
int ComputePartitions()
Computes the partitions. Returns 0 if successful.
Ifpack_LinePartitioner(const Ifpack_Graph *Graph)
Constructor.
Ifpack_Graph_Epetra_RowMatrix: a class to define Ifpack_Graph as a light-weight conversion of Epetra_...
const Ifpack_Graph * Graph_
Reference to the graph to be partitioned.
Ifpack_Graph: a pure virtual class that defines graphs for IFPACK.
int SetPartitionParameters(Teuchos::ParameterList &List)
Sets all the parameters for the partitioner.