35 const bool useProductVector =
true;
36 auto explicitModel = rcp(
new Tempus_Test::VanDerPol_IMEX_ExplicitModel<double>(Teuchos::null, useProductVector));
37 auto implicitModel = rcp(
new Tempus_Test::VanDerPol_IMEXPart_ImplicitModel<double>());
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;
110 auto explicitModel = rcp(
new Tempus_Test::VanDerPol_IMEX_ExplicitModel<double>(Teuchos::null, useProductVector));
111 auto implicitModel = rcp(
new Tempus_Test::VanDerPol_IMEXPart_ImplicitModel<double>());
114 const int numExplicitBlocks = 1;
115 const int parameterIndex = 4;
117 explicitModel, implicitModel,
118 numExplicitBlocks, parameterIndex));
129 const bool useProductVector =
true;
130 auto explicitModel = rcp(
new Tempus_Test::VanDerPol_IMEX_ExplicitModel<double>(Teuchos::null, useProductVector));
131 auto implicitModel = rcp(
new Tempus_Test::VanDerPol_IMEXPart_ImplicitModel<double>());
134 const int numExplicitBlocks = 1;
135 const int parameterIndex = 4;
137 explicitModel, implicitModel,
138 numExplicitBlocks, parameterIndex));
140 RCP<StepperFactory<double> > sf = Teuchos::rcp(
new StepperFactory<double>());
142 auto stepper = sf->createStepper(
"General Partitioned IMEX RK", model);
143 TEUCHOS_TEST_FOR_EXCEPT(!stepper->isInitialized());
152 const bool useProductVector =
true;
153 auto explicitModel = rcp(
new Tempus_Test::VanDerPol_IMEX_ExplicitModel<double>(Teuchos::null, useProductVector));
154 auto implicitModel = rcp(
new Tempus_Test::VanDerPol_IMEXPart_ImplicitModel<double>());
157 const int numExplicitBlocks = 1;
158 const int parameterIndex = 4;
160 explicitModel, implicitModel,
161 numExplicitBlocks, parameterIndex));
163 RCP<StepperFactory<double> > sf = Teuchos::rcp(
new StepperFactory<double>());
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;
180 auto explicitModel = rcp(
new Tempus_Test::VanDerPol_IMEX_ExplicitModel<double>(Teuchos::null, useProductVector));
181 auto implicitModel = rcp(
new Tempus_Test::VanDerPol_IMEXPart_ImplicitModel<double>());
184 const int numExplicitBlocks = 1;
185 const int parameterIndex = 4;
187 explicitModel, implicitModel,
188 numExplicitBlocks, parameterIndex));
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.