5 #include "particle.hpp" 8 using ForceFuncT = std::function<void(Particle&, const std::vector<Particle>::const_iterator&,
9 const std::vector<Particle>::const_iterator&)>;
10 using UpdateFuncT = std::function<void(Particle&)>;
11 using MapFuncT = std::function<double(const Particle&)>;
12 using VoidFuncT = std::function<void()>;
13 using NeighborsFuncT = std::function<void(Particle&)>;
29 virtual ~
Kernel() =
default;
30 virtual void exec()
const = 0;
46 virtual void exec()
const override;
62 virtual void exec()
const override;
80 : map_func(map_func), reduce_op(reduce_op), variable(variable) {}
82 virtual void exec()
const override;
93 VoidKernel(
const VoidFuncT func) : func(func) {}
95 virtual void exec()
const override;
Force Kernel Class.
Definition: kernels.hpp:39
Parent Kernel Class.
Definition: kernels.hpp:27
ReduceOp
Type of reduction operation to perform in a reduce kernel.
Definition: kernels.hpp:18
Reduction Kernel implements a reduction operation over the particles to a specifed variable...
Definition: kernels.hpp:72
Update Kernel Class.
Definition: kernels.hpp:55
TODO: Consider having this as a private header in WISB/WS2ST/etc implementations. ...
Definition: ascii.hpp:5
Void Kernel has no arguments/return.
Definition: kernels.hpp:88