Rythmos - Transient Integration for Differential Equations Version of the Day
Loading...
Searching...
No Matches
Rythmos_ForwardSensitivityStepperTester_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#ifndef Rythmos_FORWARD_SENSITIVITY_STEPPER_TESTER_DECL_H
30#define Rythmos_FORWARD_SENSITIVITY_STEPPER_TESTER_DECL_H
31
32
33#include "Rythmos_StepperSupportTypes.hpp"
34#include "Rythmos_IntegratorBase.hpp"
35#include "Thyra_ModelEvaluator.hpp"
36#include "Teuchos_VerboseObject.hpp"
37#include "Teuchos_ParameterListAcceptorDefaultBase.hpp"
38
39
40namespace Rythmos {
41
42
43template<class Scalar> class ForwardSensitivityStepperTester;
44
45
46namespace ForwardSensitivityStepperTesterUtils {
47
48const std::string FdCalc_name = "FD Calc";
49
50const std::string ErrorTol_name = "Error Tol";
51const double ErrorTol_default = 1e-6;
52
53} // namespace ForwardSensitivityStepperTesterUtils
54
55
60template<class Scalar>
61RCP<ForwardSensitivityStepperTester<Scalar> >
63
64
69template<class Scalar>
70RCP<ForwardSensitivityStepperTester<Scalar> >
71forwardSensitivityStepperTester(const RCP<ParameterList> &paramList);
72
73
78template<class Scalar>
80 : virtual public Teuchos::VerboseObject<ForwardSensitivityStepperTester<Scalar> >,
81 virtual public Teuchos::ParameterListAcceptorDefaultBase
82{
83public:
84
85 typedef typename ScalarTraits<Scalar>::magnitudeType ScalarMag;
86
89
91 void setParameterList(RCP<ParameterList> const& paramList);
93 RCP<const ParameterList> getValidParameters() const;
94
96
99
102 bool testForwardSens(
103 const Ptr<IntegratorBase<Scalar> > &fwdSensIntegrator
104 );
105
107
108#ifndef TEMPLATE_FRIENDS_NOT_SUPPORTED
109
112
114 friend RCP< ForwardSensitivityStepperTester<Scalar> >
115 forwardSensitivityStepperTester<>();
116
118
119#endif // TEMPLATE_FRIENDS_NOT_SUPPORTED
120
121
122#ifndef TEMPLATE_FRIENDS_NOT_SUPPORTED
123private:
124#endif // TEMPLATE_FRIENDS_NOT_SUPPORTED
125
126 ForwardSensitivityStepperTester(); // Note defined and not to be called
127
128private:
129
130 ScalarMag errorTol_;
131
132};
133
134
135} // namespace Rythmos
136
137
138#endif //Rythmos_FORWARD_SENSITIVITY_STEPPER_TESTER_DECL_H
Concrete testing class for forward sensitivities.
void setParameterList(RCP< ParameterList > const &paramList)
RCP< ForwardSensitivityStepperTester< Scalar > > forwardSensitivityStepperTester()
Nonmember constructor.
RCP< ForwardSensitivityStepperTester< Scalar > > forwardSensitivityStepperTester(const RCP< ParameterList > &paramList)
Nonmember constructor.
bool testForwardSens(const Ptr< IntegratorBase< Scalar > > &fwdSensIntegrator)
Test a forward sensitivity stepper.
Abstract interface for time integrators.