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 }

doxygen