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

SimpleRKStepper.hh

Go to the documentation of this file.
00001 #ifndef _SimpleRKStepper_h_
00002 #define _SimpleRKStepper_h_
00003 #include "CLHEP/GenericFunctions/RKIntegrator.hh"
00004 //
00005 // This is a stepper that steps with stepsize h using an
00006 // Explicit Runge-Kutte method determined by a Butcher
00007 // tableau. 
00008 //
00009 // The stepsize is therefore not adaptively determined;
00010 // so this type of stepper is mostly useful in attempting
00011 // to categorize the different explicit RK Algorithms
00012 // and probably not for real-life problems unless one has
00013 // some a priori knowledge about how to set the stepsize.
00014 //
00015 #include "CLHEP/GenericFunctions/ButcherTableau.hh"
00016 namespace Genfun {
00017   class SimpleRKStepper:public RKIntegrator::RKStepper{
00018     
00019   public:
00020     
00021     // Constructor:
00022     SimpleRKStepper(const ButcherTableau & tableau,
00023                     double stepsize);
00024 
00025     // Destructor:
00026     virtual ~SimpleRKStepper();
00027 
00028     // Take a step:
00029     virtual void step (const RKIntegrator::RKData       * data,  // functions 
00030                        const RKIntegrator::RKData::Data & sdata, // start point
00031                        RKIntegrator::RKData::Data       & ddata, // end point
00032                        double                         timeLimit  // time limit 
00033                        ) const ;
00034     // Clone:
00035     virtual SimpleRKStepper *clone() const;
00036     
00037 private:
00038 
00039   ButcherTableau tableau;
00040   double stepsize;
00041 
00042   };
00043 }
00044 
00045 #endif

Generated on 15 Nov 2012 for CLHEP by  doxygen 1.4.7