Tempus Version of the Day
Time Integration
Loading...
Searching...
No Matches
Tempus_UnitTest_SDIRK_2Stage3rdOrder.cpp
Go to the documentation of this file.
1//@HEADER
2// *****************************************************************************
3// Tempus: Time Integration and Sensitivity Analysis Package
4//
5// Copyright 2017 NTESS and the Tempus contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8//@HEADER
9
11
12namespace Tempus_Unit_Test {
13
14using Teuchos::ParameterList;
15using Teuchos::RCP;
16using Teuchos::rcp;
17using Teuchos::rcp_const_cast;
18using Teuchos::rcp_dynamic_cast;
19using Teuchos::sublist;
20
21// ************************************************************
22// ************************************************************
23TEUCHOS_UNIT_TEST(SDIRK_2Stage3rdOrder, Default_Construction)
24{
25 auto stepper = rcp(new Tempus::StepperSDIRK_2Stage3rdOrder<double>());
27
28 // Test stepper properties.
29 TEUCHOS_ASSERT(stepper->getOrder() == 3);
30 std::string gammaType = "3rd Order A-stable";
31 TEUCHOS_ASSERT(stepper->getGammaType() == gammaType);
32 double gamma = 0.7886751345948128;
33 TEUCHOS_ASSERT(stepper->getGamma() == gamma);
34 stepper->setGammaType(gammaType);
35 stepper->initialize();
36 TEUCHOS_TEST_FOR_EXCEPT(!stepper->isInitialized());
37 stepper->setGamma(gamma);
38 stepper->initialize();
39 TEUCHOS_TEST_FOR_EXCEPT(!stepper->isInitialized());
40}
41
42// ************************************************************
43// ************************************************************
44TEUCHOS_UNIT_TEST(SDIRK_2Stage3rdOrder, StepperFactory_Construction)
45{
46 auto model = rcp(new Tempus_Test::SinCosModel<double>());
47 testFactoryConstruction("SDIRK 2 Stage 3rd order", model);
48}
49
50// ************************************************************
51// ************************************************************
52TEUCHOS_UNIT_TEST(SDIRK_2Stage3rdOrder, AppAction)
53{
54 auto stepper = rcp(new Tempus::StepperSDIRK_2Stage3rdOrder<double>());
55 auto model = rcp(new Tempus_Test::SinCosModel<double>());
56 testRKAppAction(stepper, model, out, success);
57}
58
59} // namespace Tempus_Unit_Test
Sine-Cosine model problem from Rythmos. This is a canonical Sine-Cosine differential equation.
void testDIRKAccessorsFullConstruction(const RCP< Tempus::StepperDIRK< double > > &stepper)
Unit test utility for ExplicitRK Stepper construction and accessors.
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.