Tempus
Version of the Day
Time Integration
Tempus_StepperForwardEulerModifierXDefault.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_StepperForwardEulerModifierX_hpp
10
#define Tempus_StepperForwardEulerModifierX_hpp
11
12
#include "Tempus_config.hpp"
13
#include "
Tempus_StepperForwardEulerModifierXBase.hpp
"
14
15
16
namespace
Tempus
{
17
18
/** \brief Default ModifierX for StepperForwardEuler.
19
*
20
* The default provides no-op functionality for ModifierX.
21
* See StepperForwardEulerModifierXBase 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
StepperForwardEulerModifierXDefault
28
:
virtual
public
Tempus::StepperForwardEulerModifierXBase
<Scalar>
29
{
30
public
:
31
32
/// Constructor
33
StepperForwardEulerModifierXDefault
(){}
34
35
/// Destructor
36
virtual
~StepperForwardEulerModifierXDefault
(){}
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
StepperForwardEulerModifierXBase<Scalar>::MODIFIER_TYPE
modType)
43
{
44
switch
(modType) {
45
case
StepperForwardEulerModifierXBase<Scalar>::X_BEGIN_STEP
:
46
case
StepperForwardEulerModifierXBase<Scalar>::X_BEFORE_EXPLICIT_EVAL
:
47
case
StepperForwardEulerModifierXBase<Scalar>::XDOT_END_STEP
:
48
{
49
// No-op.
50
break
;
51
}
52
default
:
53
TEUCHOS_TEST_FOR_EXCEPTION(
true
, std::logic_error,
54
"Error - unknown modifier type.\n"
);
55
}
56
}
57
58
};
59
60
}
// namespace Tempus
61
62
#endif // Tempus_StepperForwardEulerModifierX_hpp
Tempus::StepperForwardEulerModifierXBase::MODIFIER_TYPE
MODIFIER_TYPE
Indicates the location of application action (see algorithm).
Definition:
Tempus_StepperForwardEulerModifierXBase.hpp:110
Tempus
Definition:
Tempus_AdjointAuxSensitivityModelEvaluator_decl.hpp:20
Tempus::StepperForwardEulerModifierXDefault
Default ModifierX for StepperForwardEuler.
Definition:
Tempus_StepperForwardEulerModifierXDefault.hpp:27
Tempus::StepperForwardEulerModifierXDefault::StepperForwardEulerModifierXDefault
StepperForwardEulerModifierXDefault()
Constructor.
Definition:
Tempus_StepperForwardEulerModifierXDefault.hpp:33
Tempus_StepperForwardEulerModifierXBase.hpp
Tempus::StepperForwardEulerModifierXBase
Base ModifierX for StepperForwardEuler.
Definition:
Tempus_StepperForwardEulerModifierXBase.hpp:49
Tempus::StepperForwardEulerModifierXDefault::~StepperForwardEulerModifierXDefault
virtual ~StepperForwardEulerModifierXDefault()
Destructor.
Definition:
Tempus_StepperForwardEulerModifierXDefault.hpp:36
Tempus::StepperForwardEulerModifierXDefault::modify
virtual void modify(Teuchos::RCP< Thyra::VectorBase< Scalar > >, const Scalar, const Scalar, const typename StepperForwardEulerModifierXBase< Scalar >::MODIFIER_TYPE modType)
Modify solution based on the MODIFIER_TYPE.
Definition:
Tempus_StepperForwardEulerModifierXDefault.hpp:39
src
Tempus_StepperForwardEulerModifierXDefault.hpp
Generated by
1.8.14