21 template <
typename FieldFunction,
typename ... Arguments>
26 Arguments& ... args)
const
28 bool flagNoDeletion =
true;
31 push_m(bunch->
R[i], bunch->
P[i], 0.5 * dt);
33 flagNoDeletion = kick_m(bunch, i, t, dt, args ...);
36 push_m(bunch->
R[i], bunch->
P[i], 0.5 * dt);
38 return flagNoDeletion;
42 template <
typename FieldFunction,
typename ... Arguments>
44 const double& h)
const
53 template <
typename FieldFunction,
typename ... Arguments>
55 const double& t,
const double& h,
56 Arguments& ... args)
const
61 bool outOfBound = this->fieldfunc_m(t, i, externalE, externalB, args ...);
72 pusher.
kick(bunch->
R[i], bunch->
P[i],
Tps< T > sqrt(const Tps< T > &x)
Square root.
constexpr double c
The velocity of light in m/s.
ParticleAttrib< Vector_t > P
bool doAdvance_m(PartBunchBase< double, 3 > *bunch, const size_t &i, const double &t, const double dt, Arguments &...args) const
Vektor< double, 3 > Vector_t
ParticleAttrib< double > M
bool kick_m(PartBunchBase< double, 3 > *bunch, const size_t &i, const double &t, const double &h, Arguments &...args) const
ParticleAttrib< double > Q
constexpr double q_e
The elementary charge in As.
void kick(const Vector_t &R, Vector_t &P, const Vector_t &Ef, const Vector_t &Bf, const double &dt) const
void push_m(Vector_t &R, const Vector_t &P, const double &h) const
double dot(const Vector3D &lhs, const Vector3D &rhs)
Vector dot product.