21template <
typename FieldFunction,
typename ... Arguments>
26 Arguments& ... args)
const
28 bool flagNoDeletion =
true;
33 flagNoDeletion = kick_m(bunch, i, t, dt *
Units::ns2s, args ...);
38 return flagNoDeletion;
42template <
typename FieldFunction,
typename ... Arguments>
44 const double& h)
const
46 double const gamma =
sqrt(1.0 +
dot(P, P));
53template <
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],
double dot(const Vector3D &lhs, const Vector3D &rhs)
Vector dot product.
Tps< T > sqrt(const Tps< T > &x)
Square root.
constexpr double q_e
The elementary charge in As.
constexpr double c
The velocity of light in m/s.
ParticleAttrib< double > M
ParticleAttrib< Vector_t > P
ParticleAttrib< double > Q
void kick(const Vector_t &R, Vector_t &P, const Vector_t &Ef, const Vector_t &Bf, const double &dt) const
bool doAdvance_m(PartBunchBase< double, 3 > *bunch, const size_t &i, const double &t, const double dt, Arguments &... args) const
bool kick_m(PartBunchBase< double, 3 > *bunch, const size_t &i, const double &t, const double &h, Arguments &... args) const
void push_m(Vector_t &R, const Vector_t &P, const double &h) const
Vektor< double, 3 > Vector_t