3 template <
typename FieldFunction,
typename ... Arguments>
8 Arguments& ... args)
const
10 bool flagNoDeletion =
true;
13 push_m(bunch->
R[i], bunch->
P[i], 0.5 * dt * 1.0e-9);
15 flagNoDeletion = kick_m(bunch, i, t, dt * 1.0
e-9, args ...);
18 push_m(bunch->
R[i], bunch->
P[i], 0.5 * dt * 1.0e-9);
20 return flagNoDeletion;
24 template <
typename FieldFunction,
typename ... Arguments>
26 const double& h)
const
28 double const gamma =
sqrt(1.0 +
dot(P, P));
35 template <
typename FieldFunction,
typename ... Arguments>
37 const double& t,
const double& h,
38 Arguments& ... args)
const
43 bool outOfBound = this->fieldfunc_m(t, i, externalE, externalB, args ...);
50 double const M = bunch->
M[0] * 1.0e9;
54 pusher.
kick(bunch->
R[i], bunch->
P[i],
ParticleAttrib< Vector_t > P
constexpr double e
The value of .
ParticleAttrib< double > Q
double dot(const Vector3D &lhs, const Vector3D &rhs)
Vector dot product.
bool doAdvance_m(PartBunchBase< double, 3 > *bunch, const size_t &i, const double &t, const double dt, Arguments &...args) const
constexpr double c
The velocity of light in m/s.
void kick(const Vector_t &R, Vector_t &P, const Vector_t &Ef, const Vector_t &Bf, const double &dt) const
bool kick_m(PartBunchBase< double, 3 > *bunch, const size_t &i, const double &t, const double &h, Arguments &...args) const
Vektor< double, 3 > Vector_t
Tps< T > sqrt(const Tps< T > &x)
Square root.
constexpr double q_e
The elementary charge in As.
ParticleAttrib< double > M
void push_m(Vector_t &R, const Vector_t &P, const double &h) const