Peano
Loading...
Searching...
No Matches
Leapfrog.cpph
Go to the documentation of this file.
2
3
4template <typename Particle>
7 const Particle& particle
8) {
9 return ::swift2::kernels::localParticleCanBeUpdatedAndMovedInVertexKernel(marker, particle);
10}
11
12
13template <typename Particle>
16 Particle& particle
17) {
19
20 double timeStepSize = Particle::getSpecies().getMinTimeStepSize();
21 particle.setX( particle.getX() + timeStepSize * particle.getV() );
22 assertion1(tarch::la::isEntryFinite(particle.getX()), particle.toString());
23 particle.setMoveState(Particle::MoveState::Moved);
24}
25
26
27
28template <typename Particle>
31 const Particle& particle
32) {
33 return ::swift2::kernels::localParticleCanBeUpdatedInVertexKernel(marker, particle);
34}
35
36
37template <typename Particle>
40 Particle& particle
41) {
42 assertion( leapfrogKickWithGlobalTimeStepSizeUpdateParticlePredicate(marker, particle) );
43
44 double timeStepSize = 0.5 * Particle::getSpecies().getMinTimeStepSize();
45 particle.setV( particle.getV() + timeStepSize * particle.getA() );
46}
47
#define assertion1(expr, param)
#define assertion(expr)
void leapfrogDriftWithGlobalTimeStepSize(const peano4::datamanagement::VertexMarker &marker, Particle &localParticle)
Drift step.
Definition Leapfrog.cpph:14
bool leapfrogKickWithGlobalTimeStepSizeUpdateParticlePredicate(const peano4::datamanagement::VertexMarker &marker, const Particle &localParticle)
Definition Leapfrog.cpph:29
bool leapfrogDriftWithGlobalTimeStepSizeUpdateParticlePredicate(const peano4::datamanagement::VertexMarker &marker, const Particle &localParticle)
Definition Leapfrog.cpph:5
void leapfrogKickWithGlobalTimeStepSize(const peano4::datamanagement::VertexMarker &marker, Particle &localParticle)
Kick steps.
Definition Leapfrog.cpph:38
int isEntryFinite(const Vector< Size, Scalar > &vector)
Vertex marker to provide information about selected vertex.