10 #ifndef NOX_EPETRA_LINEARSYSTEMSGGS_H
11 #define NOX_EPETRA_LINEARSYSTEMSGGS_H
15 #ifdef HAVE_STOKHOS_NOX
17 #include "NOX_Common.H"
19 #include "NOX_Epetra_LinearSystem.H"
20 #include "NOX_Utils.H"
49 class LinearSystemSGGS :
public virtual NOX::Epetra::LinearSystem {
68 virtual ~LinearSystemSGGS();
74 virtual bool applyJacobian(
const NOX::Epetra::Vector& input,
75 NOX::Epetra::Vector& result)
const;
81 virtual bool applyJacobianTranspose(
const NOX::Epetra::Vector& input,
82 NOX::Epetra::Vector& result)
const;
89 const NOX::Epetra::Vector &input,
90 NOX::Epetra::Vector &result);
93 virtual bool applyRightPreconditioning(
bool useTranspose,
95 const NOX::Epetra::Vector& input,
96 NOX::Epetra::Vector& result)
const;
105 virtual bool computeJacobian(
const NOX::Epetra::Vector& x);
108 virtual bool createPreconditioner(
const NOX::Epetra::Vector& x,
110 bool recomputeGraph)
const;
113 virtual bool destroyPreconditioner()
const;
116 virtual bool recomputePreconditioner(
const NOX::Epetra::Vector& x,
120 virtual PreconditionerReusePolicyType
121 getPreconditionerPolicy(
bool advanceReuseCounter=
true);
124 virtual bool isPreconditionerConstructed()
const;
127 virtual bool hasPreconditioner()
const;
131 getJacobianOperator()
const;
138 getGeneratedPrecOperator()
const;
161 bool is_stoch_parallel;
218 bool only_use_linear;
Stokhos::Sparse3Tensor< int, double > Cijk_type