43 #include "Ifpack_OverlapFactor.h" 44 #include "Epetra_Comm.h" 45 #include "Epetra_Map.h" 46 #include "Epetra_CrsGraph.h" 47 #include "Epetra_CrsMatrix.h" 48 #include "Epetra_VbrMatrix.h" 49 #include "Epetra_RowMatrix.h" 50 #include "Epetra_Vector.h" 51 #include "Epetra_MultiVector.h" 57 ValuesInitialized_(
false),
58 OverlapGraph_(OverlapGraph),
63 Ifpack_OverlapFactor::Ifpack_OverlapFactor(
const Epetra_RowMatrix * UserMatrix)
66 ValuesInitialized_(
false),
68 UserMatrix_(UserMatrix)
72 Ifpack_OverlapFactor::Ifpack_OverlapFactor(
const Ifpack_OverlapFactor & Source)
73 : Factored_(Source.Factored_),
74 Allocated_(Source.Allocated_),
75 ValuesInitialized_(Source.ValuesInitialized_),
76 OverlapGraph_(Source.OverlapGraph_),
77 UserMatrix_(Source.UserMatrix_)
81 int Ifpack_OverlapFactor::InitValues(
const Epetra_RowMatrix * UserMatrix) {
84 if (OverlapGraph_!=0) {
86 Epetra_CrsMatrix * CrsMatrix =
dynamic_cast<Epetra_CrsMatrix *
>(UserMatrix);
88 if (!Allocated()) EPETRA_CHK_ERR(-1);
89 if (ValuesInitialized()) EPETRA_CHK_ERR(1);
91 EPETRA_CHK_ERR(DerivedFactor());
92 SetValuesInitialized(
false);
97 int Ifpack_OverlapFactor::Factor() {
99 if (!ValuesInitialized()) EPETRA_CHK_ERR(-1);
100 if (Factored()) EPETRA_CHK_ERR(1);
102 EPETRA_CHK_ERR(DerivedFactor());
103 SetValuesInitialized(
false);
Ifpack_OverlapGraph: Constructs a graph for use with Ifpack preconditioners.