27 particle_cell_update_kernel,
28 touch_vertex_first_time_compute_particle_update_kernel,
29 touch_vertex_last_time_compute_particle_update_kernel,
30 prepare_traversal_kernel,
31 unprepare_traversal_kernel,
34 alter_particle_position_or_interaction_radius,
35 wait_for_all_tasks_to_finish_after_traversal,
42 @param wait_for_all_tasks_to_finish_after_traversal: Boolean
44 @param alter_particle_position_or_interaction_radius: Boolean
45 Set if the underlying AlgorithmStep's effect might change a
46 particle's position or interaction radius.
47 @see exaparty.api.particle.AlgorithmStep.AlgorithmStep.may_trigger_rerun()
50 if wait_for_all_tasks_to_finish_after_traversal:
51 unprepare_traversal_kernel = (
52 unprepare_traversal_kernel +
"tarch::multicore::waitForAllTasks();"
55 super(UpdateParticle_SingleLevelInteraction, self).
__init__(
57 particle_cell_update_kernel=construct_touch_cell_first_time_call(
58 particle_set,particle_cell_update_kernel,
False
60 touch_vertex_first_time_compute_particle_update_kernel=construct_touch_vertex_first_time_call(
61 particle_set,touch_vertex_first_time_compute_particle_update_kernel,
False
63 touch_vertex_last_time_compute_particle_update_kernel=construct_touch_vertex_last_time_call(
64 particle_set,touch_vertex_last_time_compute_particle_update_kernel,
False, alter_particle_position_or_interaction_radius
66 prepare_traversal_kernel=prepare_traversal_kernel,
67 unprepare_traversal_kernel=unprepare_traversal_kernel,
68 additional_includes=additional_includes
70#include "tarch/multicore/Task.h"
71#include "exaparty/exaparty.h"
72#include "exaparty/TaskNumber.h"
74 active_particle_set=active_particle_set,