double Float
Precision used withing the code. Use Float instead of float or double where precision is important.
#define NAMESPACE_SPH_END
Basic vector algebra. Computations are accelerated using SIMD.
Object providing safe access to continuous memory of data.
Interface for computing gravitational interactions of particles.
virtual RawPtr< const IBasicFinder > getFinder() const =0
Optionally returns a finder used by the gravity implementation.
virtual void build(IScheduler &scheduler, const Storage &storage)=0
Builds the accelerating structure.
virtual Float evalEnergy(IScheduler &scheduler, Statistics &stats) const =0
Computes the total potential energy of the particles.
virtual Vector eval(const Vector &r0) const =0
Evaluates the gravitational acceleration at given point.
virtual void evalAll(IScheduler &scheduler, ArrayView< Vector > dv, Statistics &stats) const =0
Evaluates the gravitational acceleration concurrently.
Interface that allows unified implementation of sequential and parallelized versions of algorithms.
Non-owning wrapper of pointer.
Object holding various statistics about current run.
Container storing all quantities used within the simulations.
Base class for all polymorphic objects.