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.