13#include "../TestModels/VanDerPol_IMEX_ExplicitModel.hpp"
14#include "../TestModels/VanDerPol_IMEXPart_ImplicitModel.hpp"
21using Teuchos::rcp_const_cast;
22using Teuchos::rcp_dynamic_cast;
23using Teuchos::ParameterList;
24using Teuchos::sublist;
35 const bool useProductVector =
true;
40 const int numExplicitBlocks = 1;
41 const int parameterIndex = 4;
43 explicitModel, implicitModel,
44 numExplicitBlocks, parameterIndex));
49 stepper->setModel(model);
50 stepper->initialize();
51 TEUCHOS_TEST_FOR_EXCEPT(!stepper->isInitialized());
60 bool useFSAL = stepper->getUseFSAL();
61 std::string ICConsistency = stepper->getICConsistency();
62 bool ICConsistencyCheck = stepper->getICConsistencyCheck();
63 bool zeroInitialGuess = stepper->getZeroInitialGuess();
64 std::string stepperType =
"Partitioned IMEX RK SSP2";
66 auto explicitTableau = stepperERK->getTableau();
68 auto implicitTableau = stepperSDIRK->getTableau();
73 stepper->setAppAction(modifier); stepper->initialize(); TEUCHOS_TEST_FOR_EXCEPT(!stepper->isInitialized());
74 stepper->setAppAction(modifierX); stepper->initialize(); TEUCHOS_TEST_FOR_EXCEPT(!stepper->isInitialized());
75 stepper->setAppAction(observer); stepper->initialize(); TEUCHOS_TEST_FOR_EXCEPT(!stepper->isInitialized());
76 stepper->setSolver(solver); stepper->initialize(); TEUCHOS_TEST_FOR_EXCEPT(!stepper->isInitialized());
77 stepper->setUseFSAL(useFSAL); stepper->initialize(); TEUCHOS_TEST_FOR_EXCEPT(!stepper->isInitialized());
78 stepper->setICConsistency(ICConsistency); stepper->initialize(); TEUCHOS_TEST_FOR_EXCEPT(!stepper->isInitialized());
79 stepper->setICConsistencyCheck(ICConsistencyCheck); stepper->initialize(); TEUCHOS_TEST_FOR_EXCEPT(!stepper->isInitialized());
80 stepper->setZeroInitialGuess(zeroInitialGuess); stepper->initialize(); TEUCHOS_TEST_FOR_EXCEPT(!stepper->isInitialized());
82 stepper->setStepperName(stepperType); stepper->initialize(); TEUCHOS_TEST_FOR_EXCEPT(!stepper->isInitialized());
83 stepper->setExplicitTableau(explicitTableau); stepper->initialize(); TEUCHOS_TEST_FOR_EXCEPT(!stepper->isInitialized());
84 stepper->setImplicitTableau(implicitTableau); stepper->initialize(); TEUCHOS_TEST_FOR_EXCEPT(!stepper->isInitialized());
85 stepper->setOrder(order); stepper->initialize(); TEUCHOS_TEST_FOR_EXCEPT(!stepper->isInitialized());
87 TEUCHOS_TEST_FOR_EXCEPT(explicitTableau != stepper->getTableau());
88 TEUCHOS_TEST_FOR_EXCEPT(explicitTableau != stepper->getExplicitTableau());
89 TEUCHOS_TEST_FOR_EXCEPT(implicitTableau != stepper->getImplicitTableau());
93 model, solver, useFSAL, ICConsistency, ICConsistencyCheck,
94 zeroInitialGuess, modifier, stepperType, explicitTableau,
95 implicitTableau, order));
96 TEUCHOS_TEST_FOR_EXCEPT(!stepper->isInitialized());
100 TEUCHOS_ASSERT(stepper->getOrder() == 2);
109 const bool useProductVector =
true;
114 const int numExplicitBlocks = 1;
115 const int parameterIndex = 4;
117 explicitModel, implicitModel,
118 numExplicitBlocks, parameterIndex));
129 const bool useProductVector =
true;
134 const int numExplicitBlocks = 1;
135 const int parameterIndex = 4;
137 explicitModel, implicitModel,
138 numExplicitBlocks, parameterIndex));
142 auto stepper = sf->createStepper(
"General Partitioned IMEX RK", model);
143 TEUCHOS_TEST_FOR_EXCEPT(!stepper->isInitialized());
152 const bool useProductVector =
true;
157 const int numExplicitBlocks = 1;
158 const int parameterIndex = 4;
160 explicitModel, implicitModel,
161 numExplicitBlocks, parameterIndex));
165 auto stepper = sf->createStepper(
"General Partitioned IMEX RK");
166 stepper->setModel(model);
167 stepper->initialize();
168 TEUCHOS_TEST_FOR_EXCEPT(!stepper->isInitialized());
179 const bool useProductVector =
true;
184 const int numExplicitBlocks = 1;
185 const int parameterIndex = 4;
187 explicitModel, implicitModel,
188 numExplicitBlocks, parameterIndex));
Explicit Runge-Kutta time stepper.
Partitioned Implicit-Explicit Runge-Kutta (IMEX-RK) time stepper.
Default modifier for StepperRK.
Default ModifierX for StepperRK.
Default observer for StepperRK.
ModelEvaluator pair for implicit and explicit (IMEX) evaulations.
van der Pol model formulated for the partitioned IMEX-RK.
van der Pol model formulated for IMEX.
void testRKAppAction(const Teuchos::RCP< Tempus::StepperRKBase< double > > &stepper, const Teuchos::RCP< const Thyra::ModelEvaluator< double > > &model, Teuchos::FancyOStream &out, bool &success)
Unit test utility for Stepper RK AppAction.
TEUCHOS_UNIT_TEST(BackwardEuler, Default_Construction)
void testFactoryConstruction(std::string stepperType, const Teuchos::RCP< const Thyra::ModelEvaluator< double > > &model)
Unit test utility for Stepper construction through StepperFactory.
Teuchos::RCP< Teuchos::ParameterList > defaultSolverParameters()
Returns the default solver ParameterList for implicit Steppers.