Rythmos - Transient Integration for Differential Equations Version of the Day
Loading...
Searching...
No Matches
Rythmos_SimpleIntegrationControlStrategy_decl.hpp
1//@HEADER
2// ***********************************************************************
3//
4// Rythmos Package
5// Copyright (2006) Sandia Corporation
6//
7// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
8// license for use of this work by or on behalf of the U.S. Government.
9//
10// This library is free software; you can redistribute it and/or modify
11// it under the terms of the GNU Lesser General Public License as
12// published by the Free Software Foundation; either version 2.1 of the
13// License, or (at your option) any later version.
14//
15// This library is distributed in the hope that it will be useful, but
16// WITHOUT ANY WARRANTY; without even the implied warranty of
17// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18// Lesser General Public License for more details.
19//
20// You should have received a copy of the GNU Lesser General Public
21// License along with this library; if not, write to the Free Software
22// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
23// USA
24// Questions? Contact Todd S. Coffey (tscoffe@sandia.gov)
25//
26// ***********************************************************************
27//@HEADER
28
29
30#ifndef RYTHMOS_SIMPLE_INTEGRATION_CONTROL_STRATEGY_DECL_HPP
31#define RYTHMOS_SIMPLE_INTEGRATION_CONTROL_STRATEGY_DECL_HPP
32
33
34#include "Rythmos_IntegrationControlStrategyBase.hpp"
35#include "Rythmos_StepperBase.hpp"
36#include "Rythmos_StepControlInfo.hpp"
37#include "Teuchos_ParameterListAcceptorDefaultBase.hpp"
38
39
40namespace Rythmos {
41
42
48template<class Scalar>
50 : virtual public IntegrationControlStrategyBase<Scalar>,
51 virtual public Teuchos::ParameterListAcceptorDefaultBase
52{
53public:
54
57
60
62
65
67 void setParameterList(RCP<ParameterList> const& paramList);
68
70 RCP<const ParameterList> getValidParameters() const;
71
73
76
78 RCP<IntegrationControlStrategyBase<Scalar> >
80
83 const TimeRange<Scalar> &integrationTimeDomain
84 );
85
87 StepControlInfo<Scalar>
89 const StepperBase<Scalar> &stepper,
90 const StepControlInfo<Scalar> &stepCtrlInfoLast,
91 const int timeStepIter
92 );
93
95
96private:
97
98 bool takeVariableSteps_;
99 Scalar max_dt_;
100 int numTimeSteps_;
101 Scalar fixed_dt_;
102
103 TimeRange<Scalar> integrationTimeDomain_;
104
105 static const std::string takeVariableSteps_name_;
106 static const bool takeVariableSteps_default_;
107
108 static const std::string max_dt_name_;
109 static const double max_dt_default_;
110
111 static const std::string numTimeSteps_name_;
112 static const int numTimeSteps_default_;
113
114 static const std::string fixed_dt_name_;
115 static const double fixed_dt_default_;
116
117};
118
119
124template<class Scalar>
125RCP<SimpleIntegrationControlStrategy<Scalar> >
126simpleIntegrationControlStrategy();
127
128
133template<class Scalar>
134RCP<SimpleIntegrationControlStrategy<Scalar> >
135simpleIntegrationControlStrategy( const RCP<ParameterList> &paramList );
136
137
138
139} // namespace Rythmos
140
141
142#endif // RYTHMOS_SIMPLE_INTEGRATION_CONTROL_STRATEGY_DECL_HPP
Base class for strategy objects that control integration by selecting step sizes for a stepper.
Base class for strategy objects that control integration by selecting step sizes for a stepper.
StepControlInfo< Scalar > getNextStepControlInfo(const StepperBase< Scalar > &stepper, const StepControlInfo< Scalar > &stepCtrlInfoLast, const int timeStepIter)
void resetIntegrationControlStrategy(const TimeRange< Scalar > &integrationTimeDomain)
RCP< IntegrationControlStrategyBase< Scalar > > cloneIntegrationControlStrategy() const
Overridden from IntegrationControlStrategyBase.