NOX Parameter Reference Page
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.
- Note:
- These parameters are valid for the general NOX library. The LAPACK, Epetra, Thyra, and PETSc Group/Vector support objects have their own set of parameters that are documented on each object's doxygen page.
-
"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.
-
"Forcing Term Method" [std::string]
-
"Forcing Term Initial Tolerance" [double]
-
"Forcing Term Minimum Tolerance" [double]
-
"Forcing Term Maximum Tolerance" [double]
-
"Forcing Term Alpha" [double]
-
"Forcing Term Gamma" [double]
-
"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
-
"Scaling Type" [std::string] Type of scaling to use. Options are:
-
"2-Norm"
-
"Quadratic Model Min"
-
"F 2-Norm"
-
"None"
-
"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.
-
"Minimum Step" [double]
-
"Default Step" [double]
-
"Recovery Step" [double]
-
"Maximum Step" [double]
-
"Max Iters" [int]
-
"Reduction Factor" [double]
-
"Polynomial" [sublist] - used by NOX::LineSearch::MoreThuente, see class documentation for details.
-
"Default Step" [double]
-
"Max Iters" [int]
-
"Minimum Step" [double]
-
"Recovery Step" [double]
-
"Interpolation Type" [std::string] Valid options are:
-
"Quadratic"
-
"Quadratic3"
-
"Cubit"
-
"Min Bounds Factor" [double]
-
"Max Bounds Factor" [double]
-
"Sufficient Decrease Condition" [std::string] Valid options are:
-
"Armijo-Goldstein"
-
"Ared/Pred"
-
"Alpha Factor" [double]
-
"Force Interpolation" [boolean]
-
"Use Counters" [boolean]
-
"Maximum Iteration for Increase" [int]
-
"Allowed Relative Increase" [boolean]
-
"More'-Thuente" [sublist] - used by NOX::LineSearch::MoreThuente, see class documentation for all details.
-
"Sufficient Decrease" [double]
-
"Curvature Condition" [double]
-
"Interval Width" [double]
-
"Minimum Step" [double]
-
"Maximum Step" [double]
-
"Max Iters" [int]
-
"Default Step" [double]
-
"Recovery Step Type" [double]
-
"Sufficient Decrease Condition" [std::string] Valid options are:
-
"Armijo-Goldstein"
-
"Ared/Pred"
-
"Optimize Slope Calculation" [boolean]
-
"Trust Region" [sublist] - used by NOX::Solver::TrustRegionBased, see class documentation for details
-
"Minimum Trust Region Radius" [double]
-
"Maximum Trust Region Radius" [double]
-
"Minimum Improvement Ratio" [double]
-
"Contraction Trigger Ratio" [double]
-
"Contraction Factor" [double]
-
"Expansion Trigger Ratio" [double]
-
"Expansion Factor" [double]
-
"Recovery Step" [double]
-
"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.
Teuchos::RCP<UserPrePostOperator> ppo =
Teuchos::rcp(new UserPrePostOperator(printing));
nlParams.sublist("Solver Options").set
<NOX::Abstract::PrePostOperator>("User Defined Pre/Post Operator", ppo);
-
"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:
-
"Complete" - All status tests are checked at each iteration. Use this if you want to monitor progess in certain values computed in a status test.
-
"Minimal" - Compute only enough tests as necessary. This is useful if some status tests are expensive. For example, if you have 3 convergence tests in an "AND" Combo, a minimal check will only check enough tests until one is not converged. It will then not check the others since it can't return a convecged status.
-
"None" - Use internally to turn off tests that should not be checked when using the "Minimal" option. Users should not call this!
-
"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.
Teuchos::RCP<UserMeritFunction> mf =
Teuchos::rcp(new UserMeritFunction);
nlParams.sublist("Solver Options").set
<NOX::MeritFunction::Generic>("User Defined Merit Function", mf);
-
"Printing" [sublist] - used to construct a NOX::Utils object. See class documentation for details. The basic options are shown below:
-
"Output Information" [sublist|int] - Either a sublist of output information booleans listed below or the integer value of the sum of the enumerated types requested. See NOX::Utils for details on how to use the integer value. The following sublist parameters will print information if the flag is set to true.
-
"Error" [boolean]
-
"Warning" [boolean]
-
"Outer Iteration" [boolean]
-
"Inner Iteration" [boolean]
-
"Parameters" [boolean]
-
"Details" [boolean]
-
"Outer Iteration StatusTest" [boolean]
-
"Linear Solver Details" [boolean]
-
"Test Details" [boolean]
-
"Stepper Iteration" [boolean]
-
"Stepper Details" [boolean]
-
"Stepper Parameters" [boolean]
-
"Debug" [boolean]
-
"MyPID" [int]
-
"Output Processor" [int]
-
"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.