9#ifndef Tempus_StepperLeapfrogModifierXBase_hpp
10#define Tempus_StepperLeapfrogModifierXBase_hpp
12#include "Tempus_config.hpp"
13#include "Tempus_SolutionHistory.hpp"
57 Teuchos::RCP<SolutionHistory<Scalar> > sh,
58 Teuchos::RCP<StepperLeapfrog<Scalar> > stepper,
64 RCP<SolutionState<Scalar> > workingState = sh->getWorkingState();
65 const Scalar time = workingState->getTime();
66 const Scalar dt = workingState->getTimeStep();
67 RCP<Thyra::VectorBase<Scalar> > x;
73 x = workingState->getX();
79 x = workingState->getX();
85 x = workingState->getX();
91 x = workingState->getX();
97 x = workingState->getX();
101 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
102 "Error - unknown action location.\n");
105 this->
modify(x, time, dt, modType);
122 const Scalar ,
const Scalar ,
Application Action for StepperLeapfrog.
ACTION_LOCATION
Indicates the location of application action (see algorithm).
Base ModifierX for StepperLeapfrog.
virtual void modify(Teuchos::RCP< Thyra::VectorBase< Scalar > >, const Scalar, const Scalar, const MODIFIER_TYPE modType)=0
Modify solution based on the MODIFIER_TYPE.
void execute(Teuchos::RCP< SolutionHistory< Scalar > > sh, Teuchos::RCP< StepperLeapfrog< Scalar > > stepper, const typename StepperLeapfrogAppAction< Scalar >::ACTION_LOCATION actLoc)
Execute application action for Leapfrog Stepper.
MODIFIER_TYPE
Indicates the location of application action (see algorithm).
@ X_BEGIN_STEP
Modify at the beginning of the step.
@ X_BEFORE_XDOT_UPDATE
Modify Before updating xDot.
@ X_END_STEP
Modify at the end of the step.
@ X_BEFORE_X_UPDATE
Modify before updating x.
@ X_BEFORE_EXPLICIT_EVAL
Modify before the explicit ME evaluation.