Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:54:34

0001 #ifndef _EmbeddedRKStepper_hh_
0002 #define _EmbeddedRKStepper_hh_
0003 #include "CLHEP/GenericFunctions/AdaptiveRKStepper.hh"
0004 #include "CLHEP/GenericFunctions/ExtendedButcherTableau.hh"
0005 //
0006 // Class EmbeddedRK stepper is a class at that implements
0007 // Fehlberg algorithms, or embedded Runge-Kutta Algorithms.  
0008 //
0009 namespace Genfun {
0010 
0011   class EmbeddedRKStepper: public AdaptiveRKStepper::EEStepper {
0012 
0013   public:
0014     
0015     // Constructor:
0016     EmbeddedRKStepper(const ExtendedButcherTableau & tableau=CashKarpXtTableau());
0017     
0018     // Destructor:
0019     virtual ~EmbeddedRKStepper();
0020     
0021     // Take a single step with error estimate:
0022     virtual void step   (const RKIntegrator::RKData       * data, 
0023              const RKIntegrator::RKData::Data & sdata, 
0024              RKIntegrator::RKData::Data       & ddata, 
0025              std::vector<double>              & errors) const;
0026     // Clone self:
0027     virtual EmbeddedRKStepper *clone() const;
0028 
0029     // Return the order:
0030     virtual unsigned int order() const;
0031   private:
0032     ExtendedButcherTableau tableau;
0033   };
0034 }
0035 #endif