CMS 3D CMS Logo

RKAdaptiveSolver.h
Go to the documentation of this file.
1 #ifndef RKAdaptiveSolver_H
2 #define RKAdaptiveSolver_H
3 
5 #include "RKSolver.h"
6 
7 //
8 // A Variable Order Runge-Kutta Method for Initial Value Problems with ...
9 // www.elegio.it/mc2/rk/doc/p201-cash-karp.pdf
10 template <typename T, template <typename, int> class StepWithPrec, int N>
11 class dso_internal RKAdaptiveSolver final : public RKSolver<T, N> {
12 public:
14  typedef typename Base::Scalar Scalar;
15  typedef typename Base::Vector Vector;
16 
17  Vector operator()(Scalar startPar,
18  const Vector& startState,
19  Scalar step,
20  const RKDerivative<T, N>& deriv,
21  const RKDistance<T, N>& dist,
22  float eps) override;
23 };
24 
25 #include "TrackPropagation/RungeKutta/src/RKAdaptiveSolver.icc"
26 
27 #endif
RKSolver< T, N > Base
RKSmallVector< T, N > Vector
Definition: RKSolver.h:16
Base::Scalar Scalar
Base::Vector Vector
#define dso_internal
Definition: Visibility.h:13
ABC for Runge-Kutta solvers.
Definition: RKSolver.h:13
Base class for derivative calculation.
Definition: RKDerivative.h:10
#define N
Definition: blowfish.cc:9
T Scalar
Definition: RKSolver.h:15
virtual Vector operator()(Scalar startPar, const Vector &startState, Scalar step, const RKDerivative< T, N > &deriv, const RKDistance< T, N > &dist, float eps)=0
step
Definition: StallMonitor.cc:83