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>
213 template<
class Scalar>
214 RCP<IntegratorBuilder<Scalar> >
222 template<
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
233 #endif //Rythmos_INTEGRATOR_BUILDER_DECL_H 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 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< IntegratorBuilder< Scalar > > integratorBuilder()
Nonmember constructor to uninitialized.
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.