9 #ifndef Tempus_StepperRKModifierXBase_hpp
10 #define Tempus_StepperRKModifierXBase_hpp
12 #include "Tempus_config.hpp"
13 #include "Tempus_SolutionHistory.hpp"
38 template<
class Scalar>
65 const int stageNumber = stepper->getStageNumber();
67 RCP<SolutionState<Scalar> > workingState = sh->getWorkingState();
68 const Scalar dt = workingState->getTimeStep();
69 Scalar time = sh->getCurrentState()->getTime();
70 if (stageNumber >= 0) time += c(stageNumber)*dt;
71 RCP<Thyra::VectorBase<Scalar> > x = workingState->getX();
107 time = workingState->getTime();
112 "Error - unknown action location.\n");
115 this->
modify(x, time, dt, stageNumber, modType);
134 const Scalar ,
const Scalar ,
142 #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.