NOX
Development
|
Nonlinear solver based on a line search (i.e., damping) More...
#include <NOX_Solver_LineSearchBased.H>
Public Member Functions | |
LineSearchBased (const Teuchos::RCP< NOX::Abstract::Group > &grp, const Teuchos::RCP< NOX::StatusTest::Generic > &tests, const Teuchos::RCP< Teuchos::ParameterList > ¶ms) | |
Constructor. More... | |
virtual | ~LineSearchBased () |
Destructor. | |
virtual void | reset (const NOX::Abstract::Vector &initialGuess, const Teuchos::RCP< NOX::StatusTest::Generic > &tests) |
Resets the solver, sets a new status test, and sets a new initial guess. | |
virtual void | reset (const NOX::Abstract::Vector &initialGuess) |
Resets the solver 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 const NOX::Abstract::Group & | getPreviousSolutionGroup () const |
Return a reference 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 double | getStepSize () const |
virtual Teuchos::RCP< const NOX::Abstract::Group > | getSolutionGroupPtr () const |
Return a RCP to the solution group. | |
virtual Teuchos::RCP< const NOX::Abstract::Group > | getPreviousSolutionGroupPtr () const |
Return a RCP to the previous solution group. | |
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 the current iteration 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< NOX::Abstract::Vector > | dirPtr |
Current search direction pointer. | |
Teuchos::RCP< NOX::StatusTest::Generic > | testPtr |
Stopping test. | |
Teuchos::RCP< Teuchos::ParameterList > | paramsPtr |
Input parameters. | |
Teuchos::RCP< NOX::LineSearch::Generic > | lineSearchPtr |
Linesearch. | |
Teuchos::RCP< NOX::Direction::Generic > | directionPtr |
Search Direction. | |
double | stepSize |
Current step. | |
int | nIter |
Number of nonlinear iterations. | |
NOX::StatusTest::StatusType | status |
Status of nonlinear solver. | |
NOX::StatusTest::CheckType | checkType |
Type of check to use for status tests. See NOX::StatusTest for more details. | |
NOX::Solver::PrePostOperator | prePostOperator |
Pointer to a user defined NOX::Abstract::PrePostOperator object. | |
Nonlinear solver based on a line search (i.e., damping)
Solves using an iterative line-search-based method.
Each iteration, the solver does the following.
Compute a search direction via a NOX::Direction method
Compute a step length and update
as
via a NOX::LineSearch method.
The iterations progress until the status tests (see NOX::StatusTest) determine either failure or convergence.
Input Parameters
The following parameter list entries are valid for this solver:
Output Parameters
Every time solve() is called, a sublist for output parameters called "Output" will be created and contain the following parameters.
"Output":
NOX::Solver::LineSearchBased::LineSearchBased | ( | const Teuchos::RCP< NOX::Abstract::Group > & | grp, |
const Teuchos::RCP< NOX::StatusTest::Generic > & | tests, | ||
const Teuchos::RCP< Teuchos::ParameterList > & | params | ||
) |
Constructor.
See reset(NOX::Abstract::Group&, NOX::StatusTest::Generic&, Teuchos::ParameterList&) for description
References NOX::DeepCopy, NOX::GlobalData::getUtils(), globalDataPtr, init(), prePostOperator, NOX::Solver::PrePostOperator::reset(), NOX::ShapeCopy, Teuchos::ParameterList::sublist(), utilsPtr, and NOX::Solver::validateSolverOptionsSublist().
|
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.
References Teuchos::ParameterList::set(), Teuchos::ParameterList::sublist(), and NOX::StatusTest::Unconverged.