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 (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 | getStatus () |
Check current convergence and failure status. | |
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 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. | |
![]() | |
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. | |
NOX::Solver::PrePostOperator | prePostOperator |
Pointer to a user defined NOX::Abstract::PrePostOperator 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 |
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.