CLHEP VERSION Reference Documentation
   
CLHEP Home Page     CLHEP Documentation     CLHEP Bug Reports

StepDoublingRKStepper.hh

Go to the documentation of this file.
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

Generated on 15 Nov 2012 for CLHEP by  doxygen 1.4.7