|
Rythmos - Transient Integration for Differential Equations
Version of the Day
|
00001 //@HEADER 00002 // *********************************************************************** 00003 // 00004 // Rythmos Package 00005 // Copyright (2006) Sandia Corporation 00006 // 00007 // Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive 00008 // license for use of this work by or on behalf of the U.S. Government. 00009 // 00010 // This library is free software; you can redistribute it and/or modify 00011 // it under the terms of the GNU Lesser General Public License as 00012 // published by the Free Software Foundation; either version 2.1 of the 00013 // License, or (at your option) any later version. 00014 // 00015 // This library is distributed in the hope that it will be useful, but 00016 // WITHOUT ANY WARRANTY; without even the implied warranty of 00017 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00018 // Lesser General Public License for more details. 00019 // 00020 // You should have received a copy of the GNU Lesser General Public 00021 // License along with this library; if not, write to the Free Software 00022 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 00023 // USA 00024 // Questions? Contact Todd S. Coffey (tscoffe@sandia.gov) 00025 // 00026 // *********************************************************************** 00027 //@HEADER 00028 00029 00030 #ifndef RYTHMOS_RK_BUTCHER_TABLEAU_BUILDER_DECL_HPP 00031 #define RYTHMOS_RK_BUTCHER_TABLEAU_BUILDER_DECL_HPP 00032 00033 #include "Rythmos_Types.hpp" 00034 00035 #include "Rythmos_RKButcherTableauBase.hpp" 00036 #include "Teuchos_ObjectBuilder.hpp" 00037 #include "Teuchos_ParameterListAcceptor.hpp" 00038 00039 00040 00041 00042 namespace Rythmos { 00043 00044 template<class Scalar> 00045 class RKButcherTableauBuilder : 00046 virtual public Teuchos::ParameterListAcceptor 00047 { 00048 public: 00049 RKButcherTableauBuilder(); 00050 virtual ~RKButcherTableauBuilder() {} 00051 00052 void setRKButcherTableauFactory( 00053 const RCP<const Teuchos::AbstractFactory<RKButcherTableauBase<Scalar> > > &rkbtFactory, 00054 const std::string &rkbtFactoryName 00055 ); 00056 00057 RCP<RKButcherTableauBase<Scalar> > create( 00058 const std::string &rkbt_name = "" 00059 ) const; 00060 00063 00065 void setParameterList(const RCP<Teuchos::ParameterList> & paramList); 00066 00068 RCP<Teuchos::ParameterList> getNonconstParameterList(); 00069 00071 RCP<Teuchos::ParameterList> unsetParameterList(); 00072 00074 RCP<const ParameterList> getParameterList() const; 00075 00077 RCP<const Teuchos::ParameterList> getValidParameters() const; 00078 00080 private: 00081 Teuchos::ObjectBuilder<RKButcherTableauBase<Scalar> > builder_; 00082 00083 void initializeDefaults_(); 00084 }; 00085 00086 // Nonmember constructor 00087 template<class Scalar> 00088 RCP<RKButcherTableauBuilder<Scalar> > rKButcherTableauBuilder(); 00089 00090 // Nonmember helper function 00091 template<class Scalar> 00092 RCP<RKButcherTableauBase<Scalar> > createRKBT(const std::string& rkbt_name); 00093 00094 00095 } // namespace Rythmos 00096 00097 00098 #endif // RYTHMOS_RK_BUTCHER_TABLEAU_BUILDER_DECL_HPP
1.7.6.1