46 #ifndef Xyce_N_NLS_NOX_Group_h
47 #define Xyce_N_NLS_NOX_Group_h
55 #include "NOX_Abstract_Group.H"
56 #include "Teuchos_RCP.hpp"
74 class Ifpack_IlukGraph;
75 class Ifpack_CrsRiluk;
93 class Group :
public virtual NOX::Abstract::Group {
98 Group(
const Group& source, NOX::CopyType type = NOX::DeepCopy);
103 NOX::Abstract::Group&
operator=(
const NOX::Abstract::Group& source);
106 void setX(
const NOX::Abstract::Vector& input);
109 void computeX(
const NOX::Abstract::Group& grp,
const NOX::Abstract::Vector& d,
double step);
111 NOX::Abstract::Group::ReturnType
computeF();
114 NOX::Abstract::Group::ReturnType
computeNewton(Teuchos::ParameterList& params);
116 NOX::Abstract::Group::ReturnType
applyJacobian(
const NOX::Abstract::Vector& input, NOX::Abstract::Vector& result)
const;
119 NOX::Abstract::Group::ReturnType
applyJacobianTranspose(
const NOX::Abstract::Vector& input, NOX::Abstract::Vector& result)
const;
120 NOX::Abstract::Group::ReturnType
123 NOX::Abstract::Group::ReturnType
125 const NOX::Abstract::Vector& input,
126 NOX::Abstract::Vector& result)
const;
128 NOX::Abstract::Group::ReturnType
130 Teuchos::ParameterList& params,
133 NOX::Abstract::Group::ReturnType
135 Teuchos::ParameterList& params,
136 const NOX::Abstract::Vector& input,
137 NOX::Abstract::Vector& result)
const;
146 const NOX::Abstract::Vector&
getX()
const;
147 const NOX::Abstract::Vector&
getF()
const;
150 const NOX::Abstract::Vector&
getNewton()
const;
152 Teuchos::RCP<NOX::Abstract::Group>
153 clone(NOX::CopyType type = NOX::DeepCopy)
const;
161 void throwError(std::string method, std::string message)
const;
197 #endif // Xyce_N_NLS_NOX_SharedSystem_h
const NOX::Abstract::Vector & getGradient() const
void setX(const Vector &input)
void setLinearSolverStatus(bool status)
Teuchos::RCP< Vector > xVecPtr_
const NOX::Abstract::Vector & getX() const
Pure virtual class to augment a linear system.
Teuchos::RCP< Vector > newtonVecPtr_
bool isValidPreconditioner_
NOX::Abstract::Group::ReturnType computeF()
void computeX(const Group &grp, const Vector &d, double step)
NOX::Abstract::Group::ReturnType applyJacobianInverse(Teuchos::ParameterList ¶ms, const Vector &input, Vector &result) const
NOX::Abstract::Group::ReturnType computeGradient()
const NOX::Abstract::Vector & getF() const
NOX::Abstract::Group::ReturnType computeJacobian()
NOX::Abstract::Group::ReturnType computeNewton(Teuchos::ParameterList ¶ms)
NOX::Abstract::Group::ReturnType applyRightPreconditioning(bool useTranspose, Teuchos::ParameterList ¶ms, const Vector &input, Vector &result) const
NOX::Abstract::Group & operator=(const Group &source)
Teuchos::RCP< Vector > gradVecPtr_
NOX::Abstract::Group::ReturnType applyJacobian(const Vector &input, Vector &result) const
void throwError(std::string method, std::string message) const
bool linearSolverStatus() const
Teuchos::RCP< Vector > fVecPtr_
SharedSystem * sharedSystemPtr_
Teuchos::RCP< NOX::Abstract::Group > clone(NOX::CopyType type=NOX::DeepCopy) const
const NOX::Abstract::Vector & getNewton() const
NOX::Abstract::Group::ReturnType applyJacobianTranspose(const Vector &input, Vector &result) const