30#ifndef RYTHMOS_TIME_STEP_NONLINEAR_SOLVER_DECL_HPP
31#define RYTHMOS_TIME_STEP_NONLINEAR_SOLVER_DECL_HPP
33#include "Rythmos_Types.hpp"
34#include "Thyra_NonlinearSolverBase.hpp"
49template <
class Scalar>
54 typedef Teuchos::ScalarTraits<Scalar>
ST;
58 typedef Teuchos::ScalarTraits<ScalarMag>
SMT;
89 const RCP<
const Thyra::ModelEvaluator<Scalar> > &model
92 RCP<const Thyra::ModelEvaluator<Scalar> >
getModel()
const;
94 Thyra::SolveStatus<Scalar>
solve(
95 Thyra::VectorBase<Scalar> *x,
96 const Thyra::SolveCriteria<Scalar> *solveCriteria,
97 Thyra::VectorBase<Scalar> *delta = NULL
102 RCP<Thyra::NonlinearSolverBase<Scalar> >
109 RCP<Thyra::LinearOpWithSolveBase<Scalar> >
112 RCP<const Thyra::LinearOpWithSolveBase<Scalar> >
get_W()
const;
122 RCP<ParameterList> paramList_;
123 RCP<const Thyra::ModelEvaluator<Scalar> > model_;
124 RCP<Thyra::LinearOpWithSolveBase<Scalar> > J_;
125 RCP<Thyra::VectorBase<Scalar> > current_x_;
129 int defaultMaxIters_;
130 double nonlinearSafetyFactor_;
131 double linearSafetyFactor_;
132 double RMinFraction_;
133 bool throwOnLinearSolveFailure_;
137 static const std::string DefaultTol_name_;
138 static const double DefaultTol_default_;
140 static const std::string DefaultMaxIters_name_;
141 static const int DefaultMaxIters_default_;
143 static const std::string NonlinearSafetyFactor_name_;
144 static const double NonlinearSafetyFactor_default_;
146 static const std::string LinearSafetyFactor_name_;
147 static const double LinearSafetyFactor_default_;
149 static const std::string RMinFraction_name_;
150 static const double RMinFraction_default_;
152 static const std::string ThrownOnLinearSolveFailure_name_;
153 static const bool ThrownOnLinearSolveFailure_default_;
162template <
class Scalar>
170template <
class Scalar>
171RCP<TimeStepNonlinearSolver<Scalar> >
Simple undampended Newton solver designed to solve time step equations in accurate times-tepping meth...
bool is_W_current() const
RCP< TimeStepNonlinearSolver< Scalar > > timeStepNonlinearSolver(const RCP< ParameterList > &pl)
Nonmember constructor.
RCP< const ParameterList > getParameterList() const
Thyra::SolveStatus< Scalar > solve(Thyra::VectorBase< Scalar > *x, const Thyra::SolveCriteria< Scalar > *solveCriteria, Thyra::VectorBase< Scalar > *delta=NULL)
RCP< TimeStepNonlinearSolver< Scalar > > timeStepNonlinearSolver()
Nonmember constructor.
RCP< const Thyra::VectorBase< Scalar > > get_current_x() const
void set_W_is_current(bool W_is_current)
Teuchos::ScalarTraits< ScalarMag > SMT
bool supportsCloning() const
Teuchos::ScalarTraits< Scalar > ST
RCP< Thyra::LinearOpWithSolveBase< Scalar > > get_nonconst_W(const bool forceUpToDate)
RCP< const Thyra::ModelEvaluator< Scalar > > getModel() const
void setParameterList(RCP< ParameterList > const ¶mList)
RCP< const ParameterList > getValidParameters() const
RCP< ParameterList > getNonconstParameterList()
void setModel(const RCP< const Thyra::ModelEvaluator< Scalar > > &model)
RCP< Thyra::NonlinearSolverBase< Scalar > > cloneNonlinearSolver() const
RCP< const Thyra::LinearOpWithSolveBase< Scalar > > get_W() const
TimeStepNonlinearSolver()
Sets parameter defaults .
RCP< ParameterList > unsetParameterList()
ST::magnitudeType ScalarMag