CLHEP VERSION Reference Documentation
CLHEP Home Page CLHEP Documentation CLHEP Bug Reports |
00001 #ifndef _FelhbergStepper_hh_ 00002 #define _StepDoublingRKStepper_hh_ 00003 #include "CLHEP/GenericFunctions/AdaptiveRKStepper.hh" 00004 #include "CLHEP/GenericFunctions/ButcherTableau.hh" 00005 // 00006 // Class StepDoublingRK stepper is a class at that implements 00007 // Fehlberg algorithms, or embedded Runge-Kutta Algorithms. 00008 // 00009 namespace Genfun { 00010 00011 class StepDoublingRKStepper: public AdaptiveRKStepper::EEStepper { 00012 00013 public: 00014 00015 // Constructor: 00016 StepDoublingRKStepper(const ButcherTableau & tableau); 00017 00018 // Destructor: 00019 virtual ~StepDoublingRKStepper(); 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 StepDoublingRKStepper *clone() const; 00028 00029 void doStep(const RKIntegrator::RKData * data, 00030 const RKIntegrator::RKData::Data & s, 00031 RKIntegrator::RKData::Data & d) const; 00032 00033 virtual unsigned int order() const; 00034 00035 private: 00036 ButcherTableau tableau; 00037 00038 }; 00039 } 00040 #endif