|
NOX
Development
|
Factory to build a set of status tests from a parameter list. More...
#include <NOX_StatusTest_Factory.H>
Public Member Functions | |
| Factory () | |
| Constructor. | |
| virtual | ~Factory () |
| Destructor. | |
|
Teuchos::RCP < NOX::StatusTest::Generic > | buildStatusTests (const std::string &file_name, const NOX::Utils &utils, std::map< std::string, Teuchos::RCP< NOX::StatusTest::Generic > > *tagged_tests=0) const |
| Returns a status test set from a parameter list xml file. | |
|
Teuchos::RCP < NOX::StatusTest::Generic > | buildStatusTests (Teuchos::ParameterList &p, const NOX::Utils &utils, std::map< std::string, Teuchos::RCP< NOX::StatusTest::Generic > > *tagged_tests=0) const |
| Returns a status test set from a parameter list. | |
Related Functions | |
(Note that these are not member functions.) | |
|
Teuchos::RCP < NOX::StatusTest::Generic > | buildStatusTests (const std::string &file_name, const NOX::Utils &utils, std::map< std::string, Teuchos::RCP< NOX::StatusTest::Generic > > *tagged_tests=0) |
| Nonmember helper function for the NOX::StatusTest::Factory. | |
|
Teuchos::RCP < NOX::StatusTest::Generic > | buildStatusTests (Teuchos::ParameterList &p, const NOX::Utils &utils, std::map< std::string, Teuchos::RCP< NOX::StatusTest::Generic > > *tagged_tests=0) |
| Nonmember helper function for the NOX::StatusTest::Factory. | |
|
Teuchos::RCP < LOCA::StatusTest::Abstract > | buildStatusTests (const std::string &file_name, const Teuchos::RCP< const LOCA::GlobalData > &globalData, std::map< std::string, Teuchos::RCP< LOCA::StatusTest::Abstract > > *tagged_tests=0) |
| Nonmember helper function for the NOX::StatusTest::Factory. | |
|
Teuchos::RCP < LOCA::StatusTest::Abstract > | buildStatusTests (Teuchos::ParameterList &p, const Teuchos::RCP< const LOCA::GlobalData > &globalData, std::map< std::string, Teuchos::RCP< LOCA::StatusTest::Abstract > > *tagged_tests=0) |
| Nonmember helper function for the NOX::StatusTest::Factory. | |
Factory to build a set of status tests from a parameter list.
This object takes either an xml file name or a Teuchos::ParameterList and generates an entire set (a tree) of status tests for use in a NOX::Solver derived object.
The tagged_tests field in the constructors allows users to store tests from the tree in a flat list in case they want to change the tolerance values during a run. The tagged_tests flag is optional.
Please use the related nonmember functions instead of calling the factory directly (See example below).
Valid parameters are as follows:
"Test Type" <std::string> Type of test this list contains. Valid tests include:
"Tag" <std::string> A unique identifier that will place the test in the map for tagged_tests. This allows users to access individual tests to change tolerances on the fly or query values while still using the factory to build objects.
Additional parameters valid for a Combo test (NOX::StatusTest::Combo):
"Combo Type" <std:string> Type of combo to use. Valid options are:
"Number of Tests" <int> Number of sublists that contain tests to be added to this combo test. The sublists must be named "Test X" where "X" represents the test number starting with 0 and preceeding to "Number of Tests - 1".
Additional parameters valid for a Norm F test (NOX::StatusTest::NormF):
. Additional parameters valid for a Norm Update test (NOX::StatusTest::NormUpdate):
Additional parameters valid for a Norm WRMS test (NOX::StatusTest::NormWRMS):
Additional parameters valid for a Maximum Iterations test (NOX::StatusTest::MaxIters):
Additional parameters valid for a Finite Value test (NOX::StatusTest::FiniteValue):
Additional parameters valid for a Divergence test (NOX::StatusTest::Divergence):
Additional parameters valid for a Stagnation test (NOX::StatusTest::Stagnation):
Additional parameters valid for a RelativeNormF test (NOX::StatusTest::RelativeNormF):
Additional parameters valid for a NStep test (NOX::StatusTest::NStep):
Additional parameters valid for a "User Defined" test:
Example usage:
Teuchos::ParameterList stl; stl.set("Test Type", "Combo"); stl.set("Combo Type", "OR"); stl.set("Number of Tests", 5); Teuchos::ParameterList& conv = stl.sublist("Test 0"); Teuchos::ParameterList& fv = stl.sublist("Test 1"); Teuchos::ParameterList& divergence = stl.sublist("Test 2"); Teuchos::ParameterList& stagnation = stl.sublist("Test 3"); Teuchos::ParameterList& maxiters = stl.sublist("Test 4"); conv.set("Test Type", "Combo"); conv.set("Combo Type", "AND"); conv.set("Number of Tests", 4); Teuchos::ParameterList& normF = conv.sublist("Test 0"); Teuchos::ParameterList& normWRMS = conv.sublist("Test 1"); Teuchos::ParameterList& normUpdate = conv.sublist("Test 2"); Teuchos::ParameterList& userDefined = conv.sublist("Test 3"); normF.set("Test Type", "NormF"); normF.set("Tolerance", 1.0e-12); normF.set("Norm Type", "Two Norm"); normF.set("Scale Type", "Unscaled"); normWRMS.set("Test Type", "NormWRMS"); normWRMS.set("Absolute Tolerance", 1.0e-8); normWRMS.set("Relative Tolerance", 1.0e-5); normWRMS.set("Tolerance", 1.0); normWRMS.set("BDF Multiplier", 1.0); normWRMS.set("Alpha", 1.0); normWRMS.set("Beta", 0.5); normUpdate.set("Test Type", "NormUpdate"); normUpdate.set("Norm Type", "One Norm"); normUpdate.set("Scale Type", "Scaled"); userDefined.set("Test Type", "User Defined"); Teuchos::RCP<NOX::StatusTest::Generic> myTest = Teuchos::rcp(new MyTest(1.0e-3)); userDefined.set("User Status Test", myTest); fv.set("Test Type", "FiniteValue"); fv.set("Vector Type", "F Vector"); fv.set("Norm Type", "Two Norm"); divergence.set("Test Type", "Divergence"); divergence.set("Tolerance", 1.0e+20); divergence.set("Consecutive Iterations", 3); stagnation.set("Test Type", "Stagnation"); stagnation.set("Tolerance", 1.0); stagnation.set("Consecutive Iterations", 5); maxiters.set("Test Type", "MaxIters"); maxiters.set("Maximum Iterations", 20); Teuchos::RCP<NOX::StatusTest::Generic> status_tests = NOX::StatusTest::buildStatusTests(stl, utils);
1.7.6.1