Tempus
Version of the Day
Time Integration
Tempus_StepperSubcyclingModifierXDefault.hpp
Go to the documentation of this file.
1
// @HEADER
2
// ****************************************************************************
3
// Tempus: Copyright (2017) Sandia Corporation
4
//
5
// Distributed under BSD 3-clause license (See accompanying file Copyright.txt)
6
// ****************************************************************************
7
// @HEADER
8
9
#ifndef Tempus_StepperSubcyclingModifierX_hpp
10
#define Tempus_StepperSubcyclingModifierX_hpp
11
12
#include "Tempus_config.hpp"
13
#include "
Tempus_StepperSubcyclingModifierXBase.hpp
"
14
15
16
namespace
Tempus
{
17
18
/** \brief Default ModifierX for StepperSubcycling.
19
*
20
* The default provides no-op functionality for ModifierX.
21
* See StepperSubcyclingModifierXBase for details on the algorithm.
22
*
23
* Applications can copy this implementation, rename, implement their
24
* action, and set on the stepper to get app-specific functionality.
25
*/
26
template
<
class
Scalar>
27
class
StepperSubcyclingModifierXDefault
28
:
virtual
public
Tempus::StepperSubcyclingModifierXBase
<Scalar>
29
{
30
public
:
31
32
/// Constructor
33
StepperSubcyclingModifierXDefault
(){}
34
35
/// Destructor
36
virtual
~StepperSubcyclingModifierXDefault
(){}
37
38
/// Modify solution based on the MODIFIER_TYPE.
39
virtual
void
modify
(
40
Teuchos::RCP<Thyra::VectorBase<Scalar> >
/* x */
,
41
const
Scalar
/* time */
,
const
Scalar
/* dt */
,
42
const
typename
StepperSubcyclingModifierXBase<Scalar>::MODIFIER_TYPE
modType)
43
{
44
switch
(modType) {
45
case
StepperSubcyclingModifierXBase<Scalar>::X_BEGIN_STEP
:
46
case
StepperSubcyclingModifierXBase<Scalar>::XDOT_END_STEP
:
47
{
48
// No-op.
49
break
;
50
}
51
default
:
52
TEUCHOS_TEST_FOR_EXCEPTION(
true
, std::logic_error,
53
"Error - unknown modifier type.\n"
);
54
}
55
}
56
57
};
58
59
}
// namespace Tempus
60
61
#endif
// Tempus_StepperSubcyclingModifierX_hpp
Tempus_StepperSubcyclingModifierXBase.hpp
Tempus::StepperSubcyclingModifierXBase
Base ModifierX for StepperSubcycling.
Definition:
Tempus_StepperSubcyclingModifierXBase.hpp:46
Tempus::StepperSubcyclingModifierXBase::MODIFIER_TYPE
MODIFIER_TYPE
Indicates the location of application action (see algorithm).
Definition:
Tempus_StepperSubcyclingModifierXBase.hpp:99
Tempus::StepperSubcyclingModifierXDefault
Default ModifierX for StepperSubcycling.
Definition:
Tempus_StepperSubcyclingModifierXDefault.hpp:29
Tempus::StepperSubcyclingModifierXDefault::~StepperSubcyclingModifierXDefault
virtual ~StepperSubcyclingModifierXDefault()
Destructor.
Definition:
Tempus_StepperSubcyclingModifierXDefault.hpp:36
Tempus::StepperSubcyclingModifierXDefault::StepperSubcyclingModifierXDefault
StepperSubcyclingModifierXDefault()
Constructor.
Definition:
Tempus_StepperSubcyclingModifierXDefault.hpp:33
Tempus::StepperSubcyclingModifierXDefault::modify
virtual void modify(Teuchos::RCP< Thyra::VectorBase< Scalar > >, const Scalar, const Scalar, const typename StepperSubcyclingModifierXBase< Scalar >::MODIFIER_TYPE modType)
Modify solution based on the MODIFIER_TYPE.
Definition:
Tempus_StepperSubcyclingModifierXDefault.hpp:39
Tempus
Definition:
Tempus_AdjointAuxSensitivityModelEvaluator_decl.hpp:20
src
Tempus_StepperSubcyclingModifierXDefault.hpp
Generated by
1.9.1