30 #ifndef Rythmos_INTEGRATOR_BUILDER_DECL_H
31 #define Rythmos_INTEGRATOR_BUILDER_DECL_H
34 #include "Rythmos_Types.hpp"
35 #include "Rythmos_IntegratorBase.hpp"
36 #include "Rythmos_IntegrationControlStrategyBase.hpp"
37 #include "Rythmos_StepperBuilder.hpp"
38 #include "Rythmos_StepControlStrategyBase.hpp"
39 #include "Rythmos_InterpolationBufferBase.hpp"
40 #include "Rythmos_InterpolationBufferAppenderBase.hpp"
41 #include "Rythmos_ErrWtVecCalcBase.hpp"
42 #include "Rythmos_InterpolatorBase.hpp"
43 #include "Rythmos_RKButcherTableauBuilder.hpp"
46 #include "Thyra_LinearOpWithSolveFactoryBase.hpp"
47 #include "Thyra_NonlinearSolverBase.hpp"
48 #include "Thyra_ModelEvaluator.hpp"
51 #include "Teuchos_ObjectBuilder.hpp"
52 #include "Teuchos_ParameterListAcceptor.hpp"
62 template<
class Scalar>
76 const std::string &integratorFactoryName
82 const std::string &integrationControlName
87 const RCP<StepperBuilder<Scalar> > &stepperBuilder
95 const RCP<RKButcherTableauBuilder<Scalar> > & rkbtBuilder
101 const std::string &stepControlName
107 const std::string &interpolationBufferName
113 const std::string &interpolationBufferAppenderName
118 const RCP<
const AbstractFactory<ErrWtVecCalcBase<Scalar> > > &errWtVecCalcFactory,
119 const std::string &errWtVecCalcFactoryName
125 const std::string &interpolatorFactoryName
130 const RCP<Thyra::LinearOpWithSolveFactoryBase<Scalar> > &wFactoryObject
147 RCP<IntegratorBase<Scalar> >
create(
148 const RCP<
const Thyra::ModelEvaluator<Scalar> >& model,
149 const Thyra::ModelEvaluatorBase::InArgs<Scalar>& initialCondition,
150 const RCP<Thyra::NonlinearSolverBase<Scalar> >& nlSolver
178 RCP<Teuchos::ObjectBuilder<IntegratorBase<Scalar> > > integratorBuilder_;
179 RCP<Teuchos::ObjectBuilder<IntegrationControlStrategyBase<Scalar> > > integrationControlBuilder_;
180 RCP<StepperBuilder<Scalar> > stepperBuilder_;
181 RCP<RKButcherTableauBuilder<Scalar> > rkbtBuilder_;
182 RCP<Teuchos::ObjectBuilder<StepControlStrategyBase<Scalar> > > stepControlBuilder_;
183 RCP<Teuchos::ObjectBuilder<InterpolationBufferBase<Scalar> > > interpolationBufferBuilder_;
184 RCP<Teuchos::ObjectBuilder<InterpolationBufferAppenderBase<Scalar> > > interpolationBufferAppenderBuilder_;
185 RCP<Teuchos::ObjectBuilder<ErrWtVecCalcBase<Scalar> > > errWtVecCalcBuilder_;
186 RCP<Teuchos::ObjectBuilder<InterpolatorBase<Scalar> > > interpolatorBuilder_;
188 RCP<Thyra::LinearOpWithSolveFactoryBase<Scalar> > wFactoryObject_;
190 RCP<ParameterList> paramList_;
191 mutable RCP<ParameterList> validPL_;
196 void initializeDefaults_();
205 template<
class Scalar>
206 RCP<IntegratorBuilder<Scalar> > integratorBuilder();
213 template<
class Scalar>
214 RCP<IntegratorBuilder<Scalar> >
215 integratorBuilder(
const RCP<ParameterList> ¶mList);
222 template<
class Scalar>
223 RCP<IntegratorBase<Scalar> > createForwardSensitivityIntegrator(
224 const RCP<
const Thyra::ModelEvaluator<Scalar> >& model,
226 const Thyra::ModelEvaluatorBase::InArgs<Scalar>& model_ic,
227 const RCP<Thyra::NonlinearSolverBase<Scalar> >& nlSolver,
228 const RCP<ParameterList>& integratorBuilderPL
233 #endif //Rythmos_INTEGRATOR_BUILDER_DECL_H
void setRKButcherTableauBuilder(const RCP< RKButcherTableauBuilder< Scalar > > &rkbtBuilder)
Set the RK Butcher Tableau Builder object.
Concrete integrator builder class.
void setParameterList(const RCP< Teuchos::ParameterList > ¶mList)
void setIntegrationControlFactory(const RCP< const AbstractFactory< IntegrationControlStrategyBase< Scalar > > > &integrationControlFactory, const std::string &integrationControlName)
Set a new Integration Control Strategy factory object.
virtual ~IntegratorBuilder()
Base strategy class for interpolation functionality.
Abstract interface for time integrators.
RCP< const ParameterList > getParameterList() const
RCP< IntegratorBase< Scalar > > create(const RCP< const Thyra::ModelEvaluator< Scalar > > &model, const Thyra::ModelEvaluatorBase::InArgs< Scalar > &initialCondition, const RCP< Thyra::NonlinearSolverBase< Scalar > > &nlSolver) const
Create an fully formed integrator ready to go.
RCP< const Teuchos::ParameterList > getValidParameters() const
RCP< StepperBuilder< Scalar > > getStepperBuilder()
Get the Stepper Builder object.
Base class for strategy objects that control integration by selecting step sizes for a stepper...
The member functions in the StepControlStrategyBase move you between these states in the following fa...
void setStepControlFactory(const RCP< const AbstractFactory< StepControlStrategyBase< Scalar > > > &stepControlStrategyFactory, const std::string &stepControlName)
Set a new Step Control Strategy factory object.
void setWFactoryObject(const RCP< Thyra::LinearOpWithSolveFactoryBase< Scalar > > &wFactoryObject)
Set a W factory object.
Base class for an interpolation buffer.
void setInterpolatorFactory(const RCP< const AbstractFactory< InterpolatorBase< Scalar > > > &interpolatorFactory, const std::string &interpolatorFactoryName)
Set an Interpolator factory object.
void setIntegratorFactory(const RCP< const AbstractFactory< IntegratorBase< Scalar > > > &integratorFactory, const std::string &integratorFactoryName)
Set a new Integrator factory object.
Base class for strategy objects that append data from one InterplationBufferBase object to another...
RCP< ParameterList > unsetParameterList()
RCP< ParameterList > getNonconstParameterList()
void setStepperBuilder(const RCP< StepperBuilder< Scalar > > &stepperBuilder)
Set the Stepper Builder object.
void setInterpolationBufferFactory(const RCP< const AbstractFactory< InterpolationBufferBase< Scalar > > > &interpolationBufferFactory, const std::string &interpolationBufferName)
Set an InterpolationBuffer factory object.
void setErrWtVecCalcFactory(const RCP< const AbstractFactory< ErrWtVecCalcBase< Scalar > > > &errWtVecCalcFactory, const std::string &errWtVecCalcFactoryName)
Set an ErrWtVecCalc factory object.
void setInterpolationBufferAppenderFactory(const RCP< const AbstractFactory< InterpolationBufferAppenderBase< Scalar > > > &interpolationBufferAppenderFactory, const std::string &interpolationBufferAppenderName)
Set an InterpolationBufferAppender factory object.