42 #ifndef THYRA_NONLINEAR_SOLVER_BASE_HPP
43 #define THYRA_NONLINEAR_SOLVER_BASE_HPP
45 #include "Thyra_LinearOpWithSolveBase.hpp"
46 #include "Thyra_ModelEvaluator.hpp"
47 #include "Teuchos_Describable.hpp"
48 #include "Teuchos_VerboseObject.hpp"
49 #include "Teuchos_ParameterListAcceptor.hpp"
74 template <
class Scalar>
224 template <
class Scalar>
232 return nonlinearSolver.
solve(x,solveCriteria,delta);
239 template <
class Scalar>
245 template <
class Scalar>
249 return Teuchos::null;
252 template <
class Scalar>
256 return Teuchos::null;
259 template <
class Scalar>
265 template <
class Scalar>
269 return Teuchos::null;
272 template <
class Scalar>
276 return Teuchos::null;
279 template <
class Scalar>
283 true, std::logic_error,
284 "Error, the subclass object described as " << this->description() <<
" did not"
285 " override this function!"
293 #endif // THYRA_NONLINEAR_SOLVER_BASE_HPP
Pure abstract base interface for evaluating a stateless "model" that can be mapped into a number of d...
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
virtual RCP< LinearOpWithSolveBase< Scalar > > get_nonconst_W(const bool forceUpToDate=false)
Get a nonconst RCP to the Jacobian if available.
Base class for all nonlinear equation solvers.
virtual RCP< NonlinearSolverBase< Scalar > > cloneNonlinearSolver() const
Clone the solver algorithm if supported.
virtual bool supportsCloning() const
Return if this solver object supports cloning or not.
virtual RCP< const ModelEvaluator< Scalar > > getModel() const =0
Get the model that defines the nonlinear equations.
virtual void set_W_is_current(bool W_is_current)
Set if *get_W() is current with respect to *get_current_x().
Abstract interface for finite-dimensional dense vectors.
Simple struct for the return status from a solve.
virtual RCP< const LinearOpWithSolveBase< Scalar > > get_W() const
Get a const RCP to the Jacobian if available.
virtual SolveStatus< Scalar > solve(VectorBase< Scalar > *x, const SolveCriteria< Scalar > *solveCriteria=NULL, VectorBase< Scalar > *delta=NULL)=0
Solve a set of nonlinear equations from a given starting point.
const SolveStatus< Scalar > solve(NonlinearSolverBase< Scalar > &nonlinearSolver, VectorBase< Scalar > *x, const SolveCriteria< Scalar > *solveCriteria=NULL, VectorBase< Scalar > *delta=NULL)
virtual bool is_W_current() const
Returns true if *get_W() is current with respect to *get_current_x().
virtual RCP< const VectorBase< Scalar > > get_current_x() const
Return the current value of the solution x as computed in the last solve() operation if supported...
Simple struct that defines the requested solution criteria for a solve.
virtual void setModel(const RCP< const ModelEvaluator< Scalar > > &model)=0
Set the model that defines the nonlinear equations.