44 #ifndef SHYLU_LOCAL_SCHUR_OPERATOR_H 45 #define SHYLU_LOCAL_SCHUR_OPERATOR_H 47 #include <Epetra_Operator.h> 48 #include <Epetra_CrsMatrix.h> 49 #include <Epetra_LinearProblem.h> 50 #include <Amesos_BaseSolver.h> 51 #include <Epetra_MultiVector.h> 52 #include <Epetra_Map.h> 53 #include <Epetra_Comm.h> 58 #include <EpetraExt_Reindex_MultiVector.h> 69 Epetra_CrsMatrix *G, Epetra_CrsMatrix *R,
70 Epetra_LinearProblem *LP, Amesos_BaseSolver *solver,
71 Ifpack_Preconditioner *ifSolver, Epetra_CrsMatrix *C,
72 Epetra_Map *LocalDRowMap,
int nvectors);
76 ssym_->OrigLP->SetLHS(orig_lhs_);
77 ssym_->OrigLP->SetRHS(orig_rhs_);
78 ssym_->ReIdx_LP->fwd();
81 int SetUseTranspose(
bool useTranspose);
83 int Apply(
const Epetra_MultiVector &X, Epetra_MultiVector &Y)
const;
85 int ApplyInverse(
const Epetra_MultiVector &X, Epetra_MultiVector &Y)
const;
87 double NormInf()
const;
89 const char *Label()
const;
91 bool UseTranspose()
const;
93 bool HasNormInf()
const;
95 const Epetra_Comm& Comm()
const;
97 const Epetra_Map& OperatorDomainMap()
const;
99 const Epetra_Map& OperatorRangeMap()
const;
101 void PrintTimingInfo();
103 void ResetTempVectors(
int nvectors);
105 mutable int cntApply;
107 Epetra_CrsMatrix *G_;
108 Epetra_CrsMatrix *R_;
109 Epetra_LinearProblem *LP_;
110 Amesos_BaseSolver *solver_;
111 Ifpack_Preconditioner *ifSolver_;
112 Epetra_CrsMatrix *C_;
113 Epetra_MultiVector *orig_lhs_;
114 Epetra_MultiVector *orig_rhs_;
115 Epetra_Map *localDRowMap_;
135 #endif // SHYLU_LOCAL_SCHUR_OPERATOR_H
Main header file of ShyLU (Include main user calls)