53 typedef typename Acceleration::Scalar_t Scalar_t;
54 typedef typename Acceleration::Point_t Point_t;
55 typedef typename Acceleration::Vector_t Vector_t;
56 typedef typename Acceleration::Christoffel_t Christoffel_t;
58 typedef typename Point_t::Vector_t PointComponents_t;
59 enum { Dims = PointComponents_t::SIZE };
64 const Acceleration&Accel;
73 Scalar_t ds = bk?-this->ds:this->ds;
75 Point_t P = x + v*(ds/2.L);
76 Vector_t V = v + v/2.L;
79 b1 = ds * Accel(x, v),
80 b2 = ds * Accel(x + v*(ds/2.L) + b1*(ds/8.L), v + b1/2.L),
81 b3 = ds * Accel(x + v*(ds/2.L) + b1*(ds/8.L), v + b2/2.L),
82 b4 = ds * Accel(x + v*ds + b3*(ds/2.L), v + b3);
84 x += v*ds + (b1 + b2 + b3) * ds/6;
85 v += (b1 +2.L*b2 +2.L*b3 + b4)/6;