Peano
Loading...
Searching...
No Matches
Leapfrog.h
Go to the documentation of this file.
1// This file is part of the ExaParty project. For conditions of distribution and
2// use, please see the copyright notice at www.peano-framework.org
3#pragma once
4
5
9
10#include <list>
11#include <vector>
12
13
14namespace exaparty {
15 namespace kernels {
16 namespace legacy {
49 template <typename Particle>
50 void leapfrog_drift_global_time_step_size(Particle& particle);
51
52 template <typename Particle>
55 const Particle& localParticle
56 ) {
57 return ::exaparty::kernels::
58 localParticleCanBeUpdatedAndMovedInVertexKernel(marker, localParticle);
59 }
60
61 template <typename Particle>
64 Particle& localParticle
65 ) {
68 marker,
69 localParticle
70 ),
71 marker.toString(),
72 localParticle.toString()
73 );
75 }
76
85 template <typename Particle>
86 void hydro_predict_extra(Particle& localParticle);
87
88 template <typename Particle>
91 const Particle& localParticle
92 ) {
93 return ::exaparty::kernels::localParticleCanBeUpdatedInVertexKernel(
94 marker,
95 localParticle
96 );
97 }
98
99 template <typename Particle>
102 Particle& localParticle
103 ) {
104 assertion(
105 hydroPredictExtraUpdateParticlePredicate(marker, localParticle)
106 );
107 hydro_predict_extra(localParticle);
108 }
109
174 template <typename Particle>
175 void leapfrog_kick_global_time_step_size(Particle& particle);
176
177 template <typename Particle>
180 const Particle& localParticle
181 ) {
182 return ::exaparty::kernels::localParticleCanBeUpdatedInVertexKernel(
183 marker,
184 localParticle
185 );
186 }
187
188 template <typename Particle>
191 Particle& localParticle
192 ) {
194 marker,
195 localParticle
196 ));
198 }
199
212 template <typename Particle>
213 void hydro_kick_extra_global_time_step_size(Particle& localParticle);
214
215 template <typename Particle>
218 const Particle& localParticle
219 ) {
220 return ::exaparty::kernels::localParticleCanBeUpdatedInVertexKernel(
221 marker,
222 localParticle
223 );
224 }
225
226 template <typename Particle>
229 Particle& localParticle
230 ) {
231 assertion(
233 marker,
234 localParticle
235 )
236 );
238 }
239
244 template <typename Particle>
245 void hydro_reset_predicted_values(Particle& localParticle);
246
247 template <typename Particle>
250 const Particle& localParticle
251 ) {
252 return ::exaparty::kernels::localParticleCanBeUpdatedInVertexKernel(
253 marker,
254 localParticle
255 );
256 }
257
258 template <typename Particle>
261 Particle& localParticle
262 ) {
263 assertion(
265 );
266 hydro_reset_predicted_values(localParticle);
267 }
268 } // namespace legacy
269 } // namespace kernels
270} // namespace exaparty
271
272
273#include "Leapfrog.cpph"
#define assertion2(expr, param0, param1)
#define assertion(expr)
void hydro_kick_extra_global_time_step_size(Particle &localParticle)
Kick the additional variables.
void leapfrogKickExtraWithGlobalTimeStepSize(const peano4::datamanagement::VertexMarker &marker, Particle &localParticle)
Definition Leapfrog.h:227
void hydroPredictExtra(const peano4::datamanagement::VertexMarker &marker, Particle &localParticle)
Definition Leapfrog.h:100
void hydro_reset_predicted_values(Particle &localParticle)
Sets the values to be predicted in the drifts to their values at a kick time.
bool leapfrogKickExtraWithGlobalTimeStepSizeUpdateParticlePredicate(const peano4::datamanagement::VertexMarker &marker, const Particle &localParticle)
Definition Leapfrog.h:216
void leapfrog_kick_global_time_step_size(Particle &particle)
Kick steps.
void resetPredictedValues(const peano4::datamanagement::VertexMarker &marker, Particle &localParticle)
Definition Leapfrog.h:259
void leapfrogKickWithGlobalTimeStepSize(const peano4::datamanagement::VertexMarker &marker, Particle &localParticle)
Definition Leapfrog.h:189
void hydro_predict_extra(Particle &localParticle)
Predict additional particle fields forward in time when drifting.
void leapfrogDriftWithGlobalTimeStepSize(const peano4::datamanagement::VertexMarker &marker, Particle &localParticle)
Definition Leapfrog.h:62
void leapfrog_drift_global_time_step_size(Particle &particle)
Update a particle with the leapfrog KDK integrator.
bool leapfrogDriftWithGlobalTimeStepSizeParticleUpdatePredicate(const peano4::datamanagement::VertexMarker &marker, const Particle &localParticle)
Definition Leapfrog.h:53
bool hydroPredictExtraUpdateParticlePredicate(const peano4::datamanagement::VertexMarker &marker, const Particle &localParticle)
Definition Leapfrog.h:89
bool leapfrogKickWithGlobalTimeStepSizeUpdateParticlePredicate(const peano4::datamanagement::VertexMarker &marker, const Particle &localParticle)
Definition Leapfrog.h:178
bool resetPredictedValuesUpdateParticlePredicate(const peano4::datamanagement::VertexMarker &marker, const Particle &localParticle)
Definition Leapfrog.h:248
This file is part of the ExaParty project.
Definition __init__.py:1
Vertex marker to provide information about selected vertex.