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"
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_();
205template<
class Scalar>
213template<
class Scalar>
214RCP<IntegratorBuilder<Scalar> >
222template<
class Scalar>
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
Base class for strategy objects that control integration by selecting step sizes for a stepper.
Abstract interface for time integrators.
Concrete integrator builder class.
virtual ~IntegratorBuilder()
void setWFactoryObject(const RCP< Thyra::LinearOpWithSolveFactoryBase< Scalar > > &wFactoryObject)
Set a W factory object.
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.
void setIntegratorFactory(const RCP< const AbstractFactory< IntegratorBase< Scalar > > > &integratorFactory, const std::string &integratorFactoryName)
Set a new Integrator factory object.
void setInterpolatorFactory(const RCP< const AbstractFactory< InterpolatorBase< Scalar > > > &interpolatorFactory, const std::string &interpolatorFactoryName)
Set an Interpolator factory object.
void setInterpolationBufferAppenderFactory(const RCP< const AbstractFactory< InterpolationBufferAppenderBase< Scalar > > > &interpolationBufferAppenderFactory, const std::string &interpolationBufferAppenderName)
Set an InterpolationBufferAppender factory object.
void setErrWtVecCalcFactory(const RCP< const AbstractFactory< ErrWtVecCalcBase< Scalar > > > &errWtVecCalcFactory, const std::string &errWtVecCalcFactoryName)
Set an ErrWtVecCalc factory object.
RCP< StepperBuilder< Scalar > > getStepperBuilder()
Get the Stepper Builder object.
void setStepperBuilder(const RCP< StepperBuilder< Scalar > > &stepperBuilder)
Set the Stepper Builder object.
RCP< IntegratorBase< Scalar > > createForwardSensitivityIntegrator(const RCP< const Thyra::ModelEvaluator< Scalar > > &model, const int &p_index, const Thyra::ModelEvaluatorBase::InArgs< Scalar > &model_ic, const RCP< Thyra::NonlinearSolverBase< Scalar > > &nlSolver, const RCP< ParameterList > &integratorBuilderPL)
Creates a Forward Sensitivity Integrator Initial conditions for the sensitivities are all zero.
void setParameterList(const RCP< Teuchos::ParameterList > ¶mList)
RCP< const ParameterList > getParameterList() const
void setInterpolationBufferFactory(const RCP< const AbstractFactory< InterpolationBufferBase< Scalar > > > &interpolationBufferFactory, const std::string &interpolationBufferName)
Set an InterpolationBuffer factory object.
RCP< const Teuchos::ParameterList > getValidParameters() const
RCP< IntegratorBuilder< Scalar > > integratorBuilder(const RCP< ParameterList > ¶mList)
Nonmember constructor given parameter list.
void setIntegrationControlFactory(const RCP< const AbstractFactory< IntegrationControlStrategyBase< Scalar > > > &integrationControlFactory, const std::string &integrationControlName)
Set a new Integration Control Strategy factory object.
void setStepControlFactory(const RCP< const AbstractFactory< StepControlStrategyBase< Scalar > > > &stepControlStrategyFactory, const std::string &stepControlName)
Set a new Step Control Strategy factory object.
RCP< IntegratorBuilder< Scalar > > integratorBuilder()
Nonmember constructor to uninitialized.
void setRKButcherTableauBuilder(const RCP< RKButcherTableauBuilder< Scalar > > &rkbtBuilder)
Set the RK Butcher Tableau Builder object.
RCP< ParameterList > getNonconstParameterList()
RCP< ParameterList > unsetParameterList()
Base class for strategy objects that append data from one InterplationBufferBase object to another.
Base class for an interpolation buffer.
Base strategy class for interpolation functionality.
The member functions in the StepControlStrategyBase move you between these states in the following fa...