10 #ifndef NOX_EPETRA_LINEARSYSTEMSGJACOBI_H 
   11 #define NOX_EPETRA_LINEARSYSTEMSGJACOBI_H 
   15 #ifdef HAVE_STOKHOS_NOX 
   17 #include "NOX_Common.H" 
   19 #include "NOX_Epetra_LinearSystem.H"   
   20 #include "NOX_Utils.H"                   
   48     class LinearSystemSGJacobi : 
public virtual NOX::Epetra::LinearSystem {
 
   68       virtual ~LinearSystemSGJacobi();
 
   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;