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 }