#include <NOX_StatusTest_Combo.H>
Inheritance diagram for NOX::StatusTest::Combo:
Public Types | |
| enum | ComboType { AND, OR } |
| The test can be either the AND of all the component tests, or the OR of all the component tests. More... | |
Public Member Functions | |
| Combo (ComboType t) | |
| Constructor. | |
| Combo (ComboType t, Generic &a) | |
| Constructor with a single test. | |
| Combo (ComboType t, Generic &a, Generic &b) | |
| Constructor with two tests. | |
| virtual Combo & | addStatusTest (Generic &a) |
| Add another test to this combination. | |
| virtual | ~Combo () |
| Destructor. | |
| virtual StatusType | checkStatus (const NOX::Solver::Generic &problem) |
| Calls checkStatus(problem, NOX::StatusTest::Minimal). | |
| virtual StatusType | checkStatusEfficiently (const NOX::Solver::Generic &problem, NOX::StatusTest::CheckType checkType) |
| Tests stopping criterion. | |
| virtual StatusType | getStatus () const |
| Return the result of the most recent checkStatus call. | |
| virtual ostream & | print (ostream &stream, int indent=0) const |
| Output formatted description of stopping test to output stream. | |
Protected Member Functions | |
| virtual void | orOp (const Solver::Generic &problem, NOX::StatusTest::CheckType checkType) |
| Use this for checkStatus when this is an OR type combo. Updates NOX::StatusTest::Combo::status. | |
| virtual void | andOp (const Solver::Generic &problem, NOX::StatusTest::CheckType checkType) |
| Use this for checkStatus when this is an AND type combo. Updates NOX::StatusTest::Combo::status. | |
| bool | isSafe (Generic &a) |
Check whether or not it is safe to add a to this list of tests. | |
In the AND (see NOX::StatusTest::Combo::ComboType) combination, the result is Unconverged (see NOX::StatusTest::StatusType) if any of the tests is Unconverged. Otherwise, the result is equal to the result of the first test in the list that is either Converged or Failed. It is not recommended to mix Converged and Failed tests in an AND combination.
In the OR combination, the result is Unconverged if all of the tests are Unconverged. Otherwise, it is the result of the first test in the list that is either Converged or Failed. Therefore, it will generally make sense to put the Failed -type tests at the end of the OR list.
|
|
The test can be either the AND of all the component tests, or the OR of all the component tests.
|
|
|
Add another test to this combination.
Calls isSafe() to determine if it is safe to add |
|
||||||||||||
|
Use this for checkStatus when this is an AND type combo. Updates NOX::StatusTest::Combo::status. If any tests are NOX::StatusTest::Unconverged, then the status of this test is NOX::StatusTest::Unconverged. If there is a combination of NOX::StatusTest::Failed and NOX::StatusTest::Converged in the tests that are AND'd together, the value of status for this test is set to the status of the first test it encounters. The tests are evaluated in the order that they were added to the combination.
|
|
||||||||||||
|
Tests stopping criterion. See addOp() and orOp() for details. Reimplemented from NOX::StatusTest::Generic. |
|
|
Check whether or not it is safe to add This is necessary to avoid any infinite recursions (i.e., a test cannot own a copy of itself). |
|
||||||||||||
|
Use this for checkStatus when this is an OR type combo. Updates NOX::StatusTest::Combo::status. If there is a combination of NOX::StatusTest::Failed and NOX::StatusTest::Converged in the tests that are OR'd together, the value of status for this test is set to the status of the first test it encounters which is not NOX::Status::Unconvered. The tests are evaluated in the order that they were added to the combination.
|
1.3.9.1