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_)
84 if (OverlapGraph_!=0) {
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.