00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef _Isorropia_EpetraOrderer_hpp_
00031 #define _Isorropia_EpetraOrderer_hpp_
00032
00033 #include <Isorropia_ConfigDefs.hpp>
00034 #include <Teuchos_RCP.hpp>
00035 #include <Teuchos_ParameterList.hpp>
00036
00037 #include <Isorropia_EpetraCostDescriber.hpp>
00038 #include <Isorropia_EpetraOperator.hpp>
00039 #include <Isorropia_Orderer.hpp>
00040
00041
00042 #ifdef HAVE_EPETRA
00043 class Epetra_Map;
00044 class Epetra_BlockMap;
00045 class Epetra_Import;
00046 class Epetra_Vector;
00047 class Epetra_MultiVector;
00048 class Epetra_CrsGraph;
00049 class Epetra_CrsMatrix;
00050 class Epetra_RowMatrix;
00051 class Epetra_LinearProblem;
00052
00053 namespace Isorropia {
00054
00055 namespace Epetra {
00056
00062 class Orderer : public Isorropia::Orderer, public Isorropia::Epetra::Operator {
00063 public:
00064
00065 Orderer(Teuchos::RCP<const Epetra_CrsGraph> input_graph,
00066 const Teuchos::ParameterList& paramlist,
00067 bool compute_now=true);
00068
00069 Orderer(Teuchos::RCP<const Epetra_RowMatrix> input_matrix,
00070 const Teuchos::ParameterList& paramlist,
00071 bool compute_now=true);
00072
00074 ~Orderer() {} ;
00075
00090 void order(bool force_ordering=false);
00091
00092
00093 void compute(bool forceOrdering=false) {
00094 return (order(forceOrdering));
00095 }
00096
00097 };
00098
00099 }
00100 }
00101
00102 #endif //HAVE_EPETRA
00103
00104 #endif
00105