10 #ifndef Tempus_StepperRKModifierXBase_hpp
11 #define Tempus_StepperRKModifierXBase_hpp
13 #include "Tempus_config.hpp"
14 #include "Tempus_SolutionHistory.hpp"
39 template <
class Scalar>
64 const int stageNumber = stepper->getStageNumber();
66 RCP<SolutionState<Scalar> > workingState = sh->getWorkingState();
67 const Scalar dt = workingState->getTimeStep();
68 Scalar time = sh->getCurrentState()->getTime();
69 if (stageNumber >= 0) time += c(stageNumber) * dt;
70 RCP<Thyra::VectorBase<Scalar> > x = workingState->getX();
99 time = workingState->getTime();
104 "Error - unknown action location.\n");
107 this->
modify(x, time, dt, stageNumber, modType);
124 const Scalar ,
const Scalar ,
131 #endif // Tempus_StepperRKModifierXBase_hpp
Modify at the end of the step.
Modify after the implicit solve.
Base ModifierX for StepperRK.
Modify at the beginning of the stage.
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
Modify before the implicit solve.
Base class for Runge-Kutta methods, ExplicitRK, DIRK and IMEX.
Modify at the beginning of the step.
Application Action for StepperRKBase.
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...
Modify at the end of the stage.
MODIFIER_TYPE
Indicates the location of application action (see algorithm).
Modify before the explicit evaluation.
ACTION_LOCATION
Indicates the location of application action (see algorithm).
void execute(Teuchos::RCP< SolutionHistory< Scalar > > sh, Teuchos::RCP< StepperRKBase< Scalar > > stepper, const typename StepperRKAppAction< Scalar >::ACTION_LOCATION actLoc)
Execute application action for RK Stepper.
virtual void modify(Teuchos::RCP< Thyra::VectorBase< Scalar > >, const Scalar, const Scalar, const int, const MODIFIER_TYPE modType)=0
Modify solution based on the MODIFIER_TYPE.