NOX
Development
|
All parameters are specified via parameter lists as defined by the Teuchos::ParameterList class.
Here is the basic hierarchical structure of the top level parameter list that is passed to a NOX::Solver::Factory object or the builder method.
"Nonlinear Solver" [std::string] - see NOX::Solver::Factory for complete list of options. Valid choices are:
"Direction" [sublist] - used by NOX::Solver derived objects to compute the primary direction associated with the method:
"Method" [std::string] - see NOX::Direction::Factory for complete list of options. Valid options are:
"User Defined Constructor" [Teuchos::RCP<NOX::Direction::UserDefinedFactory>] - see NOX::Direction::Factory for details.
"Newton" [sublist] - used by NOX::Direction::Newton, see class documentation for details.
"Rescue Bad Newton Solver" [boolean]
"Linear Solver" [sublist] - passed to NOX::Abstract::Group::computeNewton() by NOX::Direction::Newton.
NOTE: This list will carry any number of linear solver options depending upon the concrete implementation of the linear solver used in the applyJacobianInverse() method of the NOX::Abstract::Group class. For Epetra support, this option list can be found in the NOX::Epetra::LinearSystemAztecOO object.
"Steepest Descent" [sublist] - used by NOX::Direction::SteepestDescent, see class documentation for details
"Cauchy Direction" [sublist] - used to specify teh second direction in dogleg trusregions methods. See NOX::Solver::TrustRegionBased and NOX::Solver::InexactTrustRegionBased solvers for mor einformation on how this direction is used. This sublist uses the same options as "Direction" sublist.
"Line Search" [sublist] - used by NOX::Solver::LineSearchBased solvers to specify the line search algorithm to use.
"Method" [std::string] - see NOX::LineSearch::Factory for a detailed list of options. Valid options are:
"User Defined Constructor" [Teuchos::RCP<NOX::LineSearch::UserDefinedFactory>] - see NOX::LineSearch::Factory for details
"Full Step" [sublist] - used by NOX::LineSearch::FullStep, see class documentation for all details
"Backtrack" [sublist] - used by NOX::LineSearch::Backtrack, see class documentation for all details.
"Polynomial" [sublist] - used by NOX::LineSearch::MoreThuente, see class documentation for details.
"Trust Region" [sublist] - used by NOX::Solver::TrustRegionBased, see class documentation for details
"Solver Options" [sublist] - used by all solvers for basic options that all solvers should support (see individual solvers to make sure the option is supported).
"User Defined Pre/Post Operator" [Teuchos::RCP<NOX::Abstract::PrePostOperator>] - an observer object that allows users to insert pre and post method calls into nox's solvers (before and after the NOX::Solver::Generic::step() and before and after the NOX::Solver::Generic::solve() methods). Users write a class that derives from NOX::Abstract::PrePostOperator. They then wrap the construction in a Teuchos::RCP object. These objects can be set in the parameter list with the following code.
NOTE: The type of object set in the parameter list MUST be an RCP of the type NOX::Abstract::PrePostOperator. It can NOT be a derived type!
"Status Test Check Type" [std::string] - References a NOX::StatusTest::CheckType that determines if all ("Complete") or just a minimal ("Minimal") set of status tests should be run at each iteration. The status tests can be run efficiently if set to NOX::StatusTest::Minimal and all test run every iteration if it is set to NOX::StatusTest::Complete. Valid options are:
"User Defined Merit Function" [Teuchos::RCP<NOX::MeritFunction::Generic>] - An object that allows the user to define their own merit function for use in the globalization algorithms. The user must implement a derived class from NOX::MeritFunction::Generic and then pass it into NOX through the parameter list.
"Printing" [sublist] - used to construct a NOX::Utils object. See class documentation for details. The basic options are shown below:
"Output Precision" [int]
A user can build a set of status tests from an independent parameter list using the NOX::StatusTest::Factory. See this objects documentation for details on how to build that parameter list.