NOX
Development
|
Light wrapper over linear solver, executes exactly one iteration. More...
#include <NOX_Solver_SingleStep.H>
Public Member Functions | |
SingleStep (const Teuchos::RCP< NOX::Abstract::Group > &grp, const Teuchos::RCP< Teuchos::ParameterList > ¶ms) | |
virtual void | reset () |
Resets the solver for another solve. This resets the counters and status only. Uses the final solution from the last solve as the initial guess for the next solve. More... | |
virtual void | reset (const NOX::Abstract::Vector &initial_guess) |
Resets the solver and sets a new initial guess. | |
virtual void | reset (const NOX::Abstract::Vector &initial_guess, const Teuchos::RCP< NOX::StatusTest::Generic > &test) |
Resets the solver, sets a new status test, and sets a new initial guess. | |
virtual NOX::StatusTest::StatusType | step () |
Do one nonlinear step in the iteration sequence and return status. | |
virtual NOX::StatusTest::StatusType | solve () |
Solve the nonlinear problem and return final status. More... | |
virtual const NOX::Abstract::Group & | getSolutionGroup () const |
Return a reference to the current solution group. | |
virtual Teuchos::RCP< const NOX::Abstract::Group > | getSolutionGroupPtr () const |
Return a RCP to the solution group. | |
virtual const NOX::Abstract::Group & | getPreviousSolutionGroup () const |
Return a reference to the previous solution group. | |
virtual Teuchos::RCP< const NOX::Abstract::Group > | getPreviousSolutionGroupPtr () const |
Return a RCP to the previous solution group. | |
virtual NOX::StatusTest::StatusType | getStatus () const |
Returns the current status of the solver. | |
virtual int | getNumIterations () const |
Get number of iterations. | |
virtual const Teuchos::ParameterList & | getList () const |
Return a reference to the solver parameters. | |
virtual Teuchos::RCP< const Teuchos::ParameterList > | getListPtr () const |
Return a RCP to the solver parameters. | |
virtual Teuchos::RCP< const NOX::SolverStats > | getSolverStatistics () const |
Return a RCP to the solver statistics. | |
Public Member Functions inherited from NOX::Solver::Generic | |
Generic () | |
Constructor (does nothing) | |
virtual | ~Generic () |
Destructor (does nothing) | |
Protected Member Functions | |
virtual void | init () |
Print out initialization information and calcuation the RHS. | |
virtual void | printUpdate () |
Prints some status information. | |
bool | check (Abstract::Group::ReturnType ret, const std::string &task) |
Prints some status information. | |
bool | try_step () |
Prints some status information. | |
Protected Attributes | |
Teuchos::RCP< NOX::GlobalData > | globalDataPtr |
Pointer to the global data object. | |
Teuchos::RCP< NOX::Utils > | utilsPtr |
Utils. | |
Teuchos::RCP < NOX::Abstract::Group > | solnPtr |
Current solution. | |
Teuchos::RCP < NOX::Abstract::Group > | oldSolnPtr |
Previous solution pointer. | |
Teuchos::RCP < Teuchos::ParameterList > | paramsPtr |
Input parameters. | |
int | nIter |
Number of nonlinear iterations. | |
NOX::StatusTest::StatusType | status |
Status of nonlinear solver. | |
Teuchos::RCP< NOX::Observer > | observer |
Pointer to a user defined NOX::Observer object. | |
bool | ignoreLinearSolverFailures |
If set to true, the return status of the linear solver is ignored, step is declared a success. | |
bool | updateJacobian |
If set to true, the Jacobian is computed at the beginning of each nonlinear iteration. | |
bool | printNorms |
Print the norms of residual (F) and update (dx). | |
bool | computeRelativeNorm |
If print norms is enabled, this will also compute the relative norm, . | |
double | normF_0 |
Initial residual norm used for computing the relative norm. | |
Teuchos::RCP < NOX::Abstract::Group > | frozenJacobianPtr |
Group that contains the "frozen Jacobian" if updateJacobian is false. | |
Light wrapper over linear solver, executes exactly one iteration.
This class exists to support applications which always instantiate a NOX Nonlinear solver via the NOX::Solver::Factory, but may be used to solve known linear problems. In that case, it is convenient to create a NOX::Solver object which requires no status tests and simply executes the linear solver.
Valid parameters in the ParameterList are:
[in] | Ignore Linear Solver Failure | (bool) - If set to true, ignore the linear solver status. This is used for iterative methods where the requested tolerance was not explicitly met, but the solve might still be good enough to use. Defaults to false. |
[in] | Update Jacobian | - If set to true, the Jacobian is computed at the beginning of each nonlinear iteration. In some use cases, we may want to reuse the Jacobian matrix (i.e. only the RHS is changing). Defaults to true. |
[in] | Print Norms | - If set to true, the step output will print the residual norm and update norm. |
[in] | Print Relative Norm | - If set to true, this will cache the initial residual norm and if "Print Norms" is enabled, will also print the ratio of initial to final norm for the step. |
|
virtual |
Resets the solver for another solve. This resets the counters and status only. Uses the final solution from the last solve as the initial guess for the next solve.
NOTE: All NOX solvers will call reset() automatically at teh beginning of the solve() method. We add the reset() method to the solver interface for the application to call in case the application needs to reset counters and status manually before the next call to solve() is made.
Implements NOX::Solver::Generic.
References NOX::StatusTest::Unconverged.
|
virtual |
Solve the nonlinear problem and return final status.
By "solve", we call iterate() until the NOX::StatusTest value is either NOX::StatusTest::Converged or NOX::StatusTest::Failed.
Implements NOX::Solver::Generic.