CLHEP VERSION Reference Documentation
CLHEP Home Page CLHEP Documentation CLHEP Bug Reports |
00001 #ifndef _EmbeddedRKStepper_hh_ 00002 #define _EmbeddedRKStepper_hh_ 00003 #include "CLHEP/GenericFunctions/AdaptiveRKStepper.hh" 00004 #include "CLHEP/GenericFunctions/ExtendedButcherTableau.hh" 00005 // 00006 // Class EmbeddedRK stepper is a class at that implements 00007 // Fehlberg algorithms, or embedded Runge-Kutta Algorithms. 00008 // 00009 namespace Genfun { 00010 00011 class EmbeddedRKStepper: public AdaptiveRKStepper::EEStepper { 00012 00013 public: 00014 00015 // Constructor: 00016 EmbeddedRKStepper(const ExtendedButcherTableau & tableau=CashKarpXtTableau()); 00017 00018 // Destructor: 00019 virtual ~EmbeddedRKStepper(); 00020 00021 // Take a single step with error estimate: 00022 virtual void step (const RKIntegrator::RKData * data, 00023 const RKIntegrator::RKData::Data & sdata, 00024 RKIntegrator::RKData::Data & ddata, 00025 std::vector<double> & errors) const; 00026 // Clone self: 00027 virtual EmbeddedRKStepper *clone() const; 00028 00029 // Return the order: 00030 virtual unsigned int order() const; 00031 private: 00032 ExtendedButcherTableau tableau; 00033 }; 00034 } 00035 #endif