9 #include "Teuchos_UnitTestHarness.hpp" 10 #include "Teuchos_XMLParameterListHelpers.hpp" 11 #include "Teuchos_TimeMonitor.hpp" 13 #include "Tempus_IntegratorBasic.hpp" 15 #include "../TestModels/SinCosModel.hpp" 22 using Teuchos::ParameterList;
23 using Teuchos::sublist;
24 using Teuchos::getParametersFromXmlFile;
35 RCP<ParameterList> pl = getParametersFromXmlFile(
"Tempus_default.xml");
41 RCP<ParameterList> tempusPL = sublist(pl,
"Tempus",
true);
42 RCP<Tempus::IntegratorBasic<double> > integrator =
43 Tempus::createIntegratorBasic<double>(tempusPL, model);
46 auto testPL = integrator->getValidParameters();
51 RCP<ParameterList> referencePL =
52 getParametersFromXmlFile(
"Tempus_IntegratorBasic_ref.xml");
54 bool pass = haveSameValuesSorted(*testPL, *referencePL,
true);
56 std::cout << std::endl;
57 std::cout <<
"testPL -------------- \n" << *testPL << std::endl;
58 std::cout <<
"referencePL -------------- \n" << *referencePL << std::endl;
69 RCP<Tempus::IntegratorBasic<double> > integrator =
70 Tempus::createIntegratorBasic<double>();
75 RCP<ParameterList> tempusPL = Teuchos::rcp_const_cast<ParameterList>(
76 integrator->getValidParameters());
78 tempusPL->sublist(
"Default Integrator").set(
"Stepper Name",
"Demo Stepper");
79 RCP<ParameterList> stepperPL = Teuchos::parameterList();
80 stepperPL->set(
"Stepper Type",
"Forward Euler");
81 tempusPL->set(
"Demo Stepper", *stepperPL);
85 integrator = Tempus::createIntegratorBasic<double>(tempusPL, model);
86 integrator->initialize();
89 auto testPL = integrator->getValidParameters();
94 RCP<ParameterList> referencePL =
95 getParametersFromXmlFile(
"Tempus_IntegratorBasic_ref2.xml");
97 bool pass = haveSameValuesSorted(*testPL, *referencePL,
true);
99 std::cout << std::endl;
100 std::cout <<
"testPL -------------- \n" << *testPL << std::endl;
101 std::cout <<
"referencePL -------------- \n" << *referencePL << std::endl;
110 RCP<ParameterList> pl = getParametersFromXmlFile(
"Tempus_default.xml");
116 RCP<ParameterList> tempusPL = sublist(pl,
"Tempus",
true);
117 RCP<Tempus::IntegratorBasic<double> > integrator =
118 Tempus::createIntegratorBasic<double>(tempusPL, model);
120 std::ostringstream ss;
121 Teuchos::RCP<Teuchos::FancyOStream> myOut =
122 Teuchos::fancyOStream(Teuchos::rcpFromRef(ss));
124 integrator->describe(*myOut, Teuchos::VERB_EXTREME);
126 auto testS = ss.str();
129 auto npos = std::string::npos;
130 TEST_ASSERT(npos != testS.find(
"--- Tempus::IntegratorBasic ---"));
131 TEST_ASSERT(npos != testS.find(
"--- Tempus::SolutionHistory"));
132 TEST_ASSERT(npos != testS.find(
"--- SolutionState (index = 0; time = 0; dt = 1) ---"));
133 TEST_ASSERT(npos != testS.find(
"--- Tempus::SolutionStateMetaData ---"));
134 TEST_ASSERT(npos != testS.find(
"--- Tempus::StepperState"));
135 TEST_ASSERT(npos != testS.find(
"--- Tempus::PhysicsState"));
136 TEST_ASSERT(npos != testS.find(
"--- Tempus::TimeStepControl ---"));
137 TEST_ASSERT(npos != testS.find(
"--- Tempus::TimeStepControlStrategyConstant ---"));
138 TEST_ASSERT(npos != testS.find(
"--- Stepper ---"));
139 TEST_ASSERT(npos != testS.find(
"stepperType_ = Forward Euler"));
140 TEST_ASSERT(npos != testS.find(
"--- StepperExplicit ---"));
Sine-Cosine model problem from Rythmos. This is a canonical Sine-Cosine differential equation with a...
TEUCHOS_UNIT_TEST(BackwardEuler, SinCos_ASA)
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...
Solution state for integrators and steppers. SolutionState contains the metadata for solutions and th...