Tempus
Version of the Day
Time Integration
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
Tempus_StepperRKModifierXDefault.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_StepperRKModifierX_hpp
10
#define Tempus_StepperRKModifierX_hpp
11
12
#include "Tempus_config.hpp"
13
#include "
Tempus_StepperRKModifierXBase.hpp
"
14
15
16
namespace
Tempus {
17
18
/** \brief Default ModifierX for StepperRK.
19
*
20
* The default provides no-op functionality for ModifierX.
21
* See StepperRKModifierXBase 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
StepperRKModifierXDefault
28
:
virtual
public
Tempus::StepperRKModifierXBase
<Scalar>
29
{
30
public
:
31
32
/// Constructor
33
StepperRKModifierXDefault
(){}
34
35
/// Destructor
36
virtual
~StepperRKModifierXDefault
(){}
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
int
/* stageNumber */
,
43
const
typename
StepperRKModifierXBase<Scalar>::MODIFIER_TYPE
modType)
44
{
45
switch
(modType) {
46
case
StepperRKModifierXBase<Scalar>::X_BEGIN_STEP
:
47
case
StepperRKModifierXBase<Scalar>::X_BEGIN_STAGE
:
48
case
StepperRKModifierXBase<Scalar>::X_BEFORE_SOLVE
:
49
case
StepperRKModifierXBase<Scalar>::X_AFTER_SOLVE
:
50
case
StepperRKModifierXBase<Scalar>::X_BEFORE_EXPLICIT_EVAL
:
51
case
StepperRKModifierXBase<Scalar>::X_END_STAGE
:
52
case
StepperRKModifierXBase<Scalar>::X_END_STEP
:
53
{
54
// No-op.
55
break
;
56
}
57
default
:
58
TEUCHOS_TEST_FOR_EXCEPTION(
true
, std::logic_error,
59
"Error - unknown modifier type.\n"
);
60
}
61
}
62
63
};
64
65
}
// namespace Tempus
66
67
#endif // Tempus_StepperRKModifierX_hpp
Tempus_StepperRKModifierXBase.hpp
Tempus::StepperRKModifierXBase
Base ModifierX for StepperRK.
Definition:
Tempus_StepperRKModifierXBase.hpp:49
Tempus::StepperRKModifierXBase::MODIFIER_TYPE
MODIFIER_TYPE
Indicates the location of application action (see algorithm).
Definition:
Tempus_StepperRKModifierXBase.hpp:135
Tempus::StepperRKModifierXDefault
Default ModifierX for StepperRK.
Definition:
Tempus_StepperRKModifierXDefault.hpp:27
Tempus::StepperRKModifierXDefault::StepperRKModifierXDefault
StepperRKModifierXDefault()
Constructor.
Definition:
Tempus_StepperRKModifierXDefault.hpp:33
Tempus::StepperRKModifierXDefault::modify
virtual void modify(Teuchos::RCP< Thyra::VectorBase< Scalar > >, const Scalar, const Scalar, const int, const typename StepperRKModifierXBase< Scalar >::MODIFIER_TYPE modType)
Modify solution based on the MODIFIER_TYPE.
Definition:
Tempus_StepperRKModifierXDefault.hpp:39
Tempus::StepperRKModifierXDefault::~StepperRKModifierXDefault
virtual ~StepperRKModifierXDefault()
Destructor.
Definition:
Tempus_StepperRKModifierXDefault.hpp:36
src
Tempus_StepperRKModifierXDefault.hpp
Generated on Tue Nov 12 2024 09:36:31 for Tempus by
1.8.5