Helper object for converting enums to string, listing all available values of enum,...
uint32_t Size
Integral type used to index arrays (by default).
double Float
Precision used withing the code. Use Float instead of float or double where precision is important.
Solver performing N-body simulation.
#define NAMESPACE_SPH_END
Holds a set of aggregates.
virtual void integrate(Storage &storage, Statistics &stats) override
Computes derivatives of all time-dependent quantities.
virtual void create(Storage &storage, IMaterial &material) const override
Initializes all quantities needed by the solver in the storage.
void createAggregateData(Storage &storage, const AggregateEnum source)
AggregateSolver(IScheduler &scheduler, const RunSettings &settings)
virtual void collide(Storage &storage, Statistics &stats, const Float dt) override
Checks and resolves particle collisions.
Solver computing gravitational interactions of hard-sphere particles.
Holds aggregate data stored in the storage and used by the solver.
virtual Size count() const =0
Returns the number of aggregates in the storage.
Material settings and functions specific for one material.
Interface that allows unified implementation of sequential and parallelized versions of algorithms.
Base class for arbitrary data stored in the storage alongside particles.
Object holding various statistics about current run.
Container storing all quantities used within the simulations.
Helper class for adding individual enums to the enum map.