Rythmos - Transient Integration for Differential Equations
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
src
Rythmos_IntegrationControlStrategyBase.hpp
1
2
#ifndef RYTHMOS_INTEGRATION_CONTROL_STRATEGY_BASE_HPP
3
#define RYTHMOS_INTEGRATION_CONTROL_STRATEGY_BASE_HPP
4
5
#include "Rythmos_Types.hpp"
6
#include "Teuchos_Describable.hpp"
7
#include "Teuchos_VerboseObject.hpp"
8
#include "Teuchos_ParameterListAcceptor.hpp"
9
10
namespace
Rythmos {
11
12
13
// Forwards
14
template
<
class
Scalar>
class
StepControlInfo
;
15
template
<
class
Scalar>
class
TimeRange
;
16
template
<
class
Scalar>
class
StepperBase
;
17
18
24
template
<
class
Scalar>
25
class
IntegrationControlStrategyBase
26
:
virtual
public
Teuchos::Describable,
27
virtual
public
Teuchos::VerboseObject<IntegrationControlStrategyBase<Scalar> >,
28
virtual
public
Teuchos::ParameterListAcceptor
29
{
30
public
:
31
36
virtual
bool
handlesFailedTimeSteps
()
const
{
return
false
; }
37
43
virtual
RCP<IntegrationControlStrategyBase<Scalar> >
44
cloneIntegrationControlStrategy
()
const
= 0;
45
56
virtual
void
resetIntegrationControlStrategy
(
57
const
TimeRange<Scalar>
&integrationTimeDomain
58
) = 0;
59
89
virtual
StepControlInfo<Scalar>
90
getNextStepControlInfo
(
91
const
StepperBase<Scalar>
&stepper,
92
const
StepControlInfo<Scalar>
&stepCtrlInfoLast,
93
const
int
timeStepIter
94
) = 0;
95
115
virtual
bool
resetForFailedTimeStep
(
116
const
StepperBase<Scalar>
&
/* stepper */
,
117
const
StepControlInfo<Scalar>
&
/* stepCtrlInfoLast */
,
118
const
int
/* timeStepIter */
,
119
const
StepControlInfo<Scalar>
&
/* stepCtrlInfo */
120
)
121
{
return
false
; }
122
123
124
};
125
126
127
}
// namespace Rythmos
128
129
130
#endif
// RYTHMOS_INTEGRATION_CONTROL_STRATEGY_BASE_HPP
Rythmos::IntegrationControlStrategyBase
Base class for strategy objects that control integration by selecting step sizes for a stepper.
Definition
Rythmos_IntegrationControlStrategyBase.hpp:29
Rythmos::IntegrationControlStrategyBase::cloneIntegrationControlStrategy
virtual RCP< IntegrationControlStrategyBase< Scalar > > cloneIntegrationControlStrategy() const =0
Clone this integration control object if supported .
Rythmos::IntegrationControlStrategyBase::resetForFailedTimeStep
virtual bool resetForFailedTimeStep(const StepperBase< Scalar > &, const StepControlInfo< Scalar > &, const int, const StepControlInfo< Scalar > &)
Inform of a failed time step.
Definition
Rythmos_IntegrationControlStrategyBase.hpp:115
Rythmos::IntegrationControlStrategyBase::getNextStepControlInfo
virtual StepControlInfo< Scalar > getNextStepControlInfo(const StepperBase< Scalar > &stepper, const StepControlInfo< Scalar > &stepCtrlInfoLast, const int timeStepIter)=0
Select the next time step control info.
Rythmos::IntegrationControlStrategyBase::resetIntegrationControlStrategy
virtual void resetIntegrationControlStrategy(const TimeRange< Scalar > &integrationTimeDomain)=0
Reset the control algorithm to the beginning to start a new integration.
Rythmos::IntegrationControlStrategyBase::handlesFailedTimeSteps
virtual bool handlesFailedTimeSteps() const
Return if this object can handle and repond to failed time steps.
Definition
Rythmos_IntegrationControlStrategyBase.hpp:36
Rythmos::StepControlInfo
Simple struct to aggregate integration/stepper control information.
Definition
Rythmos_StepControlInfo.hpp:18
Rythmos::StepperBase
Base class for defining stepper functionality.
Definition
Rythmos_StepperBase_decl.hpp:79
Rythmos::TimeRange
Represent a time range.
Definition
Rythmos_TimeRange_decl.hpp:73
Generated by
1.17.0