18 #ifndef CLASSIC_PartPusher_H
19 #define CLASSIC_PartPusher_H
39 const double &dt)
const;
43 const double &dt,
const double &mass,
44 const double &charge)
const;
67 const double &dt)
const
75 const double &dt,
const double &mass,
76 const double &charge)
const
105 P += 0.5 * dt * charge *
Physics::c / mass * Ef;
116 double const gamma =
sqrt(1.0 +
dot(P, P));
127 P += 0.5 * dt * charge *
Physics::c / mass * Ef;
138 R += 0.5 * P /
sqrt(1.0 +
dot(P, P));
Tps< T > sqrt(const Tps< T > &x)
Square root.
Vector3D cross(const Vector3D &lhs, const Vector3D &rhs)
Vector cross product.
double dot(const Vector3D &lhs, const Vector3D &rhs)
Vector dot product.
constexpr double c
The velocity of light in m/s.
double getQ() const
The constant charge per particle.
double getM() const
The constant mass per particle.
void kick(const Vector_t &R, Vector_t &P, const Vector_t &Ef, const Vector_t &Bf, const double &dt) const
const PartData * itsReference
void initialise(const PartData *ref)
void push(Vector_t &R, const Vector_t &P, const double &dt) const