NOX Development
Loading...
Searching...
No Matches
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:

  • "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

      • "Full Step" [double]

    • "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<NOX::Abstract::PrePostOperator> ppo =
      Teuchos::rcp(new UserPrePostOperator(printing));
      nlParams.sublist("Solver Options").set("User Defined Pre/Post Operator",
      ppo);

      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:

      • "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);
      Base class to support a user defined merit function that can be passed to line searches and direction...
      Definition NOX_MeritFunction_Generic.H:97

  • "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.