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"
44 template<
class Scalar>
45 class 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_();
87 template<
class Scalar>
88 RCP<RKButcherTableauBuilder<Scalar> > rKButcherTableauBuilder();
91 template<
class Scalar>
92 RCP<RKButcherTableauBase<Scalar> > createRKBT(
const std::string& rkbt_name);
98 #endif // RYTHMOS_RK_BUTCHER_TABLEAU_BUILDER_DECL_HPP