21template <
typename FieldFunction,
typename... Arguments>
23 PartBunch_t* bunch,
const size_t& i,
const double& t,
const double dt,
24 Arguments&... args)
const {
25 bool flagNoDeletion =
true;
30 flagNoDeletion = kick_m(bunch, i, t, dt *
Units::ns2s, args...);
35 return flagNoDeletion;
38template <
typename FieldFunction,
typename... Arguments>
41 double const gamma = sqrt(1.0 +
dot(P, P));
47template <
typename FieldFunction,
typename... Arguments>
49 PartBunch_t* bunch [[maybe_unused]],
const size_t& i,
const double& t,
50 const double& h [[maybe_unused]], Arguments&... args)
const {
54 bool outOfBound = this->fieldfunc_m(t, i, externalE, externalB, args...);
56 if (outOfBound)
return false;
ippl::Vector< T, Dim > Vector_t
double dot(const Vector3D &lhs, const Vector3D &rhs)
Vector dot product.
void push_m(Vector_t< double, 3 > &R, const Vector_t< double, 3 > &P, const double &h) const
bool kick_m(PartBunch_t *bunch, const size_t &i, const double &t, const double &h, Arguments &... args) const
bool doAdvance_m(PartBunch_t *bunch, const size_t &i, const double &t, const double dt, Arguments &... args) const
Vector_t< double, Dim > R(size_t)
Do not use; throws (access positions via ParticleContainer::R).
Vector_t< double, Dim > P(size_t)
Do not use; throws (access momenta via ParticleContainer::P).
constexpr double c
The velocity of light in m/s.