00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 #ifndef NOX_STATUSTEST_FACTORY_H
00043 #define NOX_STATUSTEST_FACTORY_H
00044
00045 #include "Teuchos_RCP.hpp"
00046
00047 namespace Teuchos {
00048 class ParameterList;
00049 }
00050
00051 namespace NOX {
00052
00053 class Utils;
00054
00055 namespace StatusTest {
00056
00058
00250 class Factory {
00251
00252 public:
00253
00255 Factory();
00256
00258 virtual ~Factory();
00259
00261 Teuchos::RCP<NOX::StatusTest::Generic>
00262 buildStatusTests(const std::string& file_name, const NOX::Utils& utils,
00263 std::map<std::string, Teuchos::RCP<NOX::StatusTest::Generic> >*
00264 tagged_tests=0) const;
00265
00267 Teuchos::RCP<NOX::StatusTest::Generic>
00268 buildStatusTests(Teuchos::ParameterList& p, const NOX::Utils& utils,
00269 std::map<std::string, Teuchos::RCP<NOX::StatusTest::Generic> >*
00270 tagged_tests=0) const;
00271
00272 private:
00273
00274 Teuchos::RCP<NOX::StatusTest::Generic>
00275 buildComboTest(Teuchos::ParameterList& p,
00276 const NOX::Utils& utils,
00277 std::map<std::string, Teuchos::RCP<NOX::StatusTest::Generic> >*
00278 tagged_tests=0) const;
00279
00280 Teuchos::RCP<NOX::StatusTest::Generic>
00281 buildNormFTest(Teuchos::ParameterList& p,
00282 const NOX::Utils& utils) const;
00283
00284 Teuchos::RCP<NOX::StatusTest::Generic>
00285 buildNormUpdateTest(Teuchos::ParameterList& p,
00286 const NOX::Utils& utils) const;
00287
00288 Teuchos::RCP<NOX::StatusTest::Generic>
00289 buildNormWRMSTest(Teuchos::ParameterList& p,
00290 const NOX::Utils& utils) const;
00291
00292 Teuchos::RCP<NOX::StatusTest::Generic>
00293 buildMaxItersTest(Teuchos::ParameterList& p,
00294 const NOX::Utils& utils) const;
00295
00296 Teuchos::RCP<NOX::StatusTest::Generic>
00297 buildFiniteValueTest(Teuchos::ParameterList& p,
00298 const NOX::Utils& utils) const;
00299
00300 Teuchos::RCP<NOX::StatusTest::Generic>
00301 buildDivergenceTest(Teuchos::ParameterList& p,
00302 const NOX::Utils& utils) const;
00303
00304 Teuchos::RCP<NOX::StatusTest::Generic>
00305 buildStagnationTest(Teuchos::ParameterList& p,
00306 const NOX::Utils& utils) const;
00307
00308 Teuchos::RCP<NOX::StatusTest::Generic>
00309 buildUserDefinedTest(Teuchos::ParameterList& p,
00310 const NOX::Utils& utils) const;
00311
00313 bool checkAndTagTest(const Teuchos::ParameterList& p,
00314 const Teuchos::RCP<NOX::StatusTest::Generic>& test,
00315 std::map<std::string, Teuchos::RCP<NOX::StatusTest::Generic> >*
00316 tagged_tests) const;
00317 };
00318
00324 Teuchos::RCP<NOX::StatusTest::Generic>
00325 buildStatusTests(const std::string& file_name, const NOX::Utils& utils,
00326 std::map<std::string, Teuchos::RCP<NOX::StatusTest::Generic> >*
00327 tagged_tests=0);
00328
00334 Teuchos::RCP<NOX::StatusTest::Generic>
00335 buildStatusTests(Teuchos::ParameterList& p, const NOX::Utils& utils,
00336 std::map<std::string, Teuchos::RCP<NOX::StatusTest::Generic> >*
00337 tagged_tests=0);
00338
00339 }
00340 }
00341
00342 #endif