PlayaOptConvergenceTestBuilder.cpp
00001 #include "PlayaOptConvergenceTestBuilder.hpp"
00002 #include "Teuchos_ParameterList.hpp"
00003 #include "PlayaTabs.hpp"
00004 #include "PlayaOut.hpp"
00005 #include "PlayaDefaultOptConvergenceTest.hpp"
00006
00007 namespace Playa
00008 {
00009
00010 RCP<OptConvergenceTestBase>
00011 OptConvergenceTestBuilder::createConvTest(const ParameterList& params,
00012 int verb)
00013 {
00014 Tabs tab(0);
00015 PLAYA_MSG1(verb, tab << "OptConvergenceTestBuilder::createConvTest()");
00016 Tabs tab1;
00017 PLAYA_MSG2(verb, tab1 << "params=" << params);
00018
00019 TEUCHOS_TEST_FOR_EXCEPTION(params.name() != "Convergence Test",
00020 std::runtime_error,
00021 "OptConvTestBuilder::createConvTest() expected parameter list named "
00022 "\"Convergence Test\", got name [" << params.name() << "]");
00023
00024 const std::string& ctType = getParameter<string>(params, "Type");
00025
00026 RCP<OptConvergenceTestBase> ct;
00027
00028 if (ctType=="Default")
00029 {
00030 PLAYA_MSG2(verb, tab1 << "found Default convergence test");
00031 ct = rcp(new DefaultOptConvergenceTest(params));
00032 }
00033
00034 TEUCHOS_TEST_FOR_EXCEPTION(ct.get()==0,
00035 std::runtime_error,
00036 "OptConvTestBuilder::createConvTest() could not construct a valid "
00037 "convergence test object from parameter list " << params);
00038
00039 return ct;
00040 }
00041
00042 }