30#ifndef RYTHMOS_RK_BUTCHER_TABLEAU_BUILDER_DECL_HPP
31#define RYTHMOS_RK_BUTCHER_TABLEAU_BUILDER_DECL_HPP
33#include "Rythmos_Types.hpp"
35#include "Rythmos_RKButcherTableauBase.hpp"
36#include "Teuchos_ObjectBuilder.hpp"
37#include "Teuchos_ParameterListAcceptor.hpp"
45class RKButcherTableauBuilder :
46 virtual public Teuchos::ParameterListAcceptor
49 RKButcherTableauBuilder();
50 virtual ~RKButcherTableauBuilder() {}
52 void setRKButcherTableauFactory(
53 const RCP<
const Teuchos::AbstractFactory<RKButcherTableauBase<Scalar> > > &rkbtFactory,
54 const std::string &rkbtFactoryName
57 RCP<RKButcherTableauBase<Scalar> > create(
58 const std::string &rkbt_name =
""
65 void setParameterList(
const RCP<Teuchos::ParameterList> & paramList);
68 RCP<Teuchos::ParameterList> getNonconstParameterList();
71 RCP<Teuchos::ParameterList> unsetParameterList();
74 RCP<const ParameterList> getParameterList()
const;
77 RCP<const Teuchos::ParameterList> getValidParameters()
const;
81 Teuchos::ObjectBuilder<RKButcherTableauBase<Scalar> > builder_;
83 void initializeDefaults_();
88RCP<RKButcherTableauBuilder<Scalar> > rKButcherTableauBuilder();
92RCP<RKButcherTableauBase<Scalar> > createRKBT(
const std::string& rkbt_name);