Tempus
Version of the Day
Time Integration
Tempus_StepperIMEX_RKPartObserver.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_StepperIMEX_RKPartObserver_hpp
10
#define Tempus_StepperIMEX_RKPartObserver_hpp
11
12
#include "Tempus_SolutionHistory.hpp"
13
14
15
namespace
Tempus
{
16
17
// Forward Declaration for recursive includes (this Observer <--> Stepper)
18
template
<
class
Scalar>
class
StepperIMEX_RK_Partition;
19
20
/** \brief StepperIMEX_RKPartObserver class for StepperIMEX_RK_Partition.
21
*
22
* This is a means for application developers to perform tasks
23
* during the time steps, e.g.,
24
* - Compute specific quantities
25
* - Output information
26
* - "Massage" the working solution state
27
* - ...
28
*
29
* <b>Design Considerations</b>
30
* - StepperIMEX_RKPartObserver is not stateless! Developers may touch the
31
* solution state! Developers need to be careful not to break the
32
* restart (checkpoint) capability.
33
*/
34
template
<
class
Scalar>
35
class
StepperIMEX_RKPartObserver
36
:
virtual
public
Tempus::StepperObserver
<Scalar>
37
{
38
public
:
39
40
/// Constructor
41
StepperIMEX_RKPartObserver
(){}
42
43
/// Destructor
44
virtual
~StepperIMEX_RKPartObserver
(){}
45
46
/// Observe Stepper at beginning of takeStep.
47
virtual
void
observeBeginTakeStep
(
48
Teuchos::RCP<
SolutionHistory<Scalar>
> sh,
49
Stepper<Scalar>
& stepper){}
50
51
/// Observe Stepper at beginning of each stage.
52
virtual
void
observeBeginStage
(
53
Teuchos::RCP<
SolutionHistory<Scalar>
> sh,
54
StepperIMEX_RK_Partition<Scalar>
& stepperIMEX_RK_Part){}
55
56
/// Observe Stepper before Explicit evaluation of Implicit ODE ME.
57
virtual
void
observeBeforeImplicitExplicitly
(
58
Teuchos::RCP<
SolutionHistory<Scalar>
> sh,
59
StepperIMEX_RK_Partition<Scalar>
& stepperIMEX_RK_Part){}
60
61
/// Observe Stepper before nonlinear solve.
62
virtual
void
observeBeforeSolve
(
63
Teuchos::RCP<
SolutionHistory<Scalar>
> sh,
64
StepperIMEX_RK_Partition<Scalar>
& stepperIMEX_RK_Part){}
65
66
/// Observe Stepper after nonlinear solve.
67
virtual
void
observeAfterSolve
(
68
Teuchos::RCP<
SolutionHistory<Scalar>
> sh,
69
StepperIMEX_RK_Partition<Scalar>
& stepperIMEX_RK_Part){}
70
71
/// Observe Stepper before Explicit ME evaluation.
72
virtual
void
observeBeforeExplicit
(
73
Teuchos::RCP<
SolutionHistory<Scalar>
> sh,
74
StepperIMEX_RK_Partition<Scalar>
& stepperIMEX_RK_Part){}
75
76
/// Observe Stepper at end of each stage.
77
virtual
void
observeEndStage
(
78
Teuchos::RCP<
SolutionHistory<Scalar>
> sh,
79
StepperIMEX_RK_Partition<Scalar>
& stepperIMEX_RK_Part){}
80
81
/// Observe Stepper at end of takeStep.
82
virtual
void
observeEndTakeStep
(
83
Teuchos::RCP<
SolutionHistory<Scalar>
> sh,
84
Stepper<Scalar>
& stepper){}
85
};
86
}
// namespace Tempus
87
#endif // Tempus_StepperIMEX_RKPartObserver_hpp
Tempus::StepperIMEX_RKPartObserver::observeBeginStage
virtual void observeBeginStage(Teuchos::RCP< SolutionHistory< Scalar > > sh, StepperIMEX_RK_Partition< Scalar > &stepperIMEX_RK_Part)
Observe Stepper at beginning of each stage.
Definition:
Tempus_StepperIMEX_RKPartObserver.hpp:52
Tempus::StepperIMEX_RKPartObserver::observeEndStage
virtual void observeEndStage(Teuchos::RCP< SolutionHistory< Scalar > > sh, StepperIMEX_RK_Partition< Scalar > &stepperIMEX_RK_Part)
Observe Stepper at end of each stage.
Definition:
Tempus_StepperIMEX_RKPartObserver.hpp:77
Tempus::StepperIMEX_RKPartObserver
StepperIMEX_RKPartObserver class for StepperIMEX_RK_Partition.
Definition:
Tempus_StepperIMEX_RKPartObserver.hpp:35
Tempus::StepperIMEX_RKPartObserver::observeBeginTakeStep
virtual void observeBeginTakeStep(Teuchos::RCP< SolutionHistory< Scalar > > sh, Stepper< Scalar > &stepper)
Observe Stepper at beginning of takeStep.
Definition:
Tempus_StepperIMEX_RKPartObserver.hpp:47
Tempus
Definition:
Tempus_AdjointAuxSensitivityModelEvaluator_decl.hpp:20
Tempus::StepperIMEX_RKPartObserver::observeEndTakeStep
virtual void observeEndTakeStep(Teuchos::RCP< SolutionHistory< Scalar > > sh, Stepper< Scalar > &stepper)
Observe Stepper at end of takeStep.
Definition:
Tempus_StepperIMEX_RKPartObserver.hpp:82
Tempus::StepperIMEX_RK_Partition
Partitioned Implicit-Explicit Runge-Kutta (IMEX-RK) time stepper.
Definition:
Tempus_StepperIMEX_RK_Partition_decl.hpp:228
Tempus::StepperIMEX_RKPartObserver::observeAfterSolve
virtual void observeAfterSolve(Teuchos::RCP< SolutionHistory< Scalar > > sh, StepperIMEX_RK_Partition< Scalar > &stepperIMEX_RK_Part)
Observe Stepper after nonlinear solve.
Definition:
Tempus_StepperIMEX_RKPartObserver.hpp:67
Tempus::StepperObserver
StepperObserver class for Stepper class.
Definition:
Tempus_StepperObserver.hpp:38
Tempus::SolutionHistory
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...
Definition:
Tempus_Integrator.hpp:25
Tempus::Stepper
Thyra Base interface for time steppers.
Definition:
Tempus_Integrator.hpp:24
Tempus::StepperIMEX_RKPartObserver::~StepperIMEX_RKPartObserver
virtual ~StepperIMEX_RKPartObserver()
Destructor.
Definition:
Tempus_StepperIMEX_RKPartObserver.hpp:44
Tempus::StepperIMEX_RKPartObserver::observeBeforeImplicitExplicitly
virtual void observeBeforeImplicitExplicitly(Teuchos::RCP< SolutionHistory< Scalar > > sh, StepperIMEX_RK_Partition< Scalar > &stepperIMEX_RK_Part)
Observe Stepper before Explicit evaluation of Implicit ODE ME.
Definition:
Tempus_StepperIMEX_RKPartObserver.hpp:57
Tempus::StepperIMEX_RKPartObserver::observeBeforeExplicit
virtual void observeBeforeExplicit(Teuchos::RCP< SolutionHistory< Scalar > > sh, StepperIMEX_RK_Partition< Scalar > &stepperIMEX_RK_Part)
Observe Stepper before Explicit ME evaluation.
Definition:
Tempus_StepperIMEX_RKPartObserver.hpp:72
Tempus::StepperIMEX_RKPartObserver::observeBeforeSolve
virtual void observeBeforeSolve(Teuchos::RCP< SolutionHistory< Scalar > > sh, StepperIMEX_RK_Partition< Scalar > &stepperIMEX_RK_Part)
Observe Stepper before nonlinear solve.
Definition:
Tempus_StepperIMEX_RKPartObserver.hpp:62
Tempus::StepperIMEX_RKPartObserver::StepperIMEX_RKPartObserver
StepperIMEX_RKPartObserver()
Constructor.
Definition:
Tempus_StepperIMEX_RKPartObserver.hpp:41
src
Tempus_StepperIMEX_RKPartObserver.hpp
Generated by
1.8.16